JDFTx  1.7.0
IdealGasMonoatomic Class Reference

IdealGas for monoatomic molecules (i.e. no orientation integral) More...

#include <IdealGasMonoatomic.h>

Inheritance diagram for IdealGasMonoatomic:

Public Member Functions

 IdealGasMonoatomic (const FluidMixture *, const FluidComponent *)
 Initialize and associate with excess functional fex (and its fluid mixture)
void initState (const ScalarField *Vex, ScalarField *psi, double scale, double Elo, double Ehi) const
void getDensities (const ScalarField *psi, ScalarField *N, vector3<> &P0) const
 Given the independent variables indep, compute the site densities N and G=0 component of polarization density P.
double compute (const ScalarField *psi, const ScalarField *N, ScalarField *Phi_N, const double Nscale, double &Phi_Nscale) const
void convertGradients (const ScalarField *psi, const ScalarField *N, const ScalarField *Phi_N, const vector3<> &Phi_P0, ScalarField *Phi_psi, const double Nscale) const
- Public Member Functions inherited from IdealGas
 IdealGas (int nIndep, const FluidMixture *, const FluidComponent *)
 Initialize and register to be used with excess functional fex in its fluidMixture.
double get_Nbulk ()
void overrideBulk (double Nbulk, double mu)
 Override the values for bulk density and chemical potential set by fluidMixture::initialize()

Additional Inherited Members

- Public Attributes inherited from IdealGas
const int nIndep
 Number of scalar fields used as independent variables.
const Moleculemolecule
 Associated molecule geometry.
const GridInfogInfo
 grid specifications
const double T
ScalarFieldArray V
 external site potentials
- Protected Attributes inherited from IdealGas
double Nbulk
 equilibirum density of this molecule in the bulk mixture
double mu
 chemical potential for this molecule
double corrPrefac
 prefactor for dipolar rotational correlations

Detailed Description

IdealGas for monoatomic molecules (i.e. no orientation integral)

Member Function Documentation

◆ compute()

double IdealGasMonoatomic::compute ( const ScalarField indep,
const ScalarField N,
ScalarField Phi_N,
const double  Nscale,
double &  Phi_Nscale 
) const

Return the ideal gas free energy PhiNI = T Int N - T S + (V-mu).N (where S is implementation dependent) and accumulate the gradients w.r.t the site densities Nscale is the factor by which the site densities/moments were scaled after getDensities() in order to implement fixed N / charge neutrality. Accumulate explicit gradients of PhiNI w.r.t Nscale in Phi_Nscale; the implicit dependence through N is handled by FluidMixture.

Implements IdealGas.

◆ convertGradients()

void IdealGasMonoatomic::convertGradients ( const ScalarField indep,
const ScalarField N,
const ScalarField Phi_N,
const vector3<> &  Phi_P0,
ScalarField Phi_indep,
const double  Nscale 
) const

Compute Phi_indep, the total gradients w.r.t indep, given th egradients of the entire functional w.r.t site densities, Phi_N, and polarization density G=0 Phi_P0. Nscale will be the same as in compute()

Implements IdealGas.

◆ initState()

void IdealGasMonoatomic::initState ( const ScalarField Vex,
ScalarField indep,
double  scale,
double  Elo,
double  Ehi 
) const

Create an initial guess for the indep, in presence of V and the extra potential Vex The initial guess is typically taken to be scale times what would generate the equilibrium ideal gas density upto caps Elo and Ehi on the molecule energy configurations considered. This would also be a good place to logPrintf useful statistics about the potential for debugging

Implements IdealGas.

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