implements "Fermi contact" integrals. More...
#include <memory>
#include "memorymanag.h"
#include "basisinfo.h"
#include "aos.h"
#include "density_description_file_2.h"
#include "Matrix.h"
#include "MatrixSymmetric.h"
Classes | |
struct | FCAccumulator |
Functions | |
template<class Accumulator > | |
ergo_real | accumulate (int n, const ergo_real *spinMat, const Accumulator &ac) |
int | computeFermiContact (const BasisInfoStruct &bis, const ergo_real *spinDensity, const Vector3D &R, ergo_real &result) |
computeFermiContact computes the Fermi contact interaction for given molecule and specified spin density. | |
int | main (int argc, char *argv[]) |
Variables | |
static const double | GE = 2.0023193044 |
implements "Fermi contact" integrals.
The formulas are give in the hyperfine project.
ergo_real accumulate | ( | int | n, | |
const ergo_real * | spinMat, | |||
const Accumulator & | ac | |||
) | [inline] |
Referenced by computeFermiContact().
int computeFermiContact | ( | const BasisInfoStruct & | bis, | |
const ergo_real * | spinDensity, | |||
const Vector3D & | R, | |||
ergo_real & | result | |||
) |
computeFermiContact computes the Fermi contact interaction for given molecule and specified spin density.
bis | basis set specification. | |
spinDensity | spin density defined as D_alpha-D_beta. | |
R | the cartesian coordinates to which we compute interaction to. | |
result | will contain the interaction if the function succeeds. |
References accumulate(), dft_get_orbs(), BasisInfoStruct::noOfBasisFuncs, BasisInfoStruct::noOfShells, and Vector3D::v.
Referenced by main().
int main | ( | int | argc, | |
char * | argv[] | |||
) |
References Molecule::atoms, ShellSpecStruct_::centerCoords, Atom::charge, computeFermiContact(), Atom::coords, ddf_load_density(), Vector3D::dist(), ergo_free(), GE, Molecule::noOfAtoms, BasisInfoStruct::noOfBasisFuncs, BasisInfoStruct::noOfShells, Molecule::setFromMoleculeFile(), BasisInfoStruct::shellList, and usage.