JDFTx  1.2.0
IdealGasMonoatomic.h
1 /*-------------------------------------------------------------------
2 Copyright 2011 Ravishankar Sundararaman
3 
4 This file is part of JDFTx.
5 
6 JDFTx is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10 
11 JDFTx is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with JDFTx. If not, see <http://www.gnu.org/licenses/>.
18 -------------------------------------------------------------------*/
19 
20 #ifndef JDFTX_FLUID_IDEALGASMONOATOMIC_H
21 #define JDFTX_FLUID_IDEALGASMONOATOMIC_H
22 
23 #include <fluid/IdealGas.h>
24 
27 {
28 public:
31 
32  void initState(const ScalarField* Vex, ScalarField* psi, double scale, double Elo, double Ehi) const;
33  void getDensities(const ScalarField* psi, ScalarField* N, vector3<>& P0) const;
34  double compute(const ScalarField* psi, const ScalarField* N, ScalarField* Phi_N, const double Nscale, double& Phi_Nscale) const;
35  void convertGradients(const ScalarField* psi, const ScalarField* N, const ScalarField* Phi_N, const vector3<>& Phi_P0, ScalarField* Phi_psi, const double Nscale) const;
36 };
37 
38 #endif // JDFTX_FLUID_IDEALGASMONOATOMIC_H
Abstract base class for an IdealGas evaluator.
Definition: IdealGas.h:29
Mixture of fluids that provides the total free energy functional for minimization Constructing Fex an...
Definition: FluidMixture.h:32
double compute(const ScalarField *psi, const ScalarField *N, ScalarField *Phi_N, const double Nscale, double &Phi_Nscale) const
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...
IdealGasMonoatomic(const FluidMixture *, const FluidComponent *)
Initialize and associate with excess functional fex (and its fluid mixture)
IdealGas for monoatomic molecules (i.e. no orientation integral)
Definition: IdealGasMonoatomic.h:26
Named fluid components for which bulk properties / geometries / excess functionals are available...
Definition: FluidComponent.h:27
std::shared_ptr< ScalarFieldData > ScalarField
A smart reference-counting pointer to ScalarFieldData.
Definition: ScalarField.h:41
void convertGradients(const ScalarField *psi, const ScalarField *N, const ScalarField *Phi_N, const vector3<> &Phi_P0, ScalarField *Phi_psi, const double Nscale) const