JDFTx  1.7.0
Fmix Class Referenceabstract

Abstract base class for mixing functionals: interactions between fluids (beyond hard sphere and scaled coulomb) More...

#include <Fmix.h>

Inheritance diagram for Fmix:
ConvCoupling Fmix_GaussianKernel Fmix_LJ VDWCoupling

Public Member Functions

 Fmix (FluidMixture *fluidMixture)
 Initialize base and register with this fluidMixture.
 
virtual string getName () const =0
 A string identifier for this mixing functional (used in EnergyComponent label)
 
virtual double compute (const ScalarFieldTildeArray &Ntilde, ScalarFieldTildeArray &Phi_Ntilde) const =0
 
virtual double computeUniform (const std::vector< double > &N, std::vector< double > &Phi_N) const =0
 

Public Attributes

const GridInfogInfo
 
const double T
 

Detailed Description

Abstract base class for mixing functionals: interactions between fluids (beyond hard sphere and scaled coulomb)

Member Function Documentation

◆ compute()

virtual double Fmix::compute ( const ScalarFieldTildeArray Ntilde,
ScalarFieldTildeArray Phi_Ntilde 
) const
pure 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())

Implemented in VDWCoupling, Fmix_GaussianKernel, Fmix_LJ, and ConvCoupling.

◆ computeUniform()

virtual double Fmix::computeUniform ( const std::vector< double > &  N,
std::vector< double > &  Phi_N 
) const
pure 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())

Implemented in VDWCoupling, Fmix_GaussianKernel, Fmix_LJ, and ConvCoupling.


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