Helper class for dielectric portion of NonlinearPCM. More...
#include <PCM_internal.h>
Public Member Functions | |
| Dielectric (bool linear, double T, double Nmol, double pMol, double epsBulk, double epsInf) | |
| __hostanddev__ void | calcFunctions (double eps, double &frac, double &logsinch) const |
| Calculate the various nonlinear functions of epsilon used in calculating the free energy and its derivatives. | |
| __hostanddev__ double | x_from_eps (double eps) const |
| Calculate x = pMol E / T given eps. | |
| __hostanddev__ double | eps_from_x (double x) const |
| Invert x_from_eps() using a bisection method. Note that x must be positive and finite. | |
| __hostanddev__ void | apply_calc (size_t i, const RadialFunctionG &dielEnergyLookup, const double *s, vector3< const double * > Dphi, double *A, vector3< double * > A_Dphi, double *A_s) const |
| void | apply (size_t N, const RadialFunctionG &dielEnergyLookup, const double *s, vector3< const double * > Dphi, double *A, vector3< double * > A_Dphi, double *A_s) const |
| void | apply_gpu (size_t N, const RadialFunctionG &dielEnergyLookup, const double *s, vector3< const double * > Dphi, double *A, vector3< double * > A_Dphi, double *A_s) const |
| void | operator() (const RadialFunctionG &dielEnergyLookup, const ScalarField &s, const VectorField &Dphi, ScalarField &A, VectorField &A_Dphi, ScalarField &A_s) const |
Public Attributes | |
| bool | linear |
| whether dielectric is linearized | |
| double | Np |
| double | pByT |
| double | NT |
| N*p, p/T and N*T where N is molecular density and p is molecular dipole. | |
| double | alpha |
| double | X |
| dipole correlation factor and chi*T/p^2 where chi is the molecular susceptibility | |
Helper class for dielectric portion of NonlinearPCM.
|
inline |
Apply nonlinear susceptibility and compute corresponding energy. Set (NOT accumulate) energy density in A, and susceptibility times Phi optionally in A_Dphi. Optionally also set cavity gradient in A_s.