APBS
1.5
|
Class Vfetk methods. More...
#include "vfetk.h"
Go to the source code of this file.
Macros | |
#define | VRINGMAX 1000 |
Maximum number of simplices in a simplex ring. | |
#define | VATOMMAX 1000000 |
Maximum number of atoms associated with a vertex. | |
Functions | |
VPRIVATE void | polyEval (int numP, double p[], double c[][VMAXP], double xv[]) |
VPUBLIC Gem * | Vfetk_getGem (Vfetk *thee) |
Get a pointer to the Gem (grid manager) object. More... | |
VPUBLIC AM * | Vfetk_getAM (Vfetk *thee) |
Get a pointer to the AM (algebra manager) object. More... | |
VPUBLIC Vpbe * | Vfetk_getVpbe (Vfetk *thee) |
Get a pointer to the Vpbe (PBE manager) object. More... | |
VPUBLIC Vcsm * | Vfetk_getVcsm (Vfetk *thee) |
Get a pointer to the Vcsm (charge-simplex map) object. More... | |
VPUBLIC int | Vfetk_getAtomColor (Vfetk *thee, int iatom) |
Get the partition information for a particular atom. More... | |
VPUBLIC Vfetk * | Vfetk_ctor (Vpbe *pbe, Vhal_PBEType type) |
Constructor for Vfetk object. More... | |
VPUBLIC int | Vfetk_ctor2 (Vfetk *thee, Vpbe *pbe, Vhal_PBEType type) |
FORTRAN stub constructor for Vfetk object. More... | |
VPUBLIC void | Vfetk_setParameters (Vfetk *thee, PBEparm *pbeparm, FEMparm *feparm) |
Set the parameter objects. More... | |
VPUBLIC void | Vfetk_dtor (Vfetk **thee) |
Object destructor. More... | |
VPUBLIC void | Vfetk_dtor2 (Vfetk *thee) |
FORTRAN stub object destructor. More... | |
VPUBLIC double * | Vfetk_getSolution (Vfetk *thee, int *length) |
Create an array containing the solution (electrostatic potential in units of ![]() | |
VPUBLIC double | Vfetk_energy (Vfetk *thee, int color, int nonlin) |
Return the total electrostatic energy. More... | |
VPUBLIC double | Vfetk_qfEnergy (Vfetk *thee, int color) |
Get the "fixed charge" contribution to the electrostatic energy. More... | |
VPUBLIC double | Vfetk_dqmEnergy (Vfetk *thee, int color) |
Get the "mobile charge" and "polarization" contributions to the electrostatic energy. More... | |
VPUBLIC void | Vfetk_setAtomColors (Vfetk *thee) |
Transfer color (partition ID) information frmo a partitioned mesh to the atoms. More... | |
VPUBLIC unsigned long int | Vfetk_memChk (Vfetk *thee) |
Return the memory used by this structure (and its contents) in bytes. More... | |
VPUBLIC Vrc_Codes | Vfetk_genCube (Vfetk *thee, double center[3], double length[3], Vfetk_MeshLoad meshType) |
Construct a rectangular mesh (in the current Vfetk object) More... | |
VPUBLIC Vrc_Codes | Vfetk_loadMesh (Vfetk *thee, double center[3], double length[3], Vfetk_MeshLoad meshType, Vio *sock) |
Loads a mesh into the Vfetk (and associated) object(s). More... | |
VPUBLIC void | Bmat_printHB (Bmat *thee, char *fname) |
Writes a Bmat to disk in Harwell-Boeing sparse matrix format. More... | |
VPUBLIC PDE * | Vfetk_PDE_ctor (Vfetk *fetk) |
Constructs the FEtk PDE object. More... | |
VPUBLIC int | Vfetk_PDE_ctor2 (PDE *thee, Vfetk *fetk) |
Intializes the FEtk PDE object. More... | |
VPUBLIC void | Vfetk_PDE_dtor (PDE **thee) |
Destroys FEtk PDE object. More... | |
VPUBLIC void | Vfetk_PDE_dtor2 (PDE *thee) |
FORTRAN stub: destroys FEtk PDE object. More... | |
VPUBLIC void | Vfetk_PDE_initAssemble (PDE *thee, int ip[], double rp[]) |
Do once-per-assembly initialization. More... | |
VPUBLIC void | Vfetk_PDE_initElement (PDE *thee, int elementType, int chart, double tvx[][3], void *data) |
VPUBLIC void | Vfetk_PDE_initFace (PDE *thee, int faceType, int chart, double tnvec[]) |
Do once-per-face initialization. More... | |
VPUBLIC void | Vfetk_PDE_initPoint (PDE *thee, int pointType, int chart, double txq[], double tU[], double tdU[][3]) |
VPUBLIC void | Vfetk_PDE_Fu (PDE *thee, int key, double F[]) |
Evaluate strong form of PBE. For interior points, this is:
where
where | |
VPUBLIC 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:
where | |
VPUBLIC double | Vfetk_PDE_DFu_wv (PDE *thee, int key, double W[], double dW[][VAPBS_DIM], double V[], double dV[][3]) |
VPUBLIC 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. More... | |
VPUBLIC void | Vfetk_PDE_u_D (PDE *thee, int type, int chart, double txq[], double F[]) |
Evaluate the Dirichlet boundary condition at the given point. More... | |
VPUBLIC 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. More... | |
VPUBLIC void | Vfetk_PDE_bisectEdge (int dim, int dimII, int edgeType, int chart[], double vx[][3]) |
VPUBLIC void | Vfetk_PDE_mapBoundary (int dim, int dimII, int vertexType, int chart, double vx[3]) |
VPUBLIC int | Vfetk_PDE_markSimplex (int dim, int dimII, int simplexType, int faceType[VAPBS_NVS], int vertexType[VAPBS_NVS], int chart[], double vx[][3], void *simplex) |
VPUBLIC void | Vfetk_PDE_oneChart (int dim, int dimII, int objType, int chart[], double vx[][3], int dimV) |
VPUBLIC 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 | |
VPUBLIC 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) More... | |
VPUBLIC 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. More... | |
VPUBLIC 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. More... | |
VPUBLIC void | Vfetk_dumpLocalVar () |
Debugging routine to print out local variables used by PDE object. More... | |
VPUBLIC int | Vfetk_fillArray (Vfetk *thee, Bvec *vec, Vdata_Type type) |
Fill an array with the specified data. More... | |
VPUBLIC 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. More... | |
Variables | |
VPRIVATE Vfetk_LocalVar | var |
VPRIVATE char * | diriCubeString |
VPRIVATE char * | neumCubeString |
VPRIVATE int | dim_2DP1 = 3 |
VPRIVATE int | lgr_2DP1 [3][VMAXP] |
VPRIVATE int | lgr_2DP1x [3][VMAXP] |
VPRIVATE int | lgr_2DP1y [3][VMAXP] |
VPRIVATE int | lgr_2DP1z [3][VMAXP] |
VPRIVATE int | dim_3DP1 = VAPBS_NVS |
VPRIVATE int | lgr_3DP1 [VAPBS_NVS][VMAXP] |
VPRIVATE int | lgr_3DP1x [VAPBS_NVS][VMAXP] |
VPRIVATE int | lgr_3DP1y [VAPBS_NVS][VMAXP] |
VPRIVATE int | lgr_3DP1z [VAPBS_NVS][VMAXP] |
VPRIVATE const int | P_DEG =1 |
VPRIVATE int | numP |
VPRIVATE double | c [VMAXP][VMAXP] |
VPRIVATE double | cx [VMAXP][VMAXP] |
VPRIVATE double | cy [VMAXP][VMAXP] |
VPRIVATE double | cz [VMAXP][VMAXP] |
Class Vfetk methods.
* * APBS -- Adaptive Poisson-Boltzmann Solver * * Nathan A. Baker (nathan.baker@pnnl.gov) * Pacific Northwest National Laboratory * * Additional contributing authors listed in the code documentation. * * Copyright (c) 2010-2014 Battelle Memorial Institute. Developed at the * Pacific Northwest National Laboratory, operated by Battelle Memorial * Institute, Pacific Northwest Division for the U.S. Department of Energy. * * Portions Copyright (c) 2002-2010, Washington University in St. Louis. * Portions Copyright (c) 2002-2010, Nathan A. Baker. * Portions Copyright (c) 1999-2002, The Regents of the University of * California. * Portions Copyright (c) 1995, Michael Holst. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of the developer nor the names of its contributors may be * used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * *
Definition in file vfetk.c.
VPRIVATE int lgr_2DP1[3][VMAXP] |
VPRIVATE int lgr_2DP1x[3][VMAXP] |
VPRIVATE int lgr_2DP1y[3][VMAXP] |
VPRIVATE int lgr_2DP1z[3][VMAXP] |
VPRIVATE int lgr_3DP1[VAPBS_NVS][VMAXP] |
VPRIVATE int lgr_3DP1x[VAPBS_NVS][VMAXP] |
VPRIVATE int lgr_3DP1y[VAPBS_NVS][VMAXP] |
VPRIVATE int lgr_3DP1z[VAPBS_NVS][VMAXP] |