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

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

Files

file  vpee.c
 Class Vpee methods.
 
file  vpee.h
 Contains declarations for class Vpee.
 

Data Structures

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

Typedefs

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

Functions

VEXTERNC VpeeVpee_ctor (Gem *gm, int localPartID, int killFlag, double killParam)
 Construct the Vpee object.
 
VEXTERNC int Vpee_ctor2 (Vpee *thee, Gem *gm, int localPartID, int killFlag, double killParam)
 FORTRAN stub to construct the Vpee object.
 
VEXTERNC void Vpee_dtor (Vpee **thee)
 Object destructor.
 
VEXTERNC void Vpee_dtor2 (Vpee *thee)
 FORTRAN stub object destructor.
 
VEXTERNC 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.
 
VEXTERNC 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</tt>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.

Typedef Documentation

◆ Vpee

typedef struct sVpee Vpee

Declaration of the Vpee class as the Vpee structure.

Definition at line 112 of file vpee.h.

Function Documentation

◆ Vpee_ctor()

VEXTERNC Vpee * Vpee_ctor ( Gem * gm,
int localPartID,
int killFlag,
double killParam )

Construct the Vpee object.

Author
Nathan Baker
Returns
Newly constructed Vpee object
Parameters
gmFEtk geometry manager object
localPartIDID of the local partition (focus of refinement)
killFlagA 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

Definition at line 93 of file vpee.c.

◆ Vpee_ctor2()

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

FORTRAN stub to construct the Vpee object.

Author
Nathan Baker
Returns
1 if successful, 0 otherwise
Parameters
theeThe Vpee object
gmFEtk geometry manager object
localPartIDID of the local partition (focus of refinement)
killFlagA 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

Definition at line 114 of file vpee.c.

◆ Vpee_dtor()

VEXTERNC void Vpee_dtor ( Vpee ** thee)

Object destructor.

Author
Nathan Baker
Parameters
theePointer to memory location of the Vpee object

Definition at line 225 of file vpee.c.

◆ Vpee_dtor2()

VEXTERNC void Vpee_dtor2 ( Vpee * thee)

FORTRAN stub object destructor.

Author
Nathan Baker
Parameters
theePointer to object to be destroyed

Definition at line 240 of file vpee.c.

◆ Vpee_markRefine()

VEXTERNC 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.
Returns
The number of simplices marked for refinement.
Bug
This function is no longer up-to-date with FEtk and may not function properly
Parameters
theeThe Vpee object
amThe FEtk algebra manager currently used to solve the PB
levelThe current level of the multigrid hierarchy
akeyThe 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.
rcolThe ID of the main parition on which to mark (or -1 if all partitions should be marked). NOte that we shouldhave (rcol == thee->localPartID) for (thee->killFlag == 2 or 3)
etolThe error tolerance criterion for marking
bkeyHow the error tolerance is interpreted:
  • 0: Simplex marked if error > etol.
  • 1: Simplex marked if error > sqrt(etol^2/L) where L$ is the number of simplices

Definition at line 250 of file vpee.c.

◆ Vpee_numSS()

VEXTERNC int Vpee_numSS ( Vpee * thee)

Returns the number of simplices in the local partition.

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

Definition at line 479 of file vpee.c.