#include <FESpace3D.h>
Public Member Functions | |
TFESpace3D (TCollection *coll, char *name, char *description) | |
TFESpace3D (TCollection *coll, char *name, char *description, BoundCondFunct3D *BoundaryCondition, int k) | |
TFESpace3D (TCollection *coll, char *name, char *description, BoundCondFunct3D *BoundaryCondition, FE3D *fes) | |
TFESpace3D (TCollection *coll, char *name, char *description, BoundCondFunct3D *BoundaryCondition, SpaceType type, int ord) | |
~TFESpace3D () | |
void | FindUsedElements () |
void | ConstructSpace (BoundCondFunct3D *BoundaryCondition) |
int | GetN_ActiveDegrees () |
int | GetN_SlaveDegrees () |
int | GetHangingBound () |
int | GetN_Hanging () |
FE3D * | GetUsedElements () |
THangingNode ** | GetHangingNodes () |
FE3D | GetFE3D (int i, TBaseCell *cell) |
void | GetDOFPosition (int dof, double &x, double &y, double &z) |
void | GetDOFPosition (double *x, double *y, double *z) |
Public Member Functions inherited from TFESpace | |
TFESpace (TCollection *coll, char *name, char *description) | |
~TFESpace () | |
char * | GetName () const |
char * | GetDescription () const |
int | GetN_Cells () const |
TCollection * | GetCollection () const |
int * | GetGlobalNumbers () const |
void | SetGlobalNumbers (int *NewGN) |
int * | GetBeginIndex () const |
int * | GetGlobalDOF (int i) const |
return correspondence map from local to global degrees of freedom More... | |
int | GetN_UsedElements () const |
int | GetN_DegreesOfFreedom () const |
int | GetN_DiffBoundaryNodeTypes () const |
BoundCond * | GetBoundaryNodeTypes () const |
int * | GetN_BoundaryNodes () const |
int | GetN_Dirichlet () const |
int | GetN_Inner () const |
int | GetInnerBound () const |
int * | GetBoundaryNodesBound () const |
int | GetDirichletBound () const |
int | GetActiveBound () const |
int | Write (const char *filename) |
void | SetAsDGSpace () |
int | IsDGSpace () const |
void | SetMaxSubDomainPerDof (int maxSubDomainPerDof) |
int | GetMaxSubDomainPerDof () |
Protected Attributes | |
int | N_ActiveDegrees |
int | N_SlaveDegrees |
int | HangingBound |
FE3D * | UsedElements |
FE3D * | ElementForShape |
THangingNode ** | HangingNodeArray |
FE3D * | AllElements |
Protected Attributes inherited from TFESpace | |
char * | Name |
char * | Description |
TCollection * | Collection |
int | N_Cells |
int | N_DegreesOfFreedom |
int * | GlobalNumbers |
int * | BeginIndex |
int | N_UsedElements |
int | N_DiffBoundNodeTypes |
BoundCond * | BoundaryNodeTypes |
int | N_Dirichlet |
int * | N_BoundaryNodes |
int | N_Inner |
int | InnerBound |
int * | BoundaryNodesBound |
int | DirichletBound |
int | ActiveBound |
int | DGSpace |
int | MaxSubDomainPerDof |
class for all 3D finite element spaces
TFESpace3D::TFESpace3D | ( | TCollection * | coll, |
char * | name, | ||
char * | description | ||
) |
constructor
Constructor
TFESpace3D::TFESpace3D | ( | TCollection * | coll, |
char * | name, | ||
char * | description, | ||
BoundCondFunct3D * | BoundaryCondition, | ||
int | ord | ||
) |
constructor for building a space with elements of order k
TFESpace3D::TFESpace3D | ( | TCollection * | coll, |
char * | name, | ||
char * | description, | ||
BoundCondFunct3D * | BoundaryCondition, | ||
FE3D * | fes | ||
) |
constructor for building a space with the given elements
TFESpace3D::TFESpace3D | ( | TCollection * | coll, |
char * | name, | ||
char * | description, | ||
BoundCondFunct3D * | BoundaryCondition, | ||
SpaceType | type, | ||
int | ord | ||
) |
constructor for building a space with elements of order k
TFESpace3D::~TFESpace3D | ( | ) |
destructor
void TFESpace3D::ConstructSpace | ( | BoundCondFunct3D * | BoundaryCondition | ) |
construct space
set clipboard to all bound/interface edges, since only an edge from a cell be on the bound (in particaul Dirchlet)
Finding BD (in particaul Dirichlet) Dof only may miss the edge BD DOF
unfortunately if this processor is the master of the missed BD (in particaul Dirichlet) dof, it will give wrong result
only vert in a cell may be on the BD, so BD vertices also included 30.06.2012, sashi
set dept. vert neib cells to -1, especiall to use own_FEspace and FEspace with (own + Hallo) cells
if Hallo cells in this coll, the it will set to "i", otherwise -1
modified by sashi, since BD is not regular and T, S are not defined when tetgen is used
edges on this face are already set, so no need of checking in BD edges on this face
vertices on this face are already set, so no need of checking in BD vert on this face, 30.06.12, sashi
identify BD edges but not part of BD faces
vertices on this edge are already set, so no need of checking in BD vert on this edge, 30.06.12, sashi
identify BD vert but not part of BD faces/edge
I hope, it is enough to check BD vertices, sice other vertices are anyway inner, so no prob with Dirichlet BD
modified by sashi, since BD is not regular and T, S are not properly defined when using tetgen
edges on this face are already set, so no need to check in BD edges on this face
vertices on this face are already set, so no need to check in BD vert on this face, 30.06.12, sashi
vertices on this edge are already set, so no need of checking in BD vert on this edge, 30.06.12, sashi
identify BD vert but not part of BD faces/edge
I hope, it is enough to check BD vertices, since other vertices are anyway inner, so no prob with Dirichlet BD
fill the already assigned global dof
hallo cell included, as multigrid fespace will contain Halo cells - Sashi:10-03-15
own cell or neib cell (i.e. Hallo cells) is not in this collection
hallo cells are also need to be considered, so modified 11 Mar 2015 by Sashi
own cell or neib cell (i.e. Hallo cells) is not in this collection
void TFESpace3D::FindUsedElements | ( | ) |
find used elements
void TFESpace3D::GetDOFPosition | ( | int | dof, |
double & | x, | ||
double & | y, | ||
double & | z | ||
) |
return position of one given DOF
return position of all dofs
void TFESpace3D::GetDOFPosition | ( | double * | x, |
double * | y, | ||
double * | z | ||
) |
return position of all dofs
FE3D TFESpace3D::GetFE3D | ( | int | i, |
TBaseCell * | cell | ||
) |
return the FE Id for element i, corresponding to cell
|
inline |
return HangingBound
|
inline |
return array with all hanging nodes
|
inline |
return number of active degrees of freedom
|
inline |
return N_Hanging=N_SlaveDegrees
|
inline |
return number of slave degrees of freedom
|
inline |
return identifiers of used elements
|
protected |
array storing the fe for each element, if necessary
|
protected |
array with an element for each shape
|
protected |
NeumannBound <= i < HangingBound for all hanging nodes i => HangingBound <= i < DirichletBound for all Dirichlet node i
|
protected |
array of hanging nodes
|
protected |
number of active degrees of freedom
|
protected |
number of slave degrees of freedom
|
protected |
array containing the used elements