MADNESS  0.10.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
madness::PCM Class Reference

interface class to the PCMSolver library More...

#include <pcm.h>

Collaboration diagram for madness::PCM:
Collaboration graph
[legend]

Public Member Functions

 PCM ()=default
 default ctor More...
 
 PCM (World &world, const Molecule &mol, const std::string pcm_data, const bool verbose)
 constructor for the interface to PCM More...
 
double compute_pcm_energy () const
 compute the PCM energy based on the most recent call of compute_pcm_potential More...
 
real_function_3d compute_pcm_potential (const real_function_3d &coulomb_potential, const bool dynamic=false) const
 compute the potential induced by the surrounding solvent More...
 

Private Member Functions

Tensor< double > nuclear_mep (int nr_nuclei, const Tensor< double > &charges, const Tensor< double > &coordinates, const int grid_size, const Tensor< double > &grid) const
 compute the molecular electrostatic potential from the nuclei More...
 

Private Attributes

std::string asc_lbl
 file name for the total (nuclear + electronic) apparent surface charge More...
 
Tensor< double > charges
 nuclear charges of the molecule, needs to be memory controlled by the PCM class More...
 
Tensor< double > coordinates
 molecular coordinates, needs to be memory controlled by the PCM class More...
 
std::string mep_lbl
 file name for the total (nuclear + electronic) molecular electronic potential More...
 
Tensor< int > symmetry_info
 symmetry info for PCM, needs to be memory controlled by the PCM class More...
 

Detailed Description

interface class to the PCMSolver library

PCMSolver, an API for the Polarizable Continuum Model electrostatic problem. Main authors: R. Di Remigio, L. Frediani, K. Mozgawa

Constructor & Destructor Documentation

◆ PCM() [1/2]

madness::PCM::PCM ( )
default

default ctor

◆ PCM() [2/2]

madness::PCM::PCM ( World world,
const Molecule mol,
const std::string  pcm_data,
const bool  verbose 
)

constructor for the interface to PCM

Parameters
[in]worldthe world
[in]molthe molecule (coordinates and charges of the nuclei)
[in]pcm_datapcm input data as read from the input file
[in]verboseprint the PCM header

References MADNESS_EXCEPTION.

Member Function Documentation

◆ compute_pcm_energy()

double madness::PCM::compute_pcm_energy ( ) const

compute the PCM energy based on the most recent call of compute_pcm_potential

References MADNESS_EXCEPTION.

Referenced by madness::Nemo::compute_energy_regularized(), and madness::SCF::solve().

◆ compute_pcm_potential()

real_function_3d madness::PCM::compute_pcm_potential ( const real_function_3d coulomb_potential,
const bool  dynamic = false 
) const

compute the potential induced by the surrounding solvent

Parameters
[in]coulomb_potentialthe (positive) potential caused by the electron density
[in]dynamiccompute the contribution to a response kernel
Returns
the pcm potential with correct sign: J - K + V_nuc + V_pcm

References MADNESS_EXCEPTION.

Referenced by madness::Nemo::compute_nemo_potentials(), madness::Nemo::make_fock_operator(), and madness::SCF::solve().

◆ nuclear_mep()

Tensor< double > madness::PCM::nuclear_mep ( int  nr_nuclei,
const Tensor< double > &  charges,
const Tensor< double > &  coordinates,
const int  grid_size,
const Tensor< double > &  grid 
) const
private

compute the molecular electrostatic potential from the nuclei

References MADNESS_EXCEPTION.

Member Data Documentation

◆ asc_lbl

std::string madness::PCM::asc_lbl
private

file name for the total (nuclear + electronic) apparent surface charge

◆ charges

Tensor<double> madness::PCM::charges
private

nuclear charges of the molecule, needs to be memory controlled by the PCM class

◆ coordinates

Tensor<double> madness::PCM::coordinates
private

molecular coordinates, needs to be memory controlled by the PCM class

◆ mep_lbl

std::string madness::PCM::mep_lbl
private

file name for the total (nuclear + electronic) molecular electronic potential

◆ symmetry_info

Tensor<int> madness::PCM::symmetry_info
private

symmetry info for PCM, needs to be memory controlled by the PCM class


The documentation for this class was generated from the following files: