Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

Vpee class

This class provides some functionality for error esimation in parallel. More...


Files

file  vpee.h
 Contains declarations for class Vpee.


Data Structures

struct  sVpee
 Contains public data members for Vpee class/module. More...


Typedefs

typedef sVpee Vpee
 Declaration of the Vpee class as the Vpee structure.


Functions

Vpee * Vpee_ctor (Gem *gm, int localPartID, int killFlag, double killParam)
 Construct the Vpee object.

int Vpee_ctor2 (Vpee *thee, Gem *gm, int localPartID, int killFlag, double killParam)
 FORTRAN stub to construct the Vpee object.

void Vpee_dtor (Vpee **thee)
 Object destructor.

void Vpee_dtor2 (Vpee *thee)
 FORTRAN stub object destructor.

int Vpee_markRefine (Vpee *thee, AM *am, int level, int akey, int rcol, double etol, int bkey)
 Mark simplices for refinement based on attenuated error estimates.

int Vpee_numSS (Vpee *thee)
 Returns the number of simplices in the local partition.


Detailed Description

This class provides some functionality for error esimation in parallel.

This class provides some functionality for error esimation in parallel. The purpose is to modulate the error returned by some external error estimator according to the partitioning of the mesh. For example, the Bank/Holst parallel refinement routine essentially reduces the error outside the ``local" partition to zero. However, this leads to the need for a few final overlapping Schwarz solves to smooth out the errors near partition boundaries. Supposedly, if the region in which we allow error-based refinement includes the ``local" partition and an external buffer zone approximately equal in size to the local region, then the solution will asymptotically approach the solution obtained via more typical methods. This is essentially a more flexible parallel implementation of MC's AM_markRefine.


Function Documentation

Vpee* Vpee_ctor Gem *    gm,
int    localPartID,
int    killFlag,
double    killParam
 

Construct the Vpee object.

Author:
Nathan Baker
Parameters:
gm  Gem (geometry manager) object
localPartID  The ID of the local partition
killFlag  A flag to indicate how error estimates are to be attenuated outside the local partition:
  • 0: no attenuation
  • 1: all error outside the local partition set to zero
  • 2: all error is set to zero outside a sphere of radius (killParam*partRadius), where partRadius is the radius of the sphere circumscribing the local partition
  • 3: all error is set to zero except for the local partition and its immediate neighbors
killParam 
See also:
killFlag for usage
Returns:
Newly constructed Vpee object

int Vpee_ctor2 Vpee   thee,
Gem *    gm,
int    localPartID,
int    killFlag,
double    killParam
 

FORTRAN stub to construct the Vpee object.

Author:
Nathan Baker
Parameters:
thee  Memory location for new object
gm  Gem (geometry manager) object
localPartID  The ID of the local partition
killFlag  A flag to indicate how error estimates are to be attenuated outside the local partition:
  • 0: no attenuation
  • 1: all error outside the local partition set to zero
  • 2: all error is set to zero outside a sphere of radius (killParam*partRadius), where partRadius is the radius of the sphere circumscribing the local partition
  • 3: all error is set to zero except for the local partition and its immediate neighbors
killParam 
See also:
killFlag for usage
Returns:
1 if successful, 0 otherwise

void Vpee_dtor Vpee **    thee
 

Object destructor.

Author:
Nathan Baker
Parameters:
thee  Pointer to memory location of object to be destroyed

void Vpee_dtor2 Vpee   thee
 

FORTRAN stub object destructor.

Author:
Nathan Baker
Parameters:
thee  Pointer to object to be destroyed

int Vpee_markRefine Vpee   thee,
AM *    am,
int    level,
int    akey,
int    rcol,
double    etol,
int    bkey
 

Mark simplices for refinement based on attenuated error estimates.

A wrapper/reimplementation of AM_markRefine that allows for more flexible attenuation of error-based markings outside the local partition. The error in each simplex is modified by the method (see killFlag) specified in the Vpee constructor. This allows the user to confine refinement to an arbitrary area around the local partition.

Author:
Nathan Baker and Mike Holst
Note:
This routine borrows very heavily from FEtk routines by Mike Holst.
Parameters:
thee  The Vpee object
am  The AM (algebra manager) object currently in use for solving the PBE
level  Current level of multigrid hierarchy
akey  The marking method:
  • -1: Reset markings --> killFlag has no effect.
  • 0: Uniform.
  • 1: User defined (geometry-based).
  • >1: A numerical estimate for the error has already been set in am and should be attenuated according to killFlag and used, in conjunction with etol, to mark simplices for refinement.
rcol  The ID of the main partition on which to mark (or -1 if all partitions should be marked). Note that we should have (rcol == thee->localPartID) for (thee->killFlag == 2 or 3)
etol  The error tolerance criterion for marking
bkey  How the error tolerance is interpreted:
  • 0: Simplex marked if error > .
  • 1: Simplex marked if error >. where is the error tolerance and is the number of simplices
Returns:
The number of simplices marked for refinement.

int Vpee_numSS Vpee   thee
 

Returns the number of simplices in the local partition.

Author:
Nathan Baker
Parameters:
thee  Vpee object
Returns:
Number of simplices in the local partition


Generated on Tue Feb 17 09:27:34 2004 for APBS by doxygen1.2.18