Functions for evaluating properties of the electron momentum density. More...
#include <emd.h>
Public Member Functions | |
EMD (const EMDEvaluator *poseval, const EMDEvaluator *negeval, double Nel, int l, int m) | |
Constructor. | |
~EMD () | |
Destructor. | |
double | eval (double p) const |
Evaluate density at p. | |
void | initial_fill (bool verbose=true) |
Initial filling of grid. | |
void | complete_fill () |
Fill regions where density changes by huge amounts. | |
void | find_electrons (bool verbose=true, double tol=1e-4) |
Continue filling until number of electrons is reproduced within tolerance. | |
void | optimize_moments (const std::vector< int > &moms, bool verbose=true, double tol=1e-8) |
Optimize given moments of EMD within tolerance. | |
void | optimize_moments (bool verbose=true, double tol=1e-8) |
Optimize physical moments of EMD within tolerance. | |
void | fixed_fill (bool verbose=true, double h0=1e-3, double l0=3.0, double hfac=2.0, double lfac=2.0) |
std::vector< emd_t > | get () const |
Get EMD. | |
void | save (const char *fname) const |
Save values of momentum density. | |
arma::mat | moments () const |
Calculate moments of momentum density. | |
void | moments (const char *fname) const |
Save moments of momentum density. | |
arma::mat | compton_profile () const |
Calculate Compton profile. | |
void | compton_profile (const char *raw) const |
Save Compton profile in "raw" form. | |
void | compton_profile_interp (const char *interp) const |
Save Compton profile in interpolated form. | |
Protected Attributes | |
double | Nel |
Number of electrons. | |
const EMDEvaluator * | poseval |
Positive evaluator. | |
std::complex< double > | poscoef |
Coefficient. | |
const EMDEvaluator * | negeval |
Negative evaluator. | |
std::complex< double > | negcoef |
Coefficient. | |
Private Member Functions | |
void | add4 (size_t ind) |
Add 4 points at ind. | |
Private Attributes | |
std::vector< emd_t > | dens |
List of radial densities. | |
int | l |
l value | |
int | m |
m value | |
Functions for evaluating properties of the electron momentum density.
This class contains functions for computing moments of the electron momentum density and Compton profiles. The adaptive grid algorithm has been described in
J. Lehtola, M. Hakala, J. Vaara and K. Hämäläinen, "Calculation of isotropic Compton profiles with Gaussian basis sets", Phys. Chem. Chem. Phys 13 (2011), pp. 5630 - 5641.
void EMD::fixed_fill | ( | bool | verbose = true , |
double | h0 = 1e-3 , |
||
double | l0 = 3.0 , |
||
double | hfac = 2.0 , |
||
double | lfac = 2.0 |
||
) |
Alternative method of operation - fixed filling of the grid.
h0 - spacing for the points in the first interval l0 - length of the first interval
hfac - factor to use in increasing the spacing lfac - factor to use in increasing the interval length