JDFTx  1.2.0
MixedFMT.h File Reference

Sphere mixture functional via (optionally soft) Fundamental Measure Theory. More...

#include <core/Operators.h>

Go to the source code of this file.

Functions

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)
 

Detailed Description

Sphere mixture functional via (optionally soft) Fundamental Measure Theory.

Function Documentation

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