Diffpack Documentation
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Search
PreproBox Class Reference
FE preprocessor for domains with box shape.
More...
#include <PreproBox.h>
Inheritance diagram for PreproBox::
List of all members.
Detailed Description
FE preprocessor for domains with box shape.
NAME: PreproBox - FE preprocessor for domains with box shape
DESCRIPTION:
The class implements a preprocessor algorithm that divides domains with box (hypercude) shape in `$`d`$` dimensions into finite elements. The number of space dimensions `$`d`$` can be arbitrary. in 1D, 2D and 3D these elements are available: "ElmB2n1D", "ElmB3n1D", "ElmB4n2D", ElmB9n2D", ElmB8n3D, "ElmB27n3D", ElmT3n2D", "ElmT6n2D", "ElmTensorProd1" and "ElmTensorProd2". In higher dimensions, only the two latter types are available. Notice that many grid generation techniques first consists in generating a mesh on a box shaped domain and then transform this domain by various techniques, for example, transfinite mapping (class "TransfMap").
The preprocessor works the standard way, that is, one first initializes the geometry and partition (using "GeometryBox scan" and "PartitionBox scan") and then call the "generateMesh" function of the preprocessor class. We refer to the document ""Finite Element Preprocessors in Diffpack"" for examples and general documentation on the design philosophy and implementation of preprocessor classes in Diffpack.
Constructor & Destructor Documentation
|
|
The most commonly used constructor takes to arguments. Further initialization consists of initializing the geometry and partition part of the preprocessor. The other constructor takes the geometry and partition parts as arguments. It is assumed that these parts are initialized at construction time of the preprocessor (of course, if the geometry and partition objects are empty, one can initialize them by typically calling "PreproBox partitionBox->scan(...)"). |
|
|
See documentation of one of the overloaded constructor. |
|
PreproBox::~PreproBox (
|
) [inline]
|
|
Member Function Documentation
|
void PreproBox::box2prism (
|
GridFE & grid ) [static]
|
|
|
static void PreproBox::box2triangle (
|
GridFE & grid,
|
|
bool six_Telms_in_box = true ) [static]
|
|
|
|
given a finite element mesh with box shaped elements, this function divides each element (in 2D) into two triangular elements of type "ElmT3n2D" (if the original element was "ElmB4n2D" or "ElmTensorProd1") or "ElmT6n2D" (if the original element was "ElmB9n2D" or "ElmTensorProd2"). Note that the function is static so that it can be called for any mesh that consists of bilinear or biquadratic elements. In deformed grids, the algorithm will divide each box element into two triangular elements by ""drawing"" the shortest diagonal (which optimizes the shape of the triangular elements). If the original element type was "ElmB8n3D" the elements are divided into six "ElmT4n3D" elements, unless the "bool" parameter to "box2triangle" is set to false; then the elements are divided into five "ElmT4n3D" elements. |
|
void PreproBox::define (
|
MenuSystem & menu,
|
|
int level = MAIN ) [inline, virtual]
|
|
|
|
see "defineStatic"
Reimplemented from Prepro. |
|
static void PreproBox::defineStatic (
|
MenuSystem & menu,
|
|
int level = MAIN ) [static]
|
|
|
|
define the menu items (input data: geometry and partition data). |
|
void PreproBox::generateMesh (
|
Grid & grid ) [virtual]
|
|
|
|
generate the finite element mesh.
Reimplemented from Prepro. |
|
Geometry & PreproBox::geometry (
|
) [inline, virtual]
|
|
|
const Geometry & PreproBox::geometry (
|
) const [inline, virtual]
|
|
|
|
See documentation of one of the overloaded functions. |
|
const GeometryBox & PreproBox::geometryBox (
|
) const [inline]
|
|
|
|
gives access to the geometry information. |
|
static real PreproBox::meshGrading1D (
|
real xco,
|
|
real xl,
|
|
real xr,
|
|
real refinement ) [static]
|
|
|
|
a mapping that is used to stretch or shrink the distribution of points in an interval. See the report `{\em` Finite Element Preprocessors in Diffpack `}` for more information on 'grading' and the details of this mapping. |
|
bool PreproBox::ok (
|
) const [virtual]
|
|
|
Partition & PreproBox::partition (
|
) [inline, virtual]
|
|
|
const Partition & PreproBox::partition (
|
) const [inline, virtual]
|
|
|
|
See documentation of one of the overloaded functions. |
|
const PartitionBox & PreproBox::partitionBox (
|
) const [inline]
|
|
|
|
gives access to the partition information. |
|
void PreproBox::scan (
|
MenuSystem & menu ) [virtual]
|
|
|
|
reads menu answers for partition and geometry.
Reimplemented from Prepro. |
The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.