PSCF v1.4.0
Pscf::Rp::EinsteinCrystalPerturbation< D, T > Class Template Reference

Perturbation for Einstein crystal thermodynamic integration. More...

#include <EinsteinCrystalPerturbation.h>

Inheritance diagram for Pscf::Rp::EinsteinCrystalPerturbation< D, T >:

Public Member Functions

virtual void readParameters (std::istream &in)
 Read body of parameter file block and initialize.
virtual void setup ()
 Complete any required initialization.
virtual double hamiltonian (double unperturbedHamiltonian)
 Compute and return the perturbation to the Hamiltonian.
virtual void incrementDc (DArray< typename T::RField > &dc)
 Modify the generalized forces to include perturbation.
virtual double df ()
 Compute and return derivative of free energy w/ respect to lambda.
virtual void saveState ()
 Save any required internal state variables.
virtual void restoreState ()
 Restore any required internal state variables.

Protected Member Functions

 EinsteinCrystalPerturbation (typename T::Simulator &simulator)
 Constructor.
 ~EinsteinCrystalPerturbation ()=default
 Destructor.

Detailed Description

template<int D, class T>
class Pscf::Rp::EinsteinCrystalPerturbation< D, T >

Perturbation for Einstein crystal thermodynamic integration.

Specializations of this class template are used as base classes for two analogous class templates, also named EinsteinCrystalPerturbation, that are defined in Rpc and Rpg namespaces for use in the pscf_rpc and pscf_rpg programs, respectively.

Template parameters:

See also
Einstein Crystal
Perturbations

Definition at line 30 of file fts/perturbation/EinsteinCrystalPerturbation.h.

Constructor & Destructor Documentation

◆ EinsteinCrystalPerturbation()

template<int D, class T>
Pscf::Rp::EinsteinCrystalPerturbation< D, T >::EinsteinCrystalPerturbation ( typename T::Simulator & simulator)
protected

Constructor.

Parameters
simulatorparent Simulator object

Definition at line 25 of file EinsteinCrystalPerturbation.tpp.

References Util::ParamComposite::setClassName().

◆ ~EinsteinCrystalPerturbation()

template<int D, class T>
Pscf::Rp::EinsteinCrystalPerturbation< D, T >::~EinsteinCrystalPerturbation ( )
protecteddefault

Destructor.

Member Function Documentation

◆ readParameters()

template<int D, class T>
void Pscf::Rp::EinsteinCrystalPerturbation< D, T >::readParameters ( std::istream & in)
virtual

Read body of parameter file block and initialize.

Parameters
ininput parameter file stream

Definition at line 39 of file EinsteinCrystalPerturbation.tpp.

References Util::ParamComposite::read().

◆ setup()

template<int D, class T>
void Pscf::Rp::EinsteinCrystalPerturbation< D, T >::setup ( )
virtual

Complete any required initialization.

Definition at line 62 of file EinsteinCrystalPerturbation.tpp.

◆ hamiltonian()

template<int D, class T>
double Pscf::Rp::EinsteinCrystalPerturbation< D, T >::hamiltonian ( double unperturbedHamiltonian)
virtual

Compute and return the perturbation to the Hamiltonian.

Parameters
unperturbedHamiltonianHamiltonian without perturbation

Definition at line 106 of file EinsteinCrystalPerturbation.tpp.

References Pscf::VecOp::subVV(), and Pscf::Reduce::sumSq().

◆ incrementDc()

template<int D, class T>
void Pscf::Rp::EinsteinCrystalPerturbation< D, T >::incrementDc ( DArray< typename T::RField > & dc)
virtual

Modify the generalized forces to include perturbation.

Parameters
dcfunctional derivatives of Hamiltonian (in/out)

Definition at line 139 of file EinsteinCrystalPerturbation.tpp.

References Pscf::VecOp::addEqVc(), Pscf::VecOp::mulEqS(), and Pscf::VecOp::subVV().

◆ df()

template<int D, class T>
double Pscf::Rp::EinsteinCrystalPerturbation< D, T >::df ( )
virtual

Compute and return derivative of free energy w/ respect to lambda.

Definition at line 163 of file EinsteinCrystalPerturbation.tpp.

◆ saveState()

template<int D, class T>
void Pscf::Rp::EinsteinCrystalPerturbation< D, T >::saveState ( )
virtual

Save any required internal state variables.

Definition at line 170 of file EinsteinCrystalPerturbation.tpp.

◆ restoreState()

template<int D, class T>
void Pscf::Rp::EinsteinCrystalPerturbation< D, T >::restoreState ( )
virtual

Restore any required internal state variables.

Definition at line 180 of file EinsteinCrystalPerturbation.tpp.


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