APBS 3.0.0
Loading...
Searching...
No Matches
Vcsm class

A charge-simplex map for evaluating integrals of delta functions in a finite element setting. More...

Files

file  vcsm.c
 Class Vcsm methods.
 
file  vcsm.h
 Contains declarations for the Vcsm class.
 

Data Structures

struct  sVcsm
 Charge-simplex map class. More...
 

Typedefs

typedef struct sVcsm Vcsm
 Declaration of the Vcsm class as the Vcsm structure.
 

Functions

VEXTERNC void Gem_setExternalUpdateFunction (Gem *thee, void(*externalUpdate)(SS **simps, int num))
 External function for FEtk Gem class to use during mesh refinement.
 
VEXTERNC ValistVcsm_getValist (Vcsm *thee)
 Get atom list.
 
VEXTERNC int Vcsm_getNumberAtoms (Vcsm *thee, int isimp)
 Get number of atoms associated with a simplex.
 
VEXTERNC VatomVcsm_getAtom (Vcsm *thee, int iatom, int isimp)
 Get particular atom associated with a simplex.
 
VEXTERNC int Vcsm_getAtomIndex (Vcsm *thee, int iatom, int isimp)
 Get ID of particular atom in a simplex.
 
VEXTERNC int Vcsm_getNumberSimplices (Vcsm *thee, int iatom)
 Get number of simplices associated with an atom.
 
VEXTERNC SS * Vcsm_getSimplex (Vcsm *thee, int isimp, int iatom)
 Get particular simplex associated with an atom.
 
VEXTERNC int Vcsm_getSimplexIndex (Vcsm *thee, int isimp, int iatom)
 Get index particular simplex associated with an atom.
 
VEXTERNC unsigned long int Vcsm_memChk (Vcsm *thee)
 Return the memory used by this structure (and its contents) in bytes.
 
VEXTERNC VcsmVcsm_ctor (Valist *alist, Gem *gm)
 Construct Vcsm object.
 
VEXTERNC int Vcsm_ctor2 (Vcsm *thee, Valist *alist, Gem *gm)
 FORTRAN stub to construct Vcsm object.
 
VEXTERNC void Vcsm_dtor (Vcsm **thee)
 Destroy Vcsm object.
 
VEXTERNC void Vcsm_dtor2 (Vcsm *thee)
 FORTRAN stub to destroy Vcsm object.
 
VEXTERNC void Vcsm_init (Vcsm *thee)
 Initialize charge-simplex map with mesh and atom data.
 
VEXTERNC int Vcsm_update (Vcsm *thee, SS **simps, int num)
 Update the charge-simplex and simplex-charge maps after refinement.
 

Detailed Description

A charge-simplex map for evaluating integrals of delta functions in a finite element setting.

Typedef Documentation

◆ Vcsm

typedef struct sVcsm Vcsm

Declaration of the Vcsm class as the Vcsm structure.

Definition at line 122 of file vcsm.h.

Function Documentation

◆ Gem_setExternalUpdateFunction()

VEXTERNC void Gem_setExternalUpdateFunction ( Gem * thee,
void(* externalUpdate )(SS **simps, int num) )

External function for FEtk Gem class to use during mesh refinement.

Author
Nathan Baker
Parameters
theeThe FEtk geometry manager
externalUpdateFunction pointer for call during mesh refinement

◆ Vcsm_ctor()

VEXTERNC Vcsm * Vcsm_ctor ( Valist * alist,
Gem * gm )

Construct Vcsm object.

Author
Nathan Baker
Note
  • The initial mesh must be sufficiently coarse for the assignment procedures to be efficient
  • The map is not built until Vcsm_init is called
Returns
Pointer to newly allocated Vcsm object
Parameters
alistList of atoms
gmFEtk geometry manager defining the mesh

Definition at line 136 of file vcsm.c.

◆ Vcsm_ctor2()

VEXTERNC int Vcsm_ctor2 ( Vcsm * thee,
Valist * alist,
Gem * gm )

FORTRAN stub to construct Vcsm object.

Author
Nathan Baker
Note
  • The initial mesh must be sufficiently coarse for the assignment procedures to be efficient
  • The map is not built until Vcsm_init is called
Returns
1 if successful, 0 otherwise
Parameters
theeThe Vcsm object
alistThe list of atoms
gmThe FEtk geometry manager defining the mesh

Definition at line 147 of file vcsm.c.

◆ Vcsm_dtor()

VEXTERNC void Vcsm_dtor ( Vcsm ** thee)

Destroy Vcsm object.

Author
Nathan Baker
Parameters
theePointer to memory location for Vcsm object

Definition at line 292 of file vcsm.c.

◆ Vcsm_dtor2()

VEXTERNC void Vcsm_dtor2 ( Vcsm * thee)

FORTRAN stub to destroy Vcsm object.

Author
Nathan Baker
Parameters
theePointer to Vcsm object

Definition at line 300 of file vcsm.c.

◆ Vcsm_getAtom()

VEXTERNC Vatom * Vcsm_getAtom ( Vcsm * thee,
int iatom,
int isimp )

Get particular atom associated with a simplex.

Author
Nathan Baker
Returns
Array of atoms associated with a simplex
Parameters
theeThe Vcsm object
iatomIndex of atom in Vcsm list ofr this simplex
isimpSimplex ID

Definition at line 77 of file vcsm.c.

◆ Vcsm_getAtomIndex()

VEXTERNC int Vcsm_getAtomIndex ( Vcsm * thee,
int iatom,
int isimp )

Get ID of particular atom in a simplex.

Author
Nathan Baker
Returns
Index of atom in Valist object
Parameters
theeThe Vcsm object
iatomIndex of atom in Vcsm list for this simplex
isimpSimplex ID

Definition at line 88 of file vcsm.c.

◆ Vcsm_getNumberAtoms()

VEXTERNC int Vcsm_getNumberAtoms ( Vcsm * thee,
int isimp )

Get number of atoms associated with a simplex.

Author
Nathan Baker
Returns
Number of atoms associated with a simplex
Parameters
theeThe Vcsm object
isimpSimplex ID

Definition at line 69 of file vcsm.c.

◆ Vcsm_getNumberSimplices()

VEXTERNC int Vcsm_getNumberSimplices ( Vcsm * thee,
int iatom )

Get number of simplices associated with an atom.

Author
Nathan Baker
Returns
Number of simplices associated with an atom
Parameters
theeThe Vcsm object
iatomThe Valist atom index

Definition at line 99 of file vcsm.c.

◆ Vcsm_getSimplex()

VEXTERNC SS * Vcsm_getSimplex ( Vcsm * thee,
int isimp,
int iatom )

Get particular simplex associated with an atom.

Author
Nathan Baker
Returns
Pointer to simplex object
Parameters
theeThe Vcsm object
isimpIndex of simplex in Vcsm list
iatomValist atom index

Definition at line 109 of file vcsm.c.

◆ Vcsm_getSimplexIndex()

VEXTERNC int Vcsm_getSimplexIndex ( Vcsm * thee,
int isimp,
int iatom )

Get index particular simplex associated with an atom.

Author
Nathan Baker
Returns
Gem index of specified simplex
Parameters
theeThe Vcsm object
isimpIndex of simplex in Vcsm list
iatomIndex of atom in Valist

Definition at line 119 of file vcsm.c.

◆ Vcsm_getValist()

VEXTERNC Valist * Vcsm_getValist ( Vcsm * thee)

Get atom list.

Author
Nathan Baker
Returns
Pointer to Valist atom list
Parameters
theeThe Vcsm object

Definition at line 62 of file vcsm.c.

◆ Vcsm_init()

VEXTERNC void Vcsm_init ( Vcsm * thee)

Initialize charge-simplex map with mesh and atom data.

Author
Nathan Baker
Note
The initial mesh must be sufficiently coarse for the assignment procedures to be efficient
Parameters
theeThe Vcsm object

Definition at line 170 of file vcsm.c.

◆ Vcsm_memChk()

VEXTERNC unsigned long int Vcsm_memChk ( Vcsm * thee)

Return the memory used by this structure (and its contents) in bytes.

Author
Nathan Baker
Returns
The memory used by this structure and its contents in bytes
Parameters
theeThe Vcsm object

Definition at line 129 of file vcsm.c.

◆ Vcsm_update()

VEXTERNC int Vcsm_update ( Vcsm * thee,
SS ** simps,
int num )

Update the charge-simplex and simplex-charge maps after refinement.

Author
Nathan Baker
Returns
1 if successful, 0 otherwise
Parameters
theeThe Vcsm object
simpsList of pointer to newly created (by refinement) simplex objects. The first simplex is expected to be derived from the parent simplex and therefore have the same ID. The remaining simplices are the children and should represent new entries in the charge-simplex map.
numNumber of simplices in simps list

Definition at line 326 of file vcsm.c.