Skip to content

Dipole Moments

The molecular dipole moment μ measures the overall polarity of a molecule. sci-form computes it from partial charges and atomic positions.

Dipole Calculation

Formula

The molecular dipole moment is computed as the charge-weighted sum of atomic positions:

μ=AqARA

where qA is the partial charge on atom A (from Mulliken or Löwdin analysis) and RA is the Cartesian position of atom A.

Unit Conversion

The raw dipole is in atomic units (e·Å). Conversion to Debye (the standard unit for molecular dipoles):

|μ|Debye=|μ|a.u.×4.80321

Component Form

The dipole has three Cartesian components:

μx=AqAxA,μy=AqAyA,μz=AqAzA

The magnitude is:

|μ|=μx2+μy2+μz2

Physical Interpretation

  • Nonpolar molecules: |μ|0 D — symmetric charge distribution (CO₂, CH₄, H₂)
  • Polar molecules: |μ|>0 — asymmetric charge distribution
    • H₂O ≈ 1.85 D
    • HF ≈ 1.83 D
    • NH₃ ≈ 1.47 D
  • Direction: Points from the center of negative charge toward the center of positive charge

Conformer Dependence

The dipole moment depends on the 3D geometry. Different conformers of the same molecule can have different dipole magnitudes and orientations. sci-form computes the dipole for whatever conformer geometry is provided.

API

Rust

rust
use sci_form::compute_dipole;

let result = compute_dipole("O", None);
// result.components: [f64; 3] — (μx, μy, μz)
// result.magnitude: f64 — |μ| in Debye

CLI

bash
sci-form dipole "O"
# Output: JSON with components and magnitude

Python

python
import sci_form
result = sci_form.dipole("O")
print(result.magnitude)    # ~1.85 D for water
print(result.components)   # [μx, μy, μz]

Validation

  • H₂O: magnitude in range 1.5–2.5 D
  • H₂: magnitude ≈ 0 D (symmetric)
  • CH₄: magnitude ≈ 0 D (tetrahedral symmetry)
  • HF: dipole points from H toward F (more electronegative)
  • Consistency: |μ|=μx2+μy2+μz2 always holds

Released under the MIT License.