MADNESS 0.10.1
Classes | Functions
madness::guessfactory Namespace Reference

Classes

class  ExopUnaryOpStructure
 
class  GaussFunctor
 
class  PlaneWaveFunctor
 creates a plane-wave: sin (or cos) with argument (npi/L*x) More...
 
class  PolynomialFunctor
 Project a general 3D polynomial to the MRA Grid. More...
 
class  PolynomialTrigonometricsFunctor
 

Functions

real_function_3d apply_polynomial_exop (real_function_3d &f, const std::string &exop_input, coord_3d center, const bool &fence)
 convenience wrapper
 
vector_real_function_3d apply_polynomial_exop (vector_real_function_3d &vf, const std::string &exop_input, std::vector< coord_3d > centers, const bool &fence)
 
template<typename T , std::size_t NDIM>
Function< T, NDIMapply_trigonometric_exop (Function< T, NDIM > &f, const std::string &exop_input, coord_3d center, const bool &fence)
 convenience wrapper
 
template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > apply_trigonometric_exop (std::vector< Function< T, NDIM > > &vf, const std::string &exop_input, std::vector< coord_3d > centers, const bool &fence)
 
coord_3d compute_centroid (const real_function_3d &f)
 compute the centroid of a function i.e. c[xi]=<f|xi|f>/<f|f> i.e. position expectation value
 
template std::vector< coord_3dcompute_centroids (const std::vector< Function< double, 3 > > &vf)
 
template std::vector< coord_3dcompute_centroids (const std::vector< Function< double_complex, 3 > > &vf)
 
template<typename T , std::size_t NDIM>
std::vector< coord_3dcompute_centroids (const std::vector< Function< T, NDIM > > &vf)
 
std::vector< std::string > make_auto_polynom_strings (const size_t order)
 Makes an automated excitation operator string for the excitation operators needed to create virtuals from the reference orbitals.
 
std::vector< std::string > make_predefined_exop_strings (const std::string what)
 Makes an excitation operator string based on predefined keywords.
 
template<typename T , size_t NDIM>
Vector< T, NDIMtensor_to_coord (const Tensor< T > &t)
 little helper for coord (Vector<3>) and Tensor data formats
 

Function Documentation

◆ apply_polynomial_exop() [1/2]

real_function_3d madness::guessfactory::apply_polynomial_exop ( real_function_3d f,
const std::string &  exop_input,
coord_3d  center,
const bool &  fence 
)

convenience wrapper

References apply_polynomial_exop(), and madness::f.

◆ apply_polynomial_exop() [2/2]

vector_real_function_3d madness::guessfactory::apply_polynomial_exop ( vector_real_function_3d vf,
const std::string &  exop_input,
std::vector< coord_3d centers,
const bool &  fence 
)

excite a vector of functions with a specific excitation operator

Parameters
[in/out]vf the function which gets excited, exop*f on return
[in]exop_input,theexcitation operator defined by a string (see the polynomial_functor class for details)
Returns
exop*vf i.e. result[i]=exop*vf[i]

References compute_centroids(), and madness::f.

Referenced by madness::TDHF::apply_excitation_operators(), apply_polynomial_exop(), and madness::BasisFunctions::guess_with_exop().

◆ apply_trigonometric_exop() [1/2]

template<typename T , std::size_t NDIM>
Function< T, NDIM > madness::guessfactory::apply_trigonometric_exop ( Function< T, NDIM > &  f,
const std::string &  exop_input,
coord_3d  center,
const bool &  fence 
)

convenience wrapper

References apply_trigonometric_exop(), and madness::f.

◆ apply_trigonometric_exop() [2/2]

template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::guessfactory::apply_trigonometric_exop ( std::vector< Function< T, NDIM > > &  vf,
const std::string &  exop_input,
std::vector< coord_3d centers,
const bool &  fence 
)

excite a vector of functions with a specific excitation operator

Parameters
[in/out]vf the function which gets excited, exop*f on return
[in]exop_input,theexcitation operator defined by a string (see the polynomial_functor class for details)
[in]thecenters of the vf functions, if none were given they are recomputed
Returns
exop*vf i.e. result[i]=exop*vf[i] excite a vector of functions with a specific excitation operator
Parameters
[in/out]vf the function which gets excited, exop*f on return
[in]exop_input,theexcitation operator defined by a string (see the polynomial_functor class for details)
[in]thecenters of the vf functions, if none were given they are recomputed
Returns
exop*vf i.e. result[i]=exop*vf[i]

References compute_centroids(), and madness::f.

Referenced by madness::TDHF::apply_excitation_operators(), apply_trigonometric_exop(), madness::BasisFunctions::guess_with_exop(), and madness::Zcis::make_guess().

◆ compute_centroid()

coord_3d madness::guessfactory::compute_centroid ( const real_function_3d f)

compute the centroid of a function i.e. c[xi]=<f|xi|f>/<f|f> i.e. position expectation value

References madness::f, m, and madness::Function< T, NDIM >::trace().

◆ compute_centroids() [1/3]

template std::vector< coord_3d > madness::guessfactory::compute_centroids ( const std::vector< Function< double, 3 > > &  vf)

◆ compute_centroids() [2/3]

template std::vector< coord_3d > madness::guessfactory::compute_centroids ( const std::vector< Function< double_complex, 3 > > &  vf)

◆ compute_centroids() [3/3]

template<typename T , std::size_t NDIM>
std::vector< coord_3d > madness::guessfactory::compute_centroids ( const std::vector< Function< T, NDIM > > &  vf)

◆ make_auto_polynom_strings()

std::vector< std::string > madness::guessfactory::make_auto_polynom_strings ( const size_t  order)

Makes an automated excitation operator string for the excitation operators needed to create virtuals from the reference orbitals.

References k, MADNESS_ASSERT, and madness::stringify().

Referenced by make_predefined_exop_strings().

◆ make_predefined_exop_strings()

std::vector< std::string > madness::guessfactory::make_predefined_exop_strings ( const std::string  what)

◆ tensor_to_coord()

template<typename T , size_t NDIM>
Vector< T, NDIM > madness::guessfactory::tensor_to_coord ( const Tensor< T > &  t)

little helper for coord (Vector<3>) and Tensor data formats

References MADNESS_ASSERT, NDIM, and madness::BaseTensor::size().