Files | |
file | vfetk.h |
Contains declarations for class Vfetk. | |
Data Structures | |
struct | sVfetk |
Contains public data members for Vfetk class/module. More... | |
struct | sVfetk_LocalVar |
Vfetk LocalVar subclass Contains variables used when solving the PDE with FEtk. More... | |
Typedefs | |
typedef enum eVfetk_LsolvType | Vfetk_LsolvType |
Declare FEMparm_LsolvType type. | |
typedef enum eVfetk_NsolvType | Vfetk_NsolvType |
Declare FEMparm_NsolvType type. | |
typedef enum eVfetk_GuessType | Vfetk_GuessType |
Declare FEMparm_GuessType type. | |
typedef enum eVfetk_PrecType | Vfetk_PrecType |
Declare FEMparm_GuessType type. | |
typedef sVfetk_LocalVar | Vfetk_LocalVar |
Declaration of the Vfetk_LocalVar subclass as the Vfetk_LocalVar structure. | |
typedef sVfetk | Vfetk |
Declaration of the Vfetk class as the Vfetk structure. | |
Enumerations | |
enum | eVfetk_LsolvType { VLT_SLU = 0, VLT_MG = 1, VLT_CG = 2, VLT_BCG = 3 } |
Linear solver type. More... | |
enum | eVfetk_NsolvType { VNT_NEW = 0, VNT_INC = 1, VNT_ARC = 2 } |
Non-linear solver type. More... | |
enum | eVfetk_GuessType { VGT_ZERO = 0, VGT_DIRI = 1, VGT_PREV = 2 } |
Initial guess type. More... | |
enum | eVfetk_PrecType { VPT_IDEN = 0, VPT_DIAG = 1, VPT_MG = 2 } |
Preconditioner type. More... | |
Functions | |
Gem * | Vfetk_getGem (Vfetk *thee) |
Get a pointer to the Gem (grid manager) object. | |
AM * | Vfetk_getAM (Vfetk *thee) |
Get a pointer to the AM (algebra manager) object. | |
Vpbe * | Vfetk_getVpbe (Vfetk *thee) |
Get a pointer to the Vpbe (PBE manager) object. | |
Vcsm * | Vfetk_getVcsm (Vfetk *thee) |
Get a pointer to the Vcsm (charge-simplex map) object. | |
int | Vfetk_getAtomColor (Vfetk *thee, int iatom) |
Get the partition information for a particular atom. | |
Vfetk * | Vfetk_ctor (Vpbe *pbe, Vhal_PBEType type) |
Constructor for Vfetk object. | |
int | Vfetk_ctor2 (Vfetk *thee, Vpbe *pbe, Vhal_PBEType type) |
FORTRAN stub constructor for Vfetk object. | |
void | Vfetk_dtor (Vfetk **thee) |
Object destructor. | |
void | Vfetk_dtor2 (Vfetk *thee) |
FORTRAN stub object destructor. | |
double * | Vfetk_getSolution (Vfetk *thee, int *length) |
Create an array containing the solution (electrostatic potential in units of ![]() | |
void | Vfetk_setParameters (Vfetk *thee, PBEparm *pbeparm, FEMparm *feparm) |
Set the parameter objects. | |
double | Vfetk_energy (Vfetk *thee, int color, int nonlin) |
Return the total electrostatic energy. | |
double | Vfetk_dqmEnergy (Vfetk *thee, int color) |
Get the "mobile charge" and "polarization" contributions to the electrostatic energy. | |
double | Vfetk_qfEnergy (Vfetk *thee, int color) |
Get the "fixed charge" contribution to the electrostatic energy. | |
unsigned long int | Vfetk_memChk (Vfetk *thee) |
Return the memory used by this structure (and its contents) in bytes. | |
void | Vfetk_setAtomColors (Vfetk *thee) |
Transfer color (partition ID) information frmo a partitioned mesh to the atoms. | |
void | Bmat_printHB (Bmat *thee, char *fname) |
Writes a Bmat to disk in Harwell-Boeing sparse matrix format. | |
int | Vfetk_genCube (Vfetk *thee, double center[VAPBS_DIM], double length[VAPBS_DIM]) |
Generates a simple cubic tetrahedral mesh. | |
PDE * | Vfetk_PDE_ctor (Vfetk *fetk) |
Constructs the FEtk PDE object. | |
int | Vfetk_PDE_ctor2 (PDE *thee, Vfetk *fetk) |
Intializes the FEtk PDE object. | |
void | Vfetk_PDE_dtor (PDE **thee) |
Destroys FEtk PDE object. | |
void | Vfetk_PDE_dtor2 (PDE *thee) |
FORTRAN stub: destroys FEtk PDE object. | |
void | Vfetk_PDE_initAssemble (PDE *thee, int ip[], double rp[]) |
Do once-per-assembly initialization. | |
void | Vfetk_PDE_initElement (PDE *thee, int elementType, int chart, double tvx[][VAPBS_DIM], void *data) |
Do once-per-element initialization. | |
void | Vfetk_PDE_initFace (PDE *thee, int faceType, int chart, double tnvec[]) |
Do once-per-face initialization. | |
void | Vfetk_PDE_initPoint (PDE *thee, int pointType, int chart, double txq[], double tU[], double tdU[][VAPBS_DIM]) |
Do once-per-point initialization. | |
void | Vfetk_PDE_Fu (PDE *thee, int key, double F[]) |
Evaluate strong form of PBE. For interior points, this is:
where
where | |
double | Vfetk_PDE_Fu_v (PDE *thee, int key, double V[], double dV[][VAPBS_DIM]) |
This is the weak form of the PBE; i.e. the strong form integrated with a test function to give:
| |
double | Vfetk_PDE_DFu_wv (PDE *thee, int key, double W[], double dW[][VAPBS_DIM], double V[], double dV[][VAPBS_DIM]) |
This is the linearization of the weak form of the PBE; e.g., for use in a Newton iteration. This is the functional linearization of the strong form integrated with a test function to give:
where | |
void | Vfetk_PDE_delta (PDE *thee, int type, int chart, double txq[], void *user, double F[]) |
Evaluate a (discretized) delta function source term at the given point. | |
void | Vfetk_PDE_u_D (PDE *thee, int type, int chart, double txq[], double F[]) |
Evaluate the Dirichlet boundary condition at the given point. | |
void | Vfetk_PDE_u_T (PDE *thee, int type, int chart, double txq[], double F[]) |
Evaluate the "true solution" at the given point for comparison with the numerical solution. | |
void | Vfetk_PDE_bisectEdge (int dim, int dimII, int edgeType, int chart[], double vx[][VAPBS_DIM]) |
Define the way manifold edges are bisected. | |
void | Vfetk_PDE_mapBoundary (int dim, int dimII, int vertexType, int chart, double vx[VAPBS_DIM]) |
Map a boundary point to some pre-defined shape. | |
int | Vfetk_PDE_markSimplex (int dim, int dimII, int simplexType, int faceType[VAPBS_NVS], int vertexType[VAPBS_NVS], int chart[], double vx[][VAPBS_DIM], void *simplex) |
User-defined error estimator -- in our case, a geometry-based refinement method; forcing simplex refinement at the dielectric boundary and (for non-regularized PBE) the charges. | |
void | Vfetk_PDE_oneChart (int dim, int dimII, int objType, int chart[], double vx[][VAPBS_DIM], int dimV) |
Unify the chart for different coordinate systems -- a no-op for us. | |
double | Vfetk_PDE_Ju (PDE *thee, int key) |
Energy functional. This returns the energy (less delta function terms) in the form:
for a 1:1 electrolyte where | |
void | Vfetk_externalUpdateFunction (SS **simps, int num) |
External hook to simplex subdivision routines in Gem. Called each time a simplex is subdivided (we use it to update the charge-simplex map). | |
int | Vfetk_PDE_simplexBasisInit (int key, int dim, int comp, int *ndof, int dof[]) |
Initialize the bases for the trial or the test space, for a particular component of the system, at all quadrature points on the master simplex element. | |
void | Vfetk_PDE_simplexBasisForm (int key, int dim, int comp, int pdkey, double xq[], double basis[]) |
Evaluate the bases for the trial or test space, for a particular component of the system, at all quadrature points on the master simplex element. | |
void | Vfetk_readMesh (Vfetk *thee, int skey, Vio *sock) |
Read in mesh and initialize associated internal structures. | |
void | Vfetk_dumpLocalVar () |
Debugging routine to print out local variables used by PDE object. | |
int | Vfetk_fillArray (Vfetk *thee, Bvec *vec, Vdata_Type type) |
Fill an array with the specified data. | |
int | Vfetk_write (Vfetk *thee, const char *iodev, const char *iofmt, const char *thost, const char *fname, Bvec *vec, Vdata_Format format) |
Write out data. |
|
Initial guess type.
|
|
Linear solver type.
|
|
Non-linear solver type.
|
|
Preconditioner type.
|
|
Writes a Bmat to disk in Harwell-Boeing sparse matrix format.
|
|
Constructor for Vfetk object.
|
|
FORTRAN stub constructor for Vfetk object.
|
|
Get the "mobile charge" and "polarization" contributions to the electrostatic energy. Using the solution at the finest mesh level, get the electrostatic energy due to the interaction of the mobile charges with the potential and polarization of the dielectric medium:
for the NPBE and
for the LPBE. Here
|
|
Object destructor.
|
|
FORTRAN stub object destructor.
|
|
Debugging routine to print out local variables used by PDE object.
|
|
Return the total electrostatic energy.
Using the solution at the finest mesh level, get the electrostatic energy using the free energy functional for the Poisson-Boltzmann equation without removing any self-interaction terms (i.e., removing the reference state of isolated charges present in an infinite dielectric continuum with the same relative permittivity as the interior of the protein) and return the result in units of
|
|
External hook to simplex subdivision routines in Gem. Called each time a simplex is subdivided (we use it to update the charge-simplex map).
|
|
Fill an array with the specified data.
|
|
Generates a simple cubic tetrahedral mesh.
|
|
Get a pointer to the AM (algebra manager) object.
|
|
Get the partition information for a particular atom.
|
|
Get a pointer to the Gem (grid manager) object.
|
|
Create an array containing the solution (electrostatic potential in units of
|
|
Get a pointer to the Vcsm (charge-simplex map) object.
|
|
Get a pointer to the Vpbe (PBE manager) object.
|
|
Return the memory used by this structure (and its contents) in bytes.
|
|
Define the way manifold edges are bisected.
|
|
Constructs the FEtk PDE object.
|
|
Intializes the FEtk PDE object.
|
|
Evaluate a (discretized) delta function source term at the given point.
|
|
This is the linearization of the weak form of the PBE; e.g., for use in a Newton iteration. This is the functional linearization of the strong form integrated with a test function to give:
where
|
|
Destroys FEtk PDE object.
|
|
FORTRAN stub: destroys FEtk PDE object.
|
|
Evaluate strong form of PBE. For interior points, this is:
where
where
|
|
This is the weak form of the PBE; i.e. the strong form integrated with a test function to give:
where
|
|
Do once-per-assembly initialization.
|
|
Do once-per-element initialization.
|
|
Do once-per-face initialization.
|
|
Do once-per-point initialization.
|
|
Energy functional. This returns the energy (less delta function terms) in the form:
for a 1:1 electrolyte where
|
|
Map a boundary point to some pre-defined shape.
|
|
User-defined error estimator -- in our case, a geometry-based refinement method; forcing simplex refinement at the dielectric boundary and (for non-regularized PBE) the charges.
|
|
Unify the chart for different coordinate systems -- a no-op for us.
|
|
Evaluate the bases for the trial or test space, for a particular component of the system, at all quadrature points on the master simplex element.
|
|
Initialize the bases for the trial or the test space, for a particular component of the system, at all quadrature points on the master simplex element.
|
|
Evaluate the Dirichlet boundary condition at the given point.
|
|
Evaluate the "true solution" at the given point for comparison with the numerical solution.
|
|
Get the "fixed charge" contribution to the electrostatic energy. Using the solution at the finest mesh level, get the electrostatic energy due to the interaction of the fixed charges with the potential:
and return the result in units of
|
|
Read in mesh and initialize associated internal structures.
|
|
Transfer color (partition ID) information frmo a partitioned mesh to the atoms. Transfer color information from partitioned mesh to the atoms. In the case that a charge is shared between two partitions, the partition color of the first simplex is selected. Due to the arbitrary nature of this selection, THIS METHOD SHOULD ONLY BE USED IMMEDIATELY AFTER PARTITIONING!!!
|
|
Set the parameter objects.
|
|
Write out data.
|