contains the boundary description, the virtual cell tree and macro grid More...
#include <Domain.h>
Public Member Functions | |
TDomain (char *ParamFile) | |
int | ReadGeo (char *GeoFile) |
read geometry file | |
int | GmshGen (char *GeoFile) |
read Gmsh mesh More... | |
int | ReadSandwichGeo (char *GeoFile) |
read sandwich geometry | |
void | MakeBdParamsConsistent (TCollection *coll) |
make boundary parameter consistent More... | |
int | CloseGrid (int level) |
int | TetrameshGen (char *GeoFile) |
read TetGen mesh | |
void | CorrectParametersAndShapes () |
set boundary parameters and cell shape according to possibly moving vertices More... | |
void | TriMeshGen (struct triangulateio *In) |
mesh genration using Triangle for give IN | |
int | ReadParam (char *ParamFile) |
read parameter file More... | |
int | ReadBdParam (char *ParamFile, int &Flag) |
read boundary parameterization | |
int | ReadMapFile (char *MapFile, TDatabase *database) |
read mapping and mortar information | |
int | GetBdPartID (int BdCompID) |
get boundary part of BdCompID | |
int | GetLocalBdCompID (int BdCompID) |
get local number of boundary component | |
int | GetLastLocalComp (int BdPartID) |
get local number of last boundary component on part BdPartID | |
void | SetStartBdCompID (int BdCompID, int i) |
set start BdCompID on boundary part i | |
TBoundPart * | GetBdPart (int i) |
get i-th boundary part | |
void | GetTreeInfo (TBaseCell **&celltree, int &N_rootcells) |
get tree of cells | |
void | SetTreeInfo (TBaseCell **celltree, int N_rootcells) |
set tree of cells | |
int | SetSubGridIDs (IntFunct2D *TestFunc) |
set subgrid ID's on all MacroCells and generate mortar structurs | |
int | GenMortarStructs () |
generate mortar structurs | |
int | GetN_MortarFace () |
return number of mortar face structs | |
TMortarFace * | GetMortarFace (int i) |
return mortar face struct | |
TCollection * | GetMortarColl (Iterators it, int level) |
get a collection of all mortar cells | |
int | InitMortarJoints (Iterators it, int level, TCollection *coll) |
initialize all mortar joints with FE-information | |
int | GenInitGrid () |
generate initial grid using external mesh generator | |
int | MakeGrid (double *DCORVG, int *KVERT, int *KNPR, int N_Vertices, int NVE) |
make initial 2D grid | |
int | MakeGrid (double *DCORVG, int *KVERT, int *KNPR, int *ELEMSREF, int N_Vertices, int NVE) |
make initial 2D grid, extended version which sets ReferenceID in cells | |
int | MakeGrid (double *DCORVG, int *KVERT, int *KNPR, int *ELEMSREF, int N_Vertices, int NVE, int *BoundFaces, int *FaceParam, int NBF, int NVpF, int *Interfaceparam, int N_Interfaces) |
make initial 3D grid | |
int | MakeSandwichGrid (double *DCORVG, int *KVERT, int *KNPR, int N_Vertices, int NVE, double DriftX, double DriftY, double DriftZ, int N_Layers, double *Lambda) |
make initial sandwich grid | |
void | Init (char *PRM, char *GEO) |
Init process for current domain. More... | |
int | Draw (char *name, Iterators iterator, int arg) |
write domain boundary into a postscript file | |
int | PS (const char *name, Iterators iterator, int arg) |
write mesh into a postscript file | |
int | PS (const char *name, TCollection *Coll) |
write collection into a postscript file | |
int | MD_raw (const char *name, Iterators iterator, int arg) |
write files for MD-Out format | |
int | Refine () |
refine the grid according the cell refinement descriptors | |
int | RegRefineAll () |
refine all cells regular | |
int | RegRefineSub (int ID) |
refine all cells in subgrid ID regular | |
int | RefineallxDirection () |
refine only in one direction | |
int | Gen1RegGrid () |
generate a 1-regular grid | |
int | RefineByIndicator (DoubleFunct2D *Indicator) |
refine the finest grid according the given indicator function | |
int | MakeConfClosure () |
refine the finest grid if necessary in order to get a grid with conforming closures More... | |
int | RefineByErrorEstimator (TCollection *Collection, double *eta_K, double eta_max, double tolerance, bool ConfClosure) |
refine the finest grid according a given error estimate | |
void | Refine1Reg (int MinLevel, int MaxLevel) |
refine/derefine algorithm for a 1-regular grid, geolevel of all cells on the finest grid is between MinLevel and MaxLevel | |
void | DeRefine () |
derefinemnt | |
int | ConvertQuadToTri (int type) |
convert all finest quadrangles into two triangles | |
TCollection * | GetCollection (Iterators it, int level) |
produce a collection with all cells returned by iterator it | |
TCollection * | GetCollection (TCollection *coll, int reference) |
produce a collection with all cells of a given Collection which have the given reference as ReferenceID More... | |
TCollection * | GetOwnCollection (Iterators it, int level, int ID) |
produce a own collection with all cells returned by iterator it | |
void | GetSortedCollection (TCollection *&Coll, int *&Indices) |
produce a collection with all cells in the finest grid, sort they according to their geometry level and return in Indices the indices where each level starts | |
void | GetBoundBox (double &startx, double &starty, double &boundx, double &boundy) |
get bounding box parameters | |
void | GetBoundBox (double &startx, double &starty, double &startz, double &boundx, double &boundy, double &boundz) |
get bounding box parameters | |
void | SetBoundBox (double startx, double starty, double startz, double boundx, double boundy, double boundz) |
void | TestGrid1 () |
void | TestGrid2 () |
void | TestGrid3 () |
void | TestMortar () |
void | TestShishkin () |
void | TriangleShishkin () |
void | UnitSquare () |
void | UnitSquareRef () |
void | TwoTriangles () |
void | TwoTrianglesRef () |
void | SquareInSquare () |
void | SquareInSquareRef () |
void | SetBoundBox (double boundx, double boundy) |
void | SetBoundBoxstart (double startx, double starty) |
void | RefOnMortarEdge () |
void | RefCardioide (double A) |
void | PeriodicSquares () |
void | PeriodicSquaresLarge () |
void | PeriodicRectangle_2_4 () |
void | PeriodicTrianglesLarge () |
void | QuadShishkin (double tau1, double tau2) |
void | Rectangular (int dimx, int dimy) |
void | TestTriaConf () |
void | TestTriaConf2 () |
void | CheckCells () |
void | TestGrid3D () |
void | SetBoundBox (double boundx, double boundy, double boundz) |
int | Grape (const char *name, TCollection *coll) |
void | TetrameshGen () |
void | ReplaceTreeInfo (int n_cells, TBaseCell **cells, int *GLOB_cellIndex, int n_OwnCells) |
void | SetN_OwnCells (int n_OwnCells) |
int | GetN_OwnCells () |
int | GetN_HaloCells () |
int | GenerateEdgeInfo () |
generate edge info in 3D mesh More... | |
int | AdaptRefineAll () |
adaptive refine More... | |
Protected Attributes | |
int | N_BoundParts |
number of boundary parts | |
TBoundPart ** | BdParts |
boundary parts of domain | |
int | N_BoundComps |
number of all boundary components | |
int * | StartBdCompID |
start id of boundary component on each boundary part | |
int * | Interfaces |
boundary part id's of all Interfaces | |
int | N_Holes |
number of holes | |
double * | PointInHole |
point in each hole | |
int | N_Regions |
number of regions | |
double * | PointInRegion |
point in each region | |
TBaseCell ** | CellTree |
array of all root cells of cell tree | |
int | N_RootCells |
number of all root cells of cell tree | |
int | N_InitVCells |
number of virtuell cells on initial level | |
double | StartX |
x coordinate of the start point (2D) | |
double | StartY |
y coordinate of the start point (2D) | |
double | BoundX |
x length of bounding box | |
double | BoundY |
y length of bounding box | |
double | StartZ |
third coordinate of start point (3D) | |
int | N_InitVCellsY |
return number of cell in Y direction | |
double | BoundZ |
z length of the bounding box | |
int | RefLevel |
current refinment level | |
int | N_MortarFaces |
number of mortar faces | |
TMortarFace * | MortarFaces |
structur for mortar faces | |
int * | BeginMFace |
begin of each mortar face on coll | |
int * | GlobalCellIndex |
array contains the global cell number of local cells (including Halo cells) | |
int | N_OwnCells |
Number of own cells (excluding Halo cells) | |
Friends | |
class | TTetGenMeshLoader |
contains the boundary description, the virtual cell tree and macro grid
contains the boundary description, the virtual cell tree and macro grid
TDomain::TDomain | ( | char * | ParamFile | ) |
int TDomain::AdaptRefineAll | ( | ) |
adaptive refine
Set Golbal Cell Number
PointNeighb's first column contains number of neib cells associated with each vertex
further columns contain the cell numbers associated with this vertex
POINT REFINEMENT AND LAYER REFINEMENT (FOR STRAIGHT LINE SHAPES)
Point Refinement START
vertex cell number
comment here if u dont want to run this routine
Point refinement END
Refinement Level 2 (OPTIONAL FOR POINT REFINEMENT)
Refinement Level 2 END
Refinement in layer for the 2D box Two Boundary Layer Problem
Type 1 (PRESENTLY WORKING): Using pointincell command to mark and refine initial cells containing the discontinuity
Type 1 END
Type 2 (PRESENTLY WORKING): Using product of normal and tangent vectors algorithm (but specific to this problem)
Type 2 End
This part below is written to prevent hanging nodes
Part 1: uncomment this part 1 and comment next part 2 to refine one layer up, i.e, after regular initial refinement again do regular refinement for the vertex neighbours and then do 1refine
Part 2:
END
edgewise refinement for layer start (Optional)
edgewise refinement for layer end
Type 3 (TO MODIFY): Generalized product of normal and tangent vector algorithm
void TDomain::CorrectParametersAndShapes | ( | ) |
set boundary parameters and cell shape according to possibly moving vertices
set boundary parameters and cell shape according to possibly moving vertices
int TDomain::GenerateEdgeInfo | ( | ) |
generate edge info in 3D mesh
added by sashi
find max No. cells met any vertex in the collection
No. of edge neibs will not exceed MaxCpV
PointNeighb's first column contains number of neib cells met with each vertex
further columns contain the cell numbers met with this vertex
set the marker for Edges
set bound and isobound Edges
not modified if it is isobound edge
set all vertices on the bound face as bound vert
set all vertices on the bound face as bound vert
find No. cells having this edge
find the local index of the edge in all cells
generate the edge and set in all cells
TCollection * TDomain::GetCollection | ( | TCollection * | coll, |
int | reference | ||
) |
produce a collection with all cells of a given Collection which have the given reference as ReferenceID
This will give you a subcollection.
int TDomain::GmshGen | ( | char * | GeoFile | ) |
read Gmsh mesh
written by Sashi, 3D Gmsh
void TDomain::Init | ( | char * | PRM, |
char * | GEO | ||
) |
Init process for current domain.
initialize the grid, using the boundary parametrization in file PRM, and initial grid from file GEO, if GEO=="InitGrid" then the automatic mesh generator is used
void TDomain::MakeBdParamsConsistent | ( | TCollection * | coll | ) |
make boundary parameter consistent
make boundary parameter consistent
int TDomain::MakeConfClosure | ( | ) |
refine the finest grid if necessary in order to get a grid with conforming closures
This function is used to set the right refinement descriptions to each cell such that the grid is conforming afterwards. After refinement of one ore more selected Cells this method has to be called.
Max Winkler (23.02.2012)
int TDomain::ReadParam | ( | char * | ParamFile | ) |
read parameter file
parameters for Stokes–Darcy (StoDa) coupling