#include "mypde.h"
Functions | |
VPRIVATE void | initAssemble (PDE *thee, int ip[], double rp[]) |
VPRIVATE void | initElement (PDE *thee, int elementType, int chart, double tvx[][3], void *data) |
VPRIVATE void | initFace (PDE *thee, int face, int chart, double tnvec[]) |
VPRIVATE void | initPoint (PDE *thee, int pointType, int chart, double txq[], double tU[], double tdU[][3], double phi[], double phix[][3]) |
VPRIVATE void | Fu (PDE *thee, int key, double F[]) |
VPRIVATE double | Ju (PDE *thee, int key) |
VPRIVATE double | Fu_v (PDE *thee, int key, double V[], double dV[][3]) |
VPRIVATE double | DFu_wv (PDE *thee, int key, double W[], double dW[][3], double V[], double dV[][3]) |
VPRIVATE double | p_wv (PDE *thee, int key, double W[], double V[]) |
VPRIVATE void | u_D (PDE *thee, int type, int chart, double txq[], double F[]) |
VPRIVATE void | u_T (PDE *thee, int type, int chart, double txq[], double F[]) |
VPRIVATE void | bisectEdge (int dim, int dimII, int edgeType, int chart[], double vx[][3]) |
VPRIVATE int | markSimplex (int dim, int dimII, int simplexType, int faceType[4], int vertexType[4], int chart[], double vx[][3], void *data) |
VPRIVATE void | oneChart (int dim, int dimII, int objType, int chart[], double vx[][3], int dimV) |
VPRIVATE void | mapBoundary (int dim, int dimII, int vertexType, int chart, double vx[3]) |
VPRIVATE void | delta (PDE *thee, int type, int chart, double txq[], void *user, double F[]) |
VPUBLIC PDE * | myPDE_ctor () |
VPUBLIC void | myPDE_dtor (PDE *thee) |
VPUBLIC double | PDE_getTime (PDE *thee) |
VPUBLIC Vusr * | usr_ctor () |
VPUBLIC void | usr_dtor (Vusr *thee) |
VPUBLIC Vmodel * | model_ctor () |
VPUBLIC void | model_dtor (Vmodel *thee) |
Variables | |
VPRIVATE double | flux [3] |
VPRIVATE double | ndotflux |
VPRIVATE double | Diff |
VPRIVATE double | expp |
VPRIVATE double | paramM |
VPRIVATE double | paramA |
VPRIVATE double | tcurv |
VPRIVATE double | U [MAXV] |
VPRIVATE double | dU [MAXV][3] |
VPRIVATE double | Pot |
VPRIVATE double | dPot [3] |
VPRIVATE double | ddU [3] |
VPRIVATE double | nvec [3] |
VPRIVATE double | xq [3] |
VPRIVATE double | curv [3] |
VPRIVATE int | fType |
VPRIVATE int | ekey |
VPRIVATE TT * | myt |
VPRIVATE Vmodel * | model |
Problem type: time-dependent, Diffusion-reaction Spatial dimension: 2 or 3 Product dimension: 1 Differential operator: Linear or nonlinear potential equation with symmetric or nonsymmetric linear part Boundary conditions: zero or nonzero Dirichlet conditions nonzero or zero Neumann/Robin conditions
Note: Equation for component i is defined as
sum(del(A_ij del(u_j))) = B_i in omega -n dot sum(A_ij del(u_j)) = C_i along natural boundaries
_____ \ ____ ____ \ \ /. A_ij \ / u_j = B_i in omega / \/ \/ /____ j
____ \ ____ \ -n . A_ij \ / u_j = C_i along natural boundaries / \/ /___ j
* * SMOL -- Adaptive Smoluchowski Solver * * Yuhui Cheng (ycheng@mccammon.ucsd.edu) * Dept. of Chemistry and Biochemistry * University of California, San Diego * * Additional contributing authors listed in the code documentation. * * Copyright (c) 2006-2007. University of California, San Diego * All Rights Reserved. * Portions Copyright (c) 1995. Michael Holst. * * This file is part of SMOL. * * SMOL is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * SMOL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SMOL; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * * Linking SMOL statically or dynamically with other modules is making a * combined work based on SMOL. Thus, the terms and conditions of the * GNU * General Public License cover the whole combination. * * SPECIAL GPL EXCEPTION * In addition, as a special exception, the copyright holders of SMOL * give you permission to combine the SMOL program with free software * programs and libraries that are released under the GNU LGPL or with * code included in releases of ISIM, Ion Simulator Interface, PMV, * PyMOL * VMD, and Vision. Such combined software may be linked with SMOL * and * redistributed together in original or modified form as mere * aggregation * without requirement that the entire work be under the scope of the * GNU * General Public License. This special exception permission is also * extended * to any software listed in the SPECIAL GPL EXCEPTION clauses by the * FEtk, MC, or MALOC libraries. * * Note that people who make modified versions of SMOL are not obligated * to grant this special exception for their modified versions; it is * their choice whether to do so. The GNU General Public License gives * permission to release a modified version without this exception; this * exception also makes it possible to release a modified version which * carries forward this exception. * *
|
Define the way manifold edges are bisected. |
|
At the single given point x, evaluate a delta function source term (if one is present): delta = g(x). |
|
Evaluate the integrand DF(u)(w,v) of the functional <DF(u)w,v> at the single point x. |
|
Evaluate the strong form of the differential operator F(u) at the single point x. For piecewise-linear basis functions, the Laplacian of the solution is zero. We've also assumed a constant isotropic diffusion coefficient, so we can simply distribute the divergence operator: Interior point residual internal node contribution. Inner non-reactive boundary form case. Neumann face residual: we could have two different face types here if we've implemented "radiative" reaction conditions. Interior face residual: this is the "jump term" across simplices |
|
Evaluate the integrand F(u)(v) of the functional <F(u),v> at the single point x. |
|
< substrate diffusion coefficient < parameter for adding the mass matrix M into the stiffness matrix A. < parameter for the stiffness matrix A. |
|
Do once-per-element initialization. < the pointer for the current simplex. |
|
Do once-per-face initialization. < global face types in the current simplex |
|
Do once-per-point initialization. Load up the PMF and PMF gradient values here Parameter for new diffusion coefficient under the potential. flux in the active boundary. |
|
Evaluate the integrand J_k(u) of the energy functional J(u) at the single point x. This is your nonlinear energy functional for which your weak form PDE below in Fu_v() is the Euler condition. flux evaluated throught the active surface integral. the area of the active surface. substrate amount in the diffusion domain. volume of the diffusion domain. Flux evaluated throught volume integral |
|
User-provided error estimator which allows the user to define his own refinement strategies rather than using the builtin a posteriori error estimators. |
|
construct model class. |
|
destroy model class. |
|
Construct the differential equation object. Create some space for the pde object PDE-specific parameters and function pointers Manifold-specific function pointers apbs stuff return the new pde object |
|
destroy the differential equation object. |
|
Select a single unified chart for a set of two or more vertices whose coordinates may be given with respect to different charts. Then transform all of the coordinates of the vertex set to be with respect to the single selected "unified" chart. |
|
Evaluate the integrand p(w,v) of the functional <p w,v> at the single point x. PRIMAL: interior form case PRIMAL: boundary form case DUAL: interior form case DUAL: boundary form case |
|
At the single given point x, evaluate the dirichlet boundary function: u_D = g(x). |
|
At the single given point x, evaluate the true solution function (if you have one for your problem): u_T = u(x). |
|
construct user defined subroutine. |
|
destroy user defined subroutine. |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |
|
Problem-specific variables for the Smoluchowski equation |