JDFTx  1.7.0
ConvCoupling Class Reference

Convolution coupling between electrons and fluids. More...

#include <ConvCoupling.h>

Inheritance diagram for ConvCoupling:
Fmix

Public Member Functions

 ConvCoupling (FluidMixture *fluidMixture, const ExCorr &exCorr)
 
void setExplicit (const ScalarFieldTilde &nCavityTilde)
 
double energyAndGrad (const ScalarFieldTildeArray &Ntilde, ScalarFieldTildeArray *Phi_Ntilde=0, ScalarFieldTilde *Phi_nCavityTilde=0) const
 Main energy and gradients function.
 
double computeUniform (const std::vector< double > &N, std::vector< double > &Phi_N) const
 
double compute (const ScalarFieldTildeArray &Ntilde, 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.
 

Public Attributes

double Vxc_bulk
 
const ExCorrexCorr
 
- Public Attributes inherited from Fmix
const GridInfogInfo
 
const double T
 

Detailed Description

Convolution coupling between electrons and fluids.

Member Function Documentation

◆ compute()

double ConvCoupling::compute ( const ScalarFieldTildeArray Ntilde,
ScalarFieldTildeArray Phi_Ntilde 
) const
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.

◆ computeUniform()

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

◆ setExplicit()

void ConvCoupling::setExplicit ( const ScalarFieldTilde nCavityTilde)

Set explicit system properties

Parameters
nCavity"Cavity-effective" density of the explicit system (explicit electrons + chargeball)

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