Van der Waals coupling between atoms from electronic DFT and fluid density fields. More...
#include <VDWCoupling.h>
Public Member Functions | |
VDWCoupling (FluidMixture *fluidMixture, const std::vector< std::vector< vector3<>>> &atpos, const std::shared_ptr< VanDerWaalsD2 > &vdW, double vdwScale) | |
double | energyAndGrad (const ScalarFieldTildeArray Ñ, ScalarFieldTildeArray *Phi_Ntilde=0, IonicGradient *forces=0) const |
Main energy and gradients function. | |
double | computeUniform (const std::vector< double > &N, std::vector< double > &Phi_N) const |
double | compute (const ScalarFieldTildeArray Ñ, ScalarFieldTildeArray &Phi_Ntilde) const |
string | getName () const |
A string identifier for this mixing functional (used in EnergyComponent label) | |
Public Member Functions inherited from Fmix | |
Fmix (FluidMixture *fluidMixture) | |
Initialize base and register with this fluidMixture. | |
Additional Inherited Members | |
Public Attributes inherited from Fmix | |
const GridInfo & | gInfo |
const double | T |
Van der Waals coupling between atoms from electronic DFT and fluid density fields.
|
virtual |
Return the interaction free energy given the reciprocal space site densities and accumulate the gradient (functional derivative) w.r.t them in Phi_Ntilde Note that unlike Fex, all site densities are handed to an Fmix and it is Fmix's responsibility to pick up the correct site densities (perhaps using FluidMixture::get_offsetDensity())
Implements Fmix.
|
virtual |
Return the uniform fluid interaction free energy density given the site densities N and accumulate the derivative w.r.t them in Phi_N. This MUST return the result corresponding to calling compute() with a uniform scalar field. This is called several times during FluidMixture::initialize() to get the desired bulk properties Note that unlike Fex, all site densities are handed to an Fmix and it is Fmix's responsibility to pick up the correct site densities (perhaps using FluidMixture::get_offsetDensity())
Implements Fmix.