Welcome to CPPE’s documentation!¶
CPPE has been interfaced to the follow quantum chemical program packages:
C++ API (Doxygen)¶
-
std::map<std::string, std::vector<std::string>>
libcppe
::
ens
{
{“Electrostatic”, {“Electronic”, “Nuclear”, “Multipoles”}},
{“Polarization”, {“Electronic”, “Nuclear”, “Multipoles”}}}
¶
-
Eigen::Vector3d
libcppe
::
smat_vec
(const Eigen::VectorXd &mat, const Eigen::Vector3d &vec, double alpha)¶
-
Eigen::VectorXd
libcppe
::
Tk_tensor
(int k, const Eigen::Vector3d &Rij, std::vector<Eigen::MatrixXi> &Tk_coeffs)¶
-
Eigen::VectorXd
libcppe
::
multipole_derivative
(int k, int l, const Eigen::Vector3d &Rji, Eigen::VectorXd Mkj, std::vector<Eigen::MatrixXi> &Tk_coeffs)¶
-
int
libcppe
::
xyz2idx
(int x, int y, int z)¶
-
double
libcppe
::
T
(const Eigen::Vector3d &Rij, int x, int y, int z, std::vector<Eigen::MatrixXi> &Cijn)¶
-
std::vector<Eigen::MatrixXi>
libcppe
::
Tk_coefficients
(int max_order)¶
-
double
libcppe
::
factorial
(int n)¶
-
void
libcppe
::
make_df
(unsigned k, std::vector<double> &df)¶
-
int
libcppe
::
trinom
(int i, int j, int k)¶
-
std::vector<double>
libcppe
::
symmetry_factors
(unsigned k)¶
-
std::vector<double>
libcppe
::
prefactors
(unsigned k)¶
-
std::vector<double>
libcppe
::
prefactors_nuclei
(unsigned k)¶
-
int
libcppe
::
multipole_components
(int k)¶
-
bool
libcppe
::
sortbysec
(const std::pair<int, double> &a, const std::pair<int, double> &b)¶
-
struct
Atom
¶ - #include <molecule.hh>
-
struct
BorderOptions
¶ - #include <pe_options.hh>
-
class
CPPE
¶ - #include <libcppe.hh>
-
class
CppeState
¶ - #include <cppe_state.hh>
Public Functions
-
CppeState
()¶
-
~CppeState
()¶
-
void
calculate_static_energies_and_fields
()¶
-
std::vector<double>
get_induced_moments
() const¶
-
Eigen::VectorXd
get_induced_moments_vec
() const¶
-
void
update_induced_moments
(Eigen::VectorXd elec_fields, bool elec_only = false)¶
-
size_t
get_polarizable_site_number
()¶
-
std::vector<double>
get_static_fields
()¶
-
void
print_summary
()¶
Private Members
-
Eigen::MatrixXd
m_es_operator
¶ PE electrostatics operator.
-
size_t
m_polarizable_sites
¶ number of polarizable sites
-
Eigen::VectorXd
m_nuc_fields
¶ electric fields from nuclei
-
Eigen::VectorXd
m_multipole_fields
¶ electric fields from multipole moments
-
Eigen::VectorXd
m_induced_moments
¶ Vector with induced moments.
-
std::ostream &
m_output_stream
= std::cout¶ Output stream for printing.
-
bool
m_make_guess
= true¶
-
-
class
InducedMoments
¶ - #include <electric_fields.hh>
Public Functions
-
~InducedMoments
()¶
-
void
compute
(const Eigen::VectorXd &total_fields, Eigen::VectorXd &induced_moments, bool make_guess, std::ostream &output_stream = std::cout)¶
-
Eigen::VectorXd
compute
(Eigen::VectorXd &total_fields, bool make_guess)¶ overloads the compute method for induced moments and returns a copy of the induced moments vector
-
-
class
Multipole
¶ - #include <multipole.hh>
Public Functions
-
Multipole
(unsigned k)¶
-
~Multipole
()¶
-
void
add_value
(double val)¶
-
void
remove_trace
()¶
-
std::vector<double> &
get_values
()¶
-
Eigen::VectorXd
get_values_vec
()¶
Public Members
-
unsigned
m_k
¶
Private Members
-
std::vector<double>
m_values
¶
-
-
class
MultipoleExpansion
¶ - #include <multipole_expansion.hh>
-
class
MultipoleFields
¶ - #include <electric_fields.hh>
-
class
NuclearFields
¶ - #include <electric_fields.hh>
-
struct
PeEnergy
¶ - #include <pe_energies.hh>
PE Energy Container
Public Functions
-
PeEnergy
()¶
-
double
get
(std::string energy_string)¶ returns energy contribution from given string
-
void
set
(std::string energy_string, double energy)¶ sets the energy titled energy_string to energy
- Return
- void
- Parameters
energy_string
: name of the energy contributionenergy
: value
-
double
get_total_energy
()¶ returns the total PE energy
Private Members
-
std::vector<PeEnergyContribution>
m_energies
¶
-
-
struct
PeEnergyContribution
¶ - #include <pe_energies.hh>
PE Energy Contribution
Public Functions
-
PeEnergyContribution
(std::string cat, std::string name, double val)¶
-
-
struct
PeOptions
¶ - #include <pe_options.hh>
Public Members
-
std::string
potfile
= {"potential.pot"}¶
-
int
print_level
= 1¶
-
bool
damp_induced
= false¶
-
bool
damp_multipoles
= false¶
-
bool
damp_core
= false¶
-
double
damp_coeff_ind
= 2.1304¶
-
double
damp_coeff_mult
= 2.1304¶
-
double
damp_coeff_core
= 2.1304¶
-
bool
zero_pol
= false¶
-
bool
zero_mul
= false¶
-
int
zero_mul_order
= 1¶
-
int
induced_thresh
= 8¶
-
bool
do_diis
= true¶
-
int
diis_maxiter
= 50¶
-
double
diis_start_norm
= 1.0¶
-
bool
pe_border
= false¶
-
BorderOptions
border_options
= {}¶
-
std::string
-
class
Polarizability
¶ - #include <multipole.hh>
Public Functions
-
Polarizability
()¶
-
~Polarizability
()¶
-
void
add_value
(double val)¶
-
Eigen::VectorXd
get_values_vec
()¶
-
std::vector<double> &
get_values
()¶
Private Members
-
std::vector<double>
m_values
¶
-
-
class
Potential
¶ - #include <multipole.hh>
Public Functions
-
Potential
(double x, double y, double z, int idx)¶
-
~Potential
()¶
-
void
add_polarizability
(Polarizability pol)¶
-
void
add_exclusion
(int excl)¶
-
bool
excludes_site
(int other_site)¶
-
std::vector<int> &
get_exclusions
()¶
-
std::vector<Polarizability> &
get_polarizabilities
()¶
-
bool
is_polarizable
()¶
-
Eigen::Vector3d
get_site_position
()¶
-
-
class
PotManipulator
¶ - #include <pot_manipulation.hh>
-
struct
Site
¶