equadrupole

dqc.equadrupole(qc: dqc.qccalc.base_qccalc.BaseQCCalc, unit: Optional[str] = 'Debye*Angst') → torch.Tensor[source]

Returns the electric quadrupole moment of the system, i.e. derivative of energy w.r.t. electric field.

Parameters
  • qc (BaseQCCalc) – The qc calc object that has been executed.

  • unit (str or None) – The returned quadrupole unit. If None, returns in atomic unit.

Returns

Tensor representing the quadrupole moment in atomic unit in (ndim, ndim)

Return type

torch.Tensor

Example

import torch
import dqc

dtype = torch.float64
moldesc = "O 0 0 0.2156; H 0 1.4749 -0.8625; H 0 -1.4749 -0.8625"  # in Bohr
efield = torch.zeros(3, dtype=dtype).requires_grad_()  # efield must be specified
grad_efield = torch.zeros((3, 3), dtype=dtype).requires_grad_()  # grad_efield must be specified
mol = dqc.Mol(moldesc=moldesc, basis="3-21G", dtype=dtype, efield=(efield, grad_efield))
qc = dqc.HF(mol).run()
equad = dqc.equadrupole(qc)