Vcsm class

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

Data Structures

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

Files

file  vcsm.h
 

Contains declarations for the Vcsm class.


file  vcsm.c
 

Class Vcsm methods.


Typedefs

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

Functions

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


Function Documentation

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

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

Author:
Nathan Baker
Parameters:
externalUpdate The FEtk geometry managery Function pointer for call during mesh refinement

Referenced by Vfetk_ctor2().

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:
gm List of atoms FEtk geometry manager defining the mesh

References Vcsm_ctor2().

Referenced by Vfetk_loadMesh().

Here is the call graph for this function:

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:
alist The Vcsm object
gm The list of atoms The FEtk geometry manager defining the mesh

References sVcsm::alist, sVcsm::gm, sVcsm::initFlag, and sVcsm::vmem.

Referenced by Vcsm_ctor().

void Vcsm_dtor ( Vcsm **  thee  ) 

Destroy Vcsm object.

Author:
Nathan Baker
Parameters:
thee Pointer to memory location for Vcsm object

References Vcsm_dtor2().

Referenced by Vfetk_dtor2().

Here is the call graph for this function:

void Vcsm_dtor2 ( Vcsm thee  ) 

FORTRAN stub to destroy Vcsm object.

Author:
Nathan Baker
Parameters:
thee Pointer to Vcsm object

References sVcsm::initFlag, sVcsm::msimp, sVcsm::natom, sVcsm::nqsm, sVcsm::nsqm, sVcsm::qsm, sVcsm::sqm, and sVcsm::vmem.

Referenced by Vcsm_dtor().

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:
iatom The Vcsm object
isimp Index of atom in Vcsm list ofr this simplex Simplex ID

References sVcsm::alist, sVcsm::initFlag, sVcsm::nsqm, sVcsm::sqm, and Valist_getAtom().

Referenced by Vfetk_PDE_delta().

Here is the call graph for this function:

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:
iatom The Vcsm object
isimp Index of atom in Vcsm list for this simplex Simplex ID

References sVcsm::initFlag, sVcsm::nsqm, and sVcsm::sqm.

Referenced by Vfetk_PDE_delta().

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:
isimp The Vcsm object Simplex ID

References sVcsm::initFlag, and sVcsm::nsqm.

Referenced by Vfetk_PDE_delta().

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:
iatom The Vcsm object The Valist atom index

References sVcsm::initFlag, and sVcsm::nqsm.

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:
isimp The Vcsm object
iatom Index of simplex in Vcsm list Valist atom index

References sVcsm::gm, sVcsm::initFlag, and sVcsm::qsm.

Referenced by Vfetk_setAtomColors().

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:
isimp THe Vcsm object
iatom Index of simplex in Vcsm list Index of atom in Valist

References sVcsm::initFlag, and sVcsm::qsm.

Valist* Vcsm_getValist ( Vcsm thee  ) 

Get atom list.

Author:
Nathan Baker
Returns:
Pointer to Valist atom list
Parameters:
thee The Vcsm object

References sVcsm::alist.

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:
thee The Vcsm object

References sVcsm::alist, sVcsm::gm, sVcsm::initFlag, sVcsm::msimp, sVcsm::natom, sVcsm::nqsm, sVcsm::nsimp, sVcsm::nsqm, sVcsm::qsm, sVcsm::sqm, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), and sVcsm::vmem.

Referenced by Vfetk_loadMesh().

Here is the call graph for this function:

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:
thee The Vcsm object

References sVcsm::vmem.

Referenced by Vfetk_memChk().

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:
simps The Vcsm object
num List 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. Number of simplices in simps list

References sVcsm::alist, sVcsm::gm, sVcsm::initFlag, sVcsm::msimp, sVcsm::nqsm, sVcsm::nsimp, sVcsm::nsqm, sVcsm::qsm, sVcsm::sqm, Valist_getAtom(), Vatom_getPosition(), and sVcsm::vmem.

Referenced by Vfetk_externalUpdateFunction().

Here is the call graph for this function:


Generated by  doxygen 1.6.2