Files | |
file | Fex_LJ.h |
Lennard-Jones fluids. | |
file | Fex_ScalarEOS.h |
file | Fex_ScalarEOS_internal.h |
file | MixedFMT.h |
Sphere mixture functional via (optionally soft) Fundamental Measure Theory. | |
file | MixedFMT_internal.h |
file | S2quad.h |
Classes | |
class | ConvCoupling |
Convolution coupling between electrons and fluids. More... | |
class | ErfFMTweight |
Utility for creating (optionally soft) FMT weight functions. More... | |
class | Fex |
Abstract base class for excess functionals. More... | |
class | Fex_H2O_BondedVoids |
Water 'BondedVoids' excess functional from [34]. More... | |
class | Fex_H2O_FittedCorrelations |
Water excess functional from [17]. More... | |
class | Fex_LJ |
Lennard Jones fluid treated as a mean field perturbation about a soft FMT core. More... | |
class | Fmix_LJ |
Lennard-Jones interaction functional. More... | |
class | Fmix_GaussianKernel |
Gaussian Kernel interaction functional. More... | |
struct | ScalarEOS |
Abstract base class for the equation of state evaluator for ScalarEOS functionals. More... | |
class | Fex_ScalarEOS |
Scalar EOS functional from [31] and its extension from [36]. More... | |
struct | JeffereyAustinEOS |
Jefferey-Austin equation of state for water. More... | |
struct | TaoMasonEOS |
Tao-Mason equation of state for moderately polar liquids. More... | |
struct | ScalarEOS_eval |
Base class for equation of state evaluators. More... | |
struct | JeffereyAustinEOS_eval |
Jefferey-Austin Equation of state for water. More... | |
struct | TaoMasonEOS_eval |
Tao-Mason equation of state [F. Tao and E. A. Mason, J. Chem. Phys. 100, 9075 (1994)]. More... | |
class | FluidMixture |
Mixture of fluids that provides the total free energy functional for minimization Constructing Fex and IdealGas objects require a FluidMixture reference, to which they add themselves. The FluidMixture object is ready to use after initialize() is called. More... | |
class | Fmix |
Abstract base class for mixing functionals: interactions between fluids (beyond hard sphere and scaled coulomb) More... | |
class | IdealGas |
Abstract base class for an IdealGas evaluator. More... | |
class | IdealGasMonoatomic |
IdealGas for monoatomic molecules (i.e. no orientation integral) More... | |
class | IdealGasMuEps |
IdealGas for polyatomic molecules with the monopole-dipole 'MuEps' independent variables. More... | |
class | IdealGasPomega |
class | IdealGasPsiAlpha |
IdealGas for polyatomic molecules with the effective potential 'psi_alpha' independent variables. More... | |
struct | S2quad |
Abstract base class for a S2 quadrature definition (used to generate the SO3 qudarature) More... | |
class | EulerProduct |
Outer-product quadrature on ZYZ euler angles. More... | |
class | Tetrahedron |
Tetrahedron rotation group. More... | |
class | Octahedron |
Octahedron rotation group. More... | |
class | Icosahedron |
Icosahedron rotation group. More... | |
class | S2_7design_24 |
Spherical 7-design with 24 nodes. More... | |
class | S2_8design_36 |
Spherical 8-design with 36 nodes. More... | |
class | S2_9design_48 |
Spherical 9-design with 48 nodes. More... | |
class | S2_10design_60 |
Spherical 10-design with 60 nodes. More... | |
class | S2_11design_70 |
Spherical 11-design with 70 nodes. More... | |
class | S2_12design_84 |
Spherical 12-design with 84 nodes. More... | |
class | S2_13design_94 |
Spherical 13-design with 94 nodes. More... | |
class | S2_14design_108 |
Spherical 14-design with 108 nodes. More... | |
class | S2_15design_120 |
Spherical 15-design with 120 nodes. More... | |
class | S2_16design_144 |
Spherical 16-design with 144 nodes. More... | |
class | S2_17design_156 |
Spherical 17-design with 156 nodes. More... | |
class | S2_18design_180 |
Spherical 18-design with 180 nodes. More... | |
class | S2_19design_204 |
Spherical 19-design with 204 nodes. More... | |
class | S2_20design_216 |
Spherical 20-design with 216 nodes. More... | |
class | S2_21design_240 |
Spherical 21-design with 240 nodes. More... | |
class | SO3quad |
Quadrature for SO(3) More... | |
class | VDWCoupling |
Van der Waals coupling between atoms from electronic DFT and fluid density fields. More... | |
Enumerations | |
enum | S2quadType { QuadEuler , QuadTetrahedron , QuadOctahedron , QuadIcosahedron , Quad7design_24 , Quad8design_36 , Quad9design_48 , Quad10design_60 , Quad11design_70 , Quad12design_84 , Quad13design_94 , Quad14design_108 , Quad15design_120 , Quad16design_144 , Quad17design_156 , Quad18design_180 , Quad19design_204 , Quad20design_216 , Quad21design_240 } |
List of available quadratures. | |
Functions | |
void | setLJatt (RadialFunctionG &kernel, const GridInfo &gInfo, double eps, double sigma) |
Initialize kernel to the attarctive part of a Lennard-Jones potential. | |
double | PhiFMT (const ScalarField &n0, const ScalarField &n1, const ScalarField &n2, const ScalarFieldTilde &n3tilde, const ScalarFieldTilde &n1vTilde, const ScalarFieldTilde &n2mTilde, ScalarField &grad_n0, ScalarField &grad_n1, ScalarField &grad_n2, ScalarFieldTilde &grad_n3tilde, ScalarFieldTilde &grad_n1vTilde, ScalarFieldTilde &grad_n2mTilde) |
double | phiFMTuniform (double n0, double n1, double n2, double n3, double &grad_n0, double &grad_n1, double &grad_n2, double &grad_n3) |
double | PhiBond (double Rhm, double scale, const ScalarField &n0mol, const ScalarField &n2, const ScalarFieldTilde &n3tilde, ScalarField &grad_n0mol, ScalarField &grad_n2, ScalarFieldTilde &grad_n3tilde) |
double | phiBondUniform (double Rhm, double scale, double n0mol, double n2, double n3, double &grad_n0mol, double &grad_n2, double &grad_n3) |
__hostanddev__ void | tensorKernel_calc (int i, const vector3< int > iG, bool nyq, const matrix3<> G, const complex *nTilde, tensor3< complex * > mTilde) |
Calculate tensor derivative. | |
__hostanddev__ void | tensorKernel_grad_calc (int i, const vector3< int > iG, bool nyq, const matrix3<> G, tensor3< const complex * > grad_mTilde, complex *grad_nTilde) |
Propagate gradients with respect to tensor derivative. | |
__hostanddev__ double | mul_vTmv (const tensor3<> &m, const vector3<> &v) |
Compute vT*m*v for a vector v and a symmetric traceless tensor m. | |
__hostanddev__ void | mul_vTmv_grad (const double grad_mul, const tensor3<> &m, const vector3<> &v, tensor3<> &grad_m, vector3<> &grad_v) |
Accumulate gradient of above function. | |
__hostanddev__ double | trace_cubed (const tensor3<> &m) |
Compute tr(m^3) for a symmetric traceless tensor m (See ~/Water1D/FMT_tensorWeights.m for expressions) | |
__hostanddev__ void | trace_cubed_grad (const double grad_trace, const tensor3<> &m, tensor3<> &grad_m) |
Accumulate gradient of above function. | |
__hostanddev__ double | WB_f2 (double x, double &f2_x) |
White-Bear mark II FMT scale function f2 (and derivative) [replace with f2(x)=f3(x)=1 for standard Tarazona FMT]: | |
__hostanddev__ double | WB_f3 (double x, double &f3_x) |
White-Bear mark II FMT scale function f3 (and derivative) [replace with f2(x)=f3(x)=1 for standard Tarazona FMT]: | |
__hostanddev__ double | phiFMT_calc (int i, const double *n0arr, const double *n1arr, const double *n2arr, const double *n3arr, vector3< const double * > n1vArr, vector3< const double * > n2vArr, tensor3< const double * > n2mArr, double *grad_n0arr, double *grad_n1arr, double *grad_n2arr, double *grad_n3arr, vector3< double * > grad_n1vArr, vector3< double * > grad_n2vArr, tensor3< double * > grad_n2mArr) |
Calculate FMT functional. | |
__hostanddev__ double | phiBond_calc (int i, double Rhm, double scale, const double *n0arr, const double *n2arr, const double *n3arr, vector3< const double * > n2vArr, double *grad_n0arr, double *grad_n2arr, double *grad_n3arr, vector3< double * > grad_n2vArr) |
Calculate bonding term. | |
double PhiBond | ( | double | Rhm, |
double | scale, | ||
const ScalarField & | n0mol, | ||
const ScalarField & | n2, | ||
const ScalarFieldTilde & | n3tilde, | ||
ScalarField & | grad_n0mol, | ||
ScalarField & | grad_n2, | ||
ScalarFieldTilde & | grad_n3tilde | ||
) |
Bonding correction for tangentially bonded hard spheres Rhm = Ra Rb /(Ra+Rb) is the harmonic sum of the sphere radii scale is a scale factor for the correction (ratio of bond multiplicity to number of hard sphere sites in molecule) n0mol is the suitably weighted partial measure-0 weighted density of this molecule n2 and n3 are the usual FMT weighted densities. Returns the free energy/T of bonding and accumulates gradients in grad_n* Note that n3 is in fourier space for faster computation of n2v = -gradient n3
double phiBondUniform | ( | double | Rhm, |
double | scale, | ||
double | n0mol, | ||
double | n2, | ||
double | n3, | ||
double & | grad_n0mol, | ||
double & | grad_n2, | ||
double & | grad_n3 | ||
) |
Returns the free energy density/T and accumulates derivatives corresponding to PhiBond() for the uniform fluid
double PhiFMT | ( | const ScalarField & | n0, |
const ScalarField & | n1, | ||
const ScalarField & | n2, | ||
const ScalarFieldTilde & | n3tilde, | ||
const ScalarFieldTilde & | n1vTilde, | ||
const ScalarFieldTilde & | n2mTilde, | ||
ScalarField & | grad_n0, | ||
ScalarField & | grad_n1, | ||
ScalarField & | grad_n2, | ||
ScalarFieldTilde & | grad_n3tilde, | ||
ScalarFieldTilde & | grad_n1vTilde, | ||
ScalarFieldTilde & | grad_n2mTilde | ||
) |
Returns the ‘White-Bear mark II’ mixed sphere free energy/T given the weighted densities n* and accumulates the gradients in grad_n*. Note that n1v and n2m are scalar weighted densities, from which the vector and tensor weighted densities are obtained internally by a gradient and traceless tensor second derivative respectively. n2v is obtained as the negative gradient of n3. This is why n3, n1v and n2m are passed in reciprocal space: they need fourier space processing for gradients etc.
double phiFMTuniform | ( | double | n0, |
double | n1, | ||
double | n2, | ||
double | n3, | ||
double & | grad_n0, | ||
double & | grad_n1, | ||
double & | grad_n2, | ||
double & | grad_n3 | ||
) |
Returns the free energy density/T and accumulates derivatives corresponding to PhiFMT() for the uniform fluid