Namespaces¶
-
namespace
pcm
¶ Typedefs
-
typedef boost::container::flat_map<std::string, Eigen::VectorXd>
SurfaceFunctionMap
¶
-
typedef SurfaceFunctionMap::value_type
SurfaceFunctionPair
¶
-
typedef SurfaceFunctionMap::iterator
SurfaceFunctionMapIter
¶
-
typedef SurfaceFunctionMap::const_iterator
SurfaceFunctionMapConstIter
¶
Functions
-
void
initMolecule
(const Input &inp, const Symmetry &pg, int nuclei, const Eigen::VectorXd &charges, const Eigen::Matrix3Xd ¢ers, Molecule &molecule)¶
-
void
initSpheresAtoms
(const Input &inp, const Eigen::Matrix3Xd &sphereCenter_, std::vector<Sphere> &spheres_)¶
-
unsigned int
pcmsolver_get_version
(void)¶
- template <typename Source>
-
std::string
to_string
(const Source &arg)¶
Variables
-
Printer
hostWriter
¶
-
class
Meddle
¶ - #include <Meddle.hpp>
Contains functions exposing an interface to the module internals.
Public Functions
-
Meddle
(const Input &parsed, const HostWriter &write)¶ CTOR from own input reader.
- Warning
- This CTOR is meant to be used with the standalone executable only
- Parameters
parsed
: parsed input object
-
Meddle
(pcmsolver_reader_t input_reading, int nr_nuclei, double charges[], double coordinates[], int symmetry_info[], const PCMInput &host_input, const HostWriter &write)¶ Constructor.
The molecular point group information is passed as an array of 4 integers: number of generators, first, second and third generator respectively. Generators map to integers as in table :ref:
symmetry-ops
- Parameters
input_reading
: input processing strategynr_nuclei
: number of atoms in the moleculecharges
: atomic chargescoordinates
: atomic coordinatessymmetry_info
: molecular point group informationhost_input
: input to the module, as read by the host
-
PCMSolverIndex
getCavitySize
() const¶ Getter for the number of finite elements composing the molecular cavity.
- Return
- the size of the cavity
-
PCMSolverIndex
getIrreducibleCavitySize
() const¶ Getter for the number of irreducible finite elements composing the molecular cavity.
- Return
- the number of irreducible finite elements
-
void
getCenters
(double centers[]) const¶ Getter for the centers of the finite elements composing the molecular cavity.
- Parameters
centers
: array holding the coordinates of the finite elements centers
-
void
getCenter
(int its, double center[]) const¶ Getter for the center of the i-th finite element.
- Parameters
its
: index of the finite elementcenter
: array holding the coordinates of the finite element center
-
Eigen::Matrix3Xd
getCenters
() const¶ Getter for the centers of the finite elements composing the molecular cavity.
- Return
- a matrix with the finite elements centers (dimensions 3 x number of finite elements)
-
void
getAreas
(double areas[]) const¶ Getter for the areas/weights of the finite elements.
- Parameters
areas
: array holding the weights/areas of the finite elements
-
void
computeASC
(const char *mep_name, const char *asc_name, int irrep) const¶ Computes ASC given a MEP and the desired irreducible representation.
- Parameters
mep_name
: label of the MEP surface functionasc_name
: label of the ASC surface functionirrep
: index of the desired irreducible representation The module uses the surface function concept to handle potentials and charges. Given labels for each, this function retrieves the MEP and computes the corresponding ASC.
-
void
computeResponseASC
(const char *mep_name, const char *asc_name, int irrep) const¶ Computes response ASC given a MEP and the desired irreducible representation.
- Parameters
mep_name
: label of the MEP surface functionasc_name
: label of the ASC surface functionirrep
: index of the desired irreducible representation IfNonequilibrium = True
in the input, calculates a response ASC using the dynamic permittivity. Falls back to the solver with static permittivity otherwise.
-
double
computePolarizationEnergy
(const char *mep_name, const char *asc_name) const¶ Computes the polarization energy.
- Return
- the polarization energy This function calculates the dot product of the given MEP and ASC vectors.
- Parameters
mep_name
: label of the MEP surface functionasc_name
: label of the ASC surface function
-
double
getASCDipole
(const char *asc_name, double dipole[]) const¶ Getter for the ASC dipole.
- Return
- the ASC dipole, i.e. { ^2}
- Parameters
asc_name
: label of the ASC surface functiondipole
: the Cartesian components of the ASC dipole moment
-
void
getSurfaceFunction
(PCMSolverIndex size, double values[], const char *name) const¶ Retrieves data wrapped in a given surface function.
- Parameters
size
: the size of the surface functionvalues
: the values wrapped in the surface functionname
: label of the surface function
-
void
setSurfaceFunction
(PCMSolverIndex size, double values[], const char *name) const¶ Sets a surface function given data and label.
- Parameters
size
: the size of the surface functionvalues
: the values to be wrapped in the surface functionname
: label of the surface function
-
void
printSurfaceFunction
(const char *name) const¶ Prints surface function contents to host output.
- Parameters
name
: label of the surface function
-
void
saveSurfaceFunctions
() const¶ Dumps all currently saved surface functions to NumPy arrays in .npy files.
-
void
saveSurfaceFunction
(const char *name) const¶ Dumps a surface function to NumPy array in .npy file.
- Parameters
name
: label of the surface function
-
void
loadSurfaceFunction
(const char *name) const¶ Loads a surface function from a .npy file.
- Parameters
name
: label of the surface function
-
void
printInfo
() const¶ Prints citation and set up information.
-
void
writeTimings
() const¶ Writes timing results for the API.
Private Functions
-
void
initInput
(pcmsolver_reader_t input_reading, int nr_nuclei, double charges[], double coordinates[], int symmetry_info[], const PCMInput &host_input)¶ Initialize input_.
- Parameters
input_reading
: input processing strategynr_nuclei
: number of atoms in the moleculecharges
: atomic chargescoordinates
: atomic coordinatessymmetry_info
: molecular point group informationhost_input
: input to the module, as read by the host
-
void
initCavity
()¶ Initialize cavity_
-
void
initStaticSolver
()¶ Initialize static solver K_0_
-
void
initDynamicSolver
()¶ Initialize dynamic solver K_d_
-
void
mediumInfo
(IGreensFunction *gf_i, IGreensFunction *gf_o) const¶ Collect info on medium
Private Members
-
bool
hasDynamic_
¶ Whether K_d_ was initialized
-
SurfaceFunctionMap
functions_
¶ SurfaceFunction map
-
std::string
radiiSetName_
¶ Collects info on atomic radii set
-
-
typedef boost::container::flat_map<std::string, Eigen::VectorXd>
-
namespace
interfaces
¶ PCMSolver, an API for the Polarizable Continuum Model Copyright (C) 2016 Roberto Di Remigio, Luca Frediani and collaborators.
This file is part of PCMSolver.
PCMSolver is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PCMSolver is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with PCMSolver. If not, see http://www.gnu.org/licenses/.
For information on the complete list of contributors to the PCMSolver API, see: http://pcmsolver.readthedocs.io/
Typedefs
-
typedef
StateType
¶ state vector for the differential equation integrator
-
typedef
ProfileEvaluator
¶ sort of a function pointer to the dielectric profile evaluation function
-
struct
IntegratorParameters
¶ - #include <InterfacesImpl.hpp>
holds parameters for the integrator
Public Members
-
double
eps_abs_
¶ Absolute tolerance level
-
double
eps_rel_
¶ Relative tolerance level
-
double
factor_x_
¶ Weight of the state
-
double
factor_dxdt_
¶ Weight of the state derivative
-
double
r_0_
¶ Lower bound of the integration interval
-
double
r_infinity_
¶ Upper bound of the integration interval
-
double
observer_step_
¶ Time step between observer calls
-
double
-
class
LnTransformedRadial
¶ - #include <InterfacesImpl.hpp>
system of ln-transformed first-order radial differential equations
Provides a handle to the system of differential equations for the integrator. The dielectric profile comes in as a boost::function object.
- Author
- Roberto Di Remigio
- Date
- 2015
Public Functions
-
LnTransformedRadial
(const ProfileEvaluator &e, int lval)¶ Constructor from profile evaluator and angular momentum
-
void
operator()
(const StateType &rho, StateType &drhodr, const double r)¶ Provides a functor for the evaluation of the system of first-order ODEs needed by Boost.Odeint The second-order ODE and the system of first-order ODEs are reported in the manuscript.
- Parameters
rho
: state vector holding the function and its first derivativedrhodr
: state vector holding the first and second derivativer
: position on the integration grid
Private Members
-
ProfileEvaluator
eval_
¶ Dielectric profile function and derivative evaluation
-
int
l_
¶ Angular momentum
-
typedef