#include <IdealGasPomega.h>
Public Member Functions | |
IdealGasPomega (const FluidMixture *, const FluidComponent *, const SO3quad &quad, const TranslationOperator &trans, unsigned nIndepOverride=0) | |
void | initState (const ScalarField *Vex, ScalarField *indep, double scale, double Elo, double Ehi) const |
void | getDensities (const ScalarField *indep, 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 *indep, const ScalarField *N, ScalarField *Phi_N, const double Nscale, double &Phi_Nscale) const |
void | convertGradients (const ScalarField *indep, const ScalarField *N, const ScalarField *Phi_N, const vector3<> &Phi_P0, ScalarField *Phi_indep, 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() | |
Protected Member Functions | |
virtual string | representationName () const |
virtual void | initState_o (int o, const matrix3<> &rot, double scale, const ScalarField &Eo, ScalarField *state) const |
virtual void | getDensities_o (int o, const matrix3<> &rot, const ScalarField *state, ScalarField &logPomega_o) const |
virtual void | convertGradients_o (int o, const matrix3<> &rot, const ScalarField &Phi_logPomega_o, ScalarField *Phi_state) const |
Protected Attributes | |
const SO3quad & | quad |
quadrature for orientation integral | |
const TranslationOperator & | trans |
translation operator for orientation integral | |
vector3 | pMol |
molecule dipole moment in reference frame | |
int | oStart |
int | oStop |
portion of orientation loop handled by current process | |
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 | |
Additional Inherited Members | |
Public Attributes inherited from IdealGas | |
const int | nIndep |
Number of scalar fields used as independent variables. | |
const Molecule & | molecule |
Associated molecule geometry. | |
const GridInfo & | gInfo |
grid specifications | |
const double | T |
temperature | |
ScalarFieldArray | V |
external site potentials | |
IdealGas for polyatomic molecules with the orientation densities 'P_omega' as independent variables This is also the base class for IdealGas's which used compressed representations of Pomega
IdealGasPomega::IdealGasPomega | ( | const FluidMixture * | , |
const FluidComponent * | , | ||
const SO3quad & | quad, | ||
const TranslationOperator & | trans, | ||
unsigned | nIndepOverride = 0 |
||
) |
Initialize and associate with excess functional fex (and its fluid mixture) Also specify the orientation quadrature and translation operator used for the orientation integrals
|
virtual |
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.
|
virtual |
|
virtual |
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.
Reimplemented in IdealGasPsiAlpha.