ParMooN
 All Classes Functions Variables Friends Pages
Public Member Functions | Protected Attributes | Friends | List of all members
TDomain Class Reference

contains the boundary description, the virtual cell tree and macro grid More...

#include <Domain.h>

Collaboration diagram for TDomain:
Collaboration graph
[legend]

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
 
TBoundPartGetBdPart (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
 
TMortarFaceGetMortarFace (int i)
 return mortar face struct
 
TCollectionGetMortarColl (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
 
TCollectionGetCollection (Iterators it, int level)
 produce a collection with all cells returned by iterator it
 
TCollectionGetCollection (TCollection *coll, int reference)
 produce a collection with all cells of a given Collection which have the given reference as ReferenceID More...
 
TCollectionGetOwnCollection (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
 
TMortarFaceMortarFaces
 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
 

Detailed Description

contains the boundary description, the virtual cell tree and macro grid

contains the boundary description, the virtual cell tree and macro grid


Date
09.07.97
Author
Volker Behns : collection methods (Gunar Matthies 14.10.97), methods for Refine/Derefine algorithm (Gunar Matthies 17.10.97) mesh class, edge generation, parallel methods and documentation (Sashikumaar Ganesan 08.08.2014)

Constructor & Destructor Documentation

TDomain::TDomain ( char *  ParamFile)

set variables' value in TDatabase using ParamFile

Here is the call graph for this function:

Member Function Documentation

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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.

Here is the call graph for this function:

int TDomain::GmshGen ( char *  GeoFile)

read Gmsh mesh

written by Sashi, 3D Gmsh

Here is the call graph for this function:

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

Here is the call graph for this function:

void TDomain::MakeBdParamsConsistent ( TCollection coll)

make boundary parameter consistent

make boundary parameter consistent

Here is the call graph for this function:

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)

Here is the call graph for this function:

Here is the caller graph for this function:

int TDomain::ReadParam ( char *  ParamFile)

read parameter file

parameters for Stokes–Darcy (StoDa) coupling

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: