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:

μ→=∑AqAR→A

where qA is the partial charge on atom A (from Mulliken or Löwdin analysis) and R→A 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.