ergo
|
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 | ||
) |
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 BasisInfoStruct::noOfBasisFuncs, BasisInfoStruct::noOfShells, dft_get_orbs(), Vector3D::v, and accumulate().
Referenced by main().
int main | ( | int | argc, |
char * | argv[] | ||
) |
References usage, ddf_load_density(), BasisInfoStruct::noOfBasisFuncs, Molecule::setFromMoleculeFile(), Molecule::noOfAtoms, Molecule::atoms, Atom::coords, computeFermiContact(), Atom::charge, GE, BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, ShellSpecStruct_::centerCoords, Vector3D::dist(), and ergo_free().