Skip to main content

A package to calculate the moments and polarizabilities of molecules

Project description

Molecular Moments and Polarizabilities Calculator




The Python code is designed for calculating higher-order moments and polarizabilities of small molecules. It is a versatile tool that provides insights into the molecular properties essential for understanding electronic structure and molecular interactions. The moments and polarizabilites so calculated are used as the parameter sets for the SCME code.


Moments Calculation

  • Dipole Moment: Measure of the separation of positive and negative charges within a molecule.
  • Quadrupole Moment: Describes the distribution of charge within a molecule in terms of quadrupole tensors.
  • Octapole Moment: Characterizes higher-order charge distributions beyond quadrupoles.
  • Hexadecapole Moment: Captures even higher-order charge distributions, providing a comprehensive view of molecular charge.

Polarizabilities Calculation

  • Dipole-Dipole Polarizability: Reflects the ability of a molecule to induce a dipole moment in an adjacent molecule.
  • Dipole-Quadrupole Polarizability: Measures the interaction between the dipole moment of one molecule and the quadrupole moment of another.
  • Quadrupole-Quadrupole Polarizability: Quantifies the influence of quadrupole moments on the polarization of adjacent molecules.

How to Use

  1. Installation:

    pip install molecular-moments-polarizabilities-calculator
  2. Usage:

    from molecular_calculator import MolecularPropertiesCalculator
    # Create a molecule object
    molecule = MolecularPropertiesCalculator(molecule_structure)
    # Calculate moments
    dipole = molecule.calculate_dipole_moment()
    quadrupole = molecule.calculate_quadrupole_moment()
    octapole = molecule.calculate_octapole_moment()
    hexadecapole = molecule.calculate_hexadecapole_moment()
    # Calculate polarizabilities
    dipole_dipole_polarizability = molecule.calculate_dipole_dipole_polarizability()
    dipole_quadrupole_polarizability = molecule.calculate_dipole_quadrupole_polarizability()
    quadrupole_quadrupole_polarizability = molecule.calculate_quadrupole_quadrupole_polarizability()


from molecular_calculator import MolecularPropertiesCalculator

# Define a water molecule
water_structure = {
    'atoms': ['O', 'H', 'H'],
    'coordinates': [
        [0.000, 0.000, 0.000],
        [0.758, 0.586, 0.000],
        [-0.758, 0.586, 0.000]

# Create a molecule object
water_molecule = MolecularPropertiesCalculator(water_structure)

# Calculate moments
dipole_moment = water_molecule.calculate_dipole_moment()
quadrupole_moment = water_molecule.calculate_quadrupole_moment()

# Calculate polarizabilities
dipole_dipole_polarizability = water_molecule.calculate_dipole_dipole_polarizability()
dipole_quadrupole_polarizability = water_molecule.calculate_dipole_quadrupole_polarizability()

print(f"Dipole Moment: {dipole_moment} Debye")
print(f"Quadrupole Moment: {quadrupole_moment} Debye*angstrom")
print(f"Dipole-Dipole Polarizability: {dipole_dipole_polarizability} Debye^2")
print(f"Dipole-Quadrupole Polarizability: {dipole_quadrupole_polarizability} Debye^3*Å^2")

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hmpol-0.1.5.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

hmpol-0.1.5-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page