High-precision calculations for one- and two-valence atomic systems
Operators

Available operators and their options: examples for E1, hyperfine, PNC.

Modules that calculate matrix elements or amplitudes take an operator option (or t/s in Second-Order Amplitudes), naming any of the available operators, with operator-specific options given in the accompanying options{} block (t_options{}/s_options{} in secondOrder).

  • Get a list of available operators: ./ampsci -o
  • List the options for a given operator: ./ampsci -o <OperatorName> (output is in input-file format: copy+paste it into your input file)
  • Operators are constructed by DiracOperator::generate() - see the DiracOperator namespace documentation for the definitions.

Common Operators

Examples for common operators: E1, hyperfine (hfs), and parity violation (pnc).

E1: electric dipole

Length form by default (operator E1); the velocity (momentum) form is a separate operator, E1v, which is frequency dependent (the modules evaluate it at each transition frequency automatically). No options:

operator = E1;
rpa = true;
}
void matrixElements(const IO::InputBlock &input, const Wavefunction &wf)
Matrix elements of any operator for HF/Brueckner valence states.
Definition matrixElements.cpp:86

hfs: magnetic dipole (and higher) hyperfine

Hyperfine structure constants (A, B, ...). By default, nuclear parameters (moment, spin) are looked up for the default isotope; the nuclear magnetisation distribution is set with F:

operator = hfs;
options{
// pointlike, ball, shell, SingleParticle, ...
F = ball;
// Take mu, I, k from the isotope table by default; k=1: magnetic dipole
// mu = 2.582;
// I = 3.5;
// k = 1;
}
}

By default the module prints hyperfine constants (in MHz) rather than reduced matrix elements: see the what option of Matrix Elements.

pnc: nuclear-spin-independent parity violation

The weak-interaction (nuclear spin-independent) PNC operator, with a Fermi nuclear density. Units are \( i (-Q_W/N) 10^{-11} \) a.u. Typically used as the static operator in Second-Order Amplitudes :

Module::secondOrder{
A = 6s+;
B = 7s+;
t = E1;
s = pnc;
// s_options{ c = 5.67073; t = 2.3; }
}

Available options (from ./ampsci -o pnc):

pnc{
c;
// Half-density radius for Fermi rho(r). [defaut: from
// wavefunction]
t;
// skin thickness [2.3]
N;
// Neutron number, for units [default: from
// wavefunction]
print;
// Write details to screen [true]
}

See also

Writing your own custom operators: