This class provides an interface to the Eleven geometry library by Kyle Chand in CASC. The shapes over which the embedded boundary is cut is defined through an XML database, the name of which is specified in the input file.
More...
template<int DIM>
class SAMRAI::appu::ElevenPatchInterface< DIM >
Use of this class first requires that you link with the Eleven library. Next, you must specify a 'ElevenPatchInterface {...}" input entry in the input for the EmbeddedBoundaryGeometry class. In this input you specify the name of the XML database file that defines the surface geometry.
Once an instance of the class is created, SAMRAI will pass patch information to the "calculateCutCellInfo()" class whenever an embedded boundary is constructed on a new level. The eleven interfaces may be used to compute the volume fractions through an inside/outside determination of the nodes of the cell, and also may be used to compute the distance of a particular node from the surface boundary.
Required input keys and data types:
- database_file
string indicating the name of the XML database file describing the geometry.
Optional input keys:
- geom_tolerance double value indicating the error tolerance for determining geometric information relative to the cartesian grid. For instance, a setting of 0.01 indicates the error tolerance will be 1% of the supplied patch bounding box.
A sample input file entry might look like:
*
* ElevenPatchInterface {
* database_file = "circle_r.3.gzxml"
* geom_tolerance = 0.01 // 1% of bounding box
* }
* - See also
- appu::EmbeddedBoundaryGeometry
-
appu::CutCell
For a SET of nodes on a patch, with patch dimensions (number of nodes in each direction) nx[DIM], origin[DIM], and grid spacing dx[DIM], set the integer inout[nx[0]*nx[1]*nx[2]] array to specify whether nodes are inside or outside.
Node is: INSIDE - set inout[ijk] = 1 OUTSIDE - set inout[ijk] = 0
- Parameters
-
| nx | integer array [DIM] specifying number of points in each dir |
| dx | double array [DIM] specifying spacing of points in each dir |
| origin | double array [DIM] specifying origin of lower corner |
| inout | int array dimensioned the total number of points (i.e. nx[0]*nx[1]*nx[2]). This is an OUTPUT quantity. |