NeoPZ
|
class oriented towards the creation of multiscale hybrid meshes - YES More...
#include <TPZMHMeshControl.h>
Public Types | |
enum | MProblemType { ENone, EScalar, EElasticity2D, EElasticity3D } |
Specify the type of differential equation. More... | |
Public Member Functions | |
TPZMHMeshControl () | |
TPZMHMeshControl (int dimension) | |
TPZMHMeshControl (TPZAutoPointer< TPZGeoMesh > gmesh, TPZVec< int64_t > &geotomhm) | |
constructor, indicating that the MHM approximation will use the elements indicated by coarseindices as the macro elements More... | |
TPZMHMeshControl (TPZAutoPointer< TPZGeoMesh > gmesh) | |
create the mhm object without defining the MHM partition More... | |
TPZMHMeshControl (const TPZMHMeshControl ©) | |
virtual | ~TPZMHMeshControl () |
TPZMHMeshControl & | operator= (const TPZMHMeshControl &cp) |
TPZAutoPointer< TPZCompMesh > | CMesh () const |
TPZAutoPointer< TPZGeoMesh > | GMesh () const |
TPZAutoPointer< TPZCompMesh > | PressureMesh () |
void | DefinePartitionbyCoarseIndices (TPZVec< int64_t > &coarseindices) |
Define the MHM partition by the coarse element indices. More... | |
void | DefineSkeleton (std::map< int64_t, std::pair< int64_t, int64_t > > &skeleton) |
void | DefinePartition (TPZVec< int64_t > &partitionindex, std::map< int64_t, std::pair< int64_t, int64_t > > &skeleton) |
Define the partitioning information of the MHM mesh. More... | |
void | DefinePartition (TPZVec< int64_t > &partitionindex) |
Define the partitioning information of the MHM mesh. More... | |
void | SetProblemType (MProblemType problem) |
Set the problem type of the simulation. More... | |
void | SetInternalPOrder (int order) |
Set the porder for the internal elements. More... | |
void | SetSkeletonPOrder (int order) |
void | SetHdivmaismaisPOrder (int order) |
void | SetLagrangeAveragePressure (bool flag) |
Set the flag for creating Lagrange Dofs for the average pressure. More... | |
virtual void | SetHybridize (bool flag=true) |
Set the hybridization to true. More... | |
virtual bool | GetHybridize () |
virtual void | BuildComputationalMesh (bool usersubstructure) |
Create all data structures for the computational mesh. More... | |
void | DivideSkeletonElements (int ndivide) |
divide the skeleton elements More... | |
void | DivideBoundarySkeletonElements () |
divide the boundary skeleton elements More... | |
void | SwitchLagrangeMultiplierSign (bool sw) |
switch the sign of the lagrange multipliers More... | |
void | Print (std::ostream &out) |
print the data structure More... | |
void | PrintDiagnostics (std::ostream &out) |
Print diagnostics. More... | |
void | GetMeshVec (TPZVec< TPZCompMesh *> &meshvec) |
Put the pointers to the meshes in a vector. More... | |
TPZVec< TPZAutoPointer< TPZCompMesh > > | GetMeshes () |
TPZManVector< int64_t > | GetGeoToMHMDomain () |
std::map< int64_t, int64_t > & | Coarse_to_Submesh () |
return the coarseindex to submesh index data structure More... | |
virtual void | CheckMeshConsistency () |
verify the consistency of the datastructure More... | |
Public Attributes | |
int | fSkeletonMatId |
material id associated with the skeleton elements More... | |
int | fSecondSkeletonMatId |
material id associated with the skeleton elements More... | |
int | fPressureSkeletonMatId |
material id associated with the skeleton elements in a hybrid context More... | |
int | fLagrangeMatIdLeft |
material id associated with the lagrange multiplier elements More... | |
int | fLagrangeMatIdRight |
std::set< int > | fMaterialIds |
materials used for modeling the differential equation More... | |
std::set< int > | fMaterialBCIds |
materials for boundary conditions More... | |
int64_t | fGlobalSystemSize |
number of equations when not condensing anything More... | |
int64_t | fGlobalSystemWithLocalCondensationSize |
number of equations considering local condensation More... | |
int64_t | fNumeq |
number of equations of the global system More... | |
Protected Member Functions | |
virtual void | CreateSkeletonElements () |
will create dim-1 geometric elements on the interfaces between the coarse element indices More... | |
virtual void | InsertPeriferalMaterialObjects () |
Insert material objects that do not perform any actual computation. More... | |
TPZCompMesh * | CriaMalhaTemporaria () |
will create a computational mesh using the coarse element indexes and its interface elements More... | |
void | CreateInternalElements () |
will create the internal elements, one coarse element at a time More... | |
void | AddBoundaryElements () |
Add the boundary elements to the computational mesh. More... | |
void | AddBoundaryInterfaceElements () |
Add the boundary interface elements to the computational mesh. More... | |
void | CreateSkeleton () |
will create the elements on the skeleton More... | |
void | CreateInterfaceElements () |
will create the interface elements between the internal elements and the skeleton More... | |
void | CreateInterfaceElements2 () |
virtual void | HybridizeSkeleton (int skeletonmatid, int pressurematid) |
bool | IsSibling (int64_t son, int64_t father) |
verify if the element is a sibling of More... | |
void | AddElementBoundaries (int64_t elseed, int64_t compelindex, TPZStack< TPZCompElSide > &result) |
put the element side which face the boundary on the stack More... | |
void | TransferToMultiphysics () |
transform the computational mesh into a multiphysics mesh More... | |
void | SubStructure () |
substructure the mesh More... | |
void | SubStructure2 () |
void | BuildWrapMesh (int dim) |
Create the wrap elements. More... | |
int | HasWrapNeighbour (TPZGeoElSide gelside) |
Verify if the element side contains a wrap neighbour. More... | |
void | CheckDivisionConsistency (TPZGeoElSide gelside) |
int | WrapMaterialId (TPZGeoElSide gelside) |
Return the wrap material id (depends on being boundary, neighbour of skeleton or interior. More... | |
virtual bool | IsSkeletonMatid (int matid) |
Return true if the material id is related to a skeleton. More... | |
virtual bool | IsBoundaryMatid (int matid) |
return true if the material id is related to a boundary More... | |
void | CreateWrap (TPZGeoElSide gelside) |
CreateWrapMesh of a given material id. More... | |
void | CreateWrap (TPZGeoElSide gelside, int wrapmaterial) |
CreateWrapMesh of a given material id. More... | |
void | DivideWrap (TPZGeoEl *wrapelement) |
Divide the wrap element while it has divided neighbours. More... | |
void | CreateLagrangeMultiplierMesh () |
create the lagrange multiplier mesh, one element for each subdomain More... | |
void | SetSubdomain (TPZCompEl *cel, int64_t subdomain) |
associates the connects of an element with a subdomain More... | |
void | SetSubdomain (TPZCompMesh *cmesh, int64_t connectindex, int64_t subdomain) |
associates the connects index with a subdomain More... | |
int64_t | WhichSubdomain (TPZCompEl *cel) |
returns to which subdomain a given element beint64_ts More... | |
void | JoinSubdomains (TPZVec< TPZCompMesh *> &meshvec, TPZCompMesh *multiphysicsmesh) |
Subdomains are identified by computational mesh, this method will join. More... | |
void | PrintSubdomain (int64_t elindex, std::ostream &out) |
print the diagnostics for a subdomain More... | |
void | PrintBoundaryInfo (std::ostream &out) |
print the indices of the boundary elements and interfaces More... | |
void | ConnectedElements (int64_t skeleton, std::pair< int64_t, int64_t > &leftright, std::map< int64_t, std::list< TPZCompElSide > > &ellist) |
identify connected elements to the skeleton elements More... | |
void | ConnectedInterfaceElements (int64_t skeleton, std::pair< int64_t, int64_t > &leftright, std::map< int64_t, std::list< TPZInterfaceElement *> > &ellist) |
identify interface elements connected to the skeleton elements More... | |
Protected Attributes | |
TPZAutoPointer< TPZGeoMesh > | fGMesh |
geometric mesh used to create the computational mesh More... | |
TPZAutoPointer< TPZCompMesh > | fCMesh |
computational MHM mesh being built by this class More... | |
TPZAutoPointer< TPZCompMesh > | fCMeshLagrange |
computational mesh to represent the distributed flux in each subdomain More... | |
TPZAutoPointer< TPZCompMesh > | fCMeshConstantPressure |
computational mesh to represent the constant states More... | |
TPZAutoPointer< TPZCompMesh > | fPressureFineMesh |
computational mesh to contain the pressure elements More... | |
MProblemType | fProblemType |
Variable defining the type of problem. More... | |
int | fNState |
number of state variables More... | |
int | fpOrderInternal |
interpolation order of the internal elements More... | |
int | fpOrderSkeleton |
interpolation order of the skeleton elements More... | |
int | fHdivmaismais |
int | fSkeletonWrapMatId |
material index of the skeleton wrap More... | |
int | fBoundaryWrapMatId |
material index of the boundary wrap More... | |
int | fInternalWrapMatId |
material index of the internal wrap More... | |
TPZManVector< int64_t > | fGeoToMHMDomain |
vector of coarse domain index associated with each geometric element More... | |
std::map< int64_t, int64_t > | fMHMtoSubCMesh |
indices of the geometric elements which define the skeleton mesh and their corresponding subcmesh indices More... | |
std::map< int64_t, std::pair< int64_t, int64_t > > | fInterfaces |
indices of the skeleton elements and their left/right partition indexes More... | |
std::map< TPZCompMesh *, TPZManVector< int64_t > > | fConnectToSubDomainIdentifier |
geometric index of the connects - subdomain where the connect will be internal More... | |
bool | fLagrangeAveragePressure |
flag to determine whether a lagrange multiplier is included to force zero average pressures in the subdomains More... | |
bool | fHybridize |
flag to indicate whether we create a hybridized mesh More... | |
bool | fSwitchLagrangeSign |
flag to indicate whether the lagrange multipliers should switch signal More... | |
class oriented towards the creation of multiscale hybrid meshes - YES
Definition at line 19 of file TPZMHMeshControl.h.
Specify the type of differential equation.
Enumerator | |
---|---|
ENone | |
EScalar | |
EElasticity2D | |
EElasticity3D |
Definition at line 25 of file TPZMHMeshControl.h.
|
inline |
Definition at line 125 of file TPZMHMeshControl.h.
Referenced by TPZMHMeshControl().
|
inline |
Definition at line 132 of file TPZMHMeshControl.h.
References operator=(), TPZGeoMesh::SetDimension(), TPZMHMeshControl(), and ~TPZMHMeshControl().
TPZMHMeshControl::TPZMHMeshControl | ( | TPZAutoPointer< TPZGeoMesh > | gmesh, |
TPZVec< int64_t > & | geotomhm | ||
) |
constructor, indicating that the MHM approximation will use the elements indicated by coarseindices as the macro elements
Definition at line 38 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoMesh::Dimension(), fCMesh, fGMesh, fMHMtoSubCMesh, fpOrderInternal, fpOrderSkeleton, fPressureFineMesh, LOGPZ_DEBUG, TPZGeoMesh::NElements(), TPZCompMesh::SetDimModel(), and TPZVec< T >::size().
TPZMHMeshControl::TPZMHMeshControl | ( | TPZAutoPointer< TPZGeoMesh > | gmesh | ) |
create the mhm object without defining the MHM partition
Definition at line 177 of file TPZMHMeshControl.cpp.
References TPZGeoMesh::Dimension(), fCMesh, fGMesh, fMHMtoSubCMesh, fPressureFineMesh, LOGPZ_DEBUG, and TPZCompMesh::SetDimModel().
TPZMHMeshControl::TPZMHMeshControl | ( | const TPZMHMeshControl & | copy | ) |
Definition at line 198 of file TPZMHMeshControl.cpp.
References operator=().
|
virtual |
Definition at line 231 of file TPZMHMeshControl.cpp.
References TPZCompMesh::Element(), fCMesh, fGMesh, TPZCompEl::LoadElementReference(), TPZCompMesh::NElements(), TPZCompEl::Reference(), and TPZGeoMesh::ResetReference().
Referenced by TPZMHMeshControl().
|
protected |
Add the boundary elements to the computational mesh.
Definition at line 981 of file TPZMHMeshControl.cpp.
References TPZCompMesh::CreateCompEl(), TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoMesh::ElementVec(), fCMesh, fGMesh, fLagrangeMatIdLeft, fLagrangeMatIdRight, fSkeletonMatId, TPZGeoEl::HasSubElement(), TPZGeoEl::MaterialId(), TPZGeoMesh::NElements(), TPZGeoMesh::ResetReference(), and TPZGeoEl::ResetReference().
Referenced by CheckMeshConsistency().
|
protected |
Add the boundary interface elements to the computational mesh.
Definition at line 1006 of file TPZMHMeshControl.cpp.
References TPZGeoEl::CreateBCGeoEl(), DebugStop, TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZCompMesh::ElementVec(), TPZGeoElSide::EqualorHigherCompElementList2(), fCMesh, fGMesh, fLagrangeMatIdLeft, fLagrangeMatIdRight, fSkeletonMatId, TPZGeoEl::HasSubElement(), TPZCompMesh::LoadReferences(), TPZGeoEl::MaterialId(), TPZCompMesh::NElements(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZGeoElSide::Side(), and TPZVec< T >::size().
Referenced by CheckMeshConsistency().
|
protected |
put the element side which face the boundary on the stack
Definition at line 955 of file TPZMHMeshControl.cpp.
References TPZGeoElSide::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZCompMesh::ElementVec(), TPZGeoElSide::Father2(), fCMesh, TPZGeoEl::Index(), TPZGeoEl::NSides(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), and TPZGeoEl::SideDimension().
Referenced by CheckMeshConsistency(), and PrintSubdomain().
|
virtual |
Create all data structures for the computational mesh.
Reimplemented in TPZMHMixedMeshControl, and TPZMHMixedHybridMeshControl.
Definition at line 580 of file TPZMHMeshControl.cpp.
References TPZCompMesh::CleanUpUnconnectedNodes(), CreateInterfaceElements(), CreateInternalElements(), CreateLagrangeMultiplierMesh(), CreateSkeleton(), TPZGeoMesh::Dimension(), TPZCompMesh::Element(), TPZCompMesh::ExpandSolution(), fCMesh, fGlobalSystemSize, fGlobalSystemWithLocalCondensationSize, fGMesh, fLagrangeAveragePressure, fNState, fNumeq, InsertPeriferalMaterialObjects(), LOGPZ_DEBUG, TPZCompMesh::NElements(), TPZCompMesh::NEquations(), TPZCompMesh::Print(), TPZMatrix< TVar >::Rows(), TPZCompMesh::SetDimModel(), TPZCompMesh::Solution(), SubStructure(), TransferToMultiphysics(), and WhichSubdomain().
Referenced by GetHybridize().
|
protected |
Create the wrap elements.
Definition at line 2130 of file TPZMHMeshControl.cpp.
References CreateWrap(), DebugStop, TPZGeoEl::Dimension(), TPZGeoMesh::Element(), TPZGeoElSide::Element(), fBoundaryWrapMatId, fGMesh, fSkeletonWrapMatId, HasWrapNeighbour(), IsSkeletonMatid(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoMesh::NElements(), TPZGeoEl::NSides(), and TPZGeoEl::SideDimension().
Referenced by CheckMeshConsistency(), DivideBoundarySkeletonElements(), and DivideSkeletonElements().
|
protected |
Verify if the mesh datastructure is consistent if the current gelside has no father, then none of its neighbours should either
Definition at line 2241 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoElSide::Dimension(), TPZGeoElSide::Neighbour(), and TPZGeoElSide::StrictFather().
Referenced by CheckMeshConsistency(), and CreateWrap().
|
inlinevirtual |
verify the consistency of the datastructure
Reimplemented in TPZMHMixedHybridMeshControl.
Definition at line 323 of file TPZMHMeshControl.h.
References AddBoundaryElements(), AddBoundaryInterfaceElements(), AddElementBoundaries(), BuildWrapMesh(), CheckDivisionConsistency(), CreateInterfaceElements(), CreateInterfaceElements2(), CreateInternalElements(), CreateSkeleton(), CriaMalhaTemporaria(), HasWrapNeighbour(), HybridizeSkeleton(), IsSibling(), SubStructure(), SubStructure2(), TransferToMultiphysics(), and WrapMaterialId().
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), and TPZMHMixedMeshControl::BuildComputationalMesh().
|
inline |
Definition at line 156 of file TPZMHMeshControl.h.
References fCMesh.
|
inline |
return the coarseindex to submesh index data structure
Definition at line 316 of file TPZMHMeshControl.h.
References fMHMtoSubCMesh.
|
protected |
identify connected elements to the skeleton elements
Definition at line 2027 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoMesh::Element(), TPZGeoElSide::Element(), fBoundaryWrapMatId, fGeoToMHMDomain, fGMesh, fSkeletonWrapMatId, TPZGeoElSide::HasSubElement(), TPZGeoEl::Index(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoEl::NSides(), nsub, TPZGeoEl::NSubElements(), TPZStack< T, NumExtAlloc >::Pop(), TPZStack< T, NumExtAlloc >::Push(), TPZVec< T >::size(), and TPZGeoEl::SubElement().
Referenced by ConnectedInterfaceElements(), TPZMHMixedMeshControl::CreateSkeleton(), TPZMHMixedMeshControl::HybridizeSkeleton(), and IsBoundaryMatid().
|
protected |
identify interface elements connected to the skeleton elements
Definition at line 2100 of file TPZMHMeshControl.cpp.
References ConnectedElements(), DebugStop, TPZCompElSide::Element(), TPZInterfaceElement::LeftElementSide(), TPZGeoElSide::Neighbour(), TPZGeoElSide::Reference(), TPZCompElSide::Reference(), and TPZInterfaceElement::RightElementSide().
Referenced by HybridizeSkeleton(), and IsBoundaryMatid().
|
protected |
will create the interface elements between the internal elements and the skeleton
loop over the skeleton elements
Definition at line 750 of file TPZMHMeshControl.cpp.
References TPZGeoEl::CreateBCGeoEl(), DebugStop, TPZGeoElSide::Dimension(), TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZCompElSide::Element(), TPZGeoMesh::ElementVec(), fBoundaryWrapMatId, fCMesh, fGMesh, fInterfaces, fLagrangeMatIdLeft, fLagrangeMatIdRight, fSkeletonWrapMatId, TPZGeoElSide::GetSubElements2(), TPZCompEl::Index(), TPZGeoEl::Index(), TPZCompMesh::LoadReferences(), LOGPZ_DEBUG, TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoEl::NSides(), TPZStack< T, NumExtAlloc >::Pop(), TPZStack< T, NumExtAlloc >::Push(), TPZGeoEl::Reference(), TPZGeoElSide::Reference(), TPZCompElSide::Reference(), TPZGeoElSide::Side(), TPZVec< T >::size(), and WhichSubdomain().
Referenced by BuildComputationalMesh(), and CheckMeshConsistency().
|
protected |
Referenced by CheckMeshConsistency().
|
protected |
will create the internal elements, one coarse element at a time
associate the connects with the subdomain
Definition at line 623 of file TPZMHMeshControl.cpp.
References TPZCompMesh::ApproxSpace(), TPZCompEl::ConnectIndex(), TPZCompMesh::ConnectVec(), TPZCompMesh::CreateCompEl(), EElasticity2D, EElasticity3D, TPZGeoMesh::Element(), TPZCompMesh::Element(), TPZCompMesh::ElementVec(), fCMesh, fConnectToSubDomainIdentifier, fGeoToMHMDomain, fGMesh, fLagrangeAveragePressure, fMHMtoSubCMesh, fpOrderInternal, fProblemType, TPZGeoEl::HasSubElement(), TPZGeoMesh::NElements(), TPZGeoMesh::ResetReference(), TPZCompMesh::SetAllCreateFunctionsContinuous(), TPZCreateApproximationSpace::SetCreateLagrange(), TPZCompEl::SetgOrder(), and SetSubdomain().
Referenced by BuildComputationalMesh(), and CheckMeshConsistency().
|
protected |
create the lagrange multiplier mesh, one element for each subdomain
criar materiais
Definition at line 1146 of file TPZMHMeshControl.cpp.
References TPZCompEl::Connect(), TPZCompElDisc::ConnectIndex(), DebugStop, TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), EElasticity2D, TPZCompMesh::Element(), TPZGeoMesh::ElementVec(), EScalar, TPZCompMesh::ExpandSolution(), fCMesh, fCMeshConstantPressure, fCMeshLagrange, fGMesh, fMHMtoSubCMesh, fProblemType, TPZCompMesh::InsertMaterialObject(), LOGPZ_DEBUG, TPZGeoEl::MaterialId(), TPZCompMesh::NConnects(), TPZGeoMesh::NElements(), TPZCompMesh::NElements(), TPZConnect::NShape(), TPZCompMesh::Print(), TPZGeoMesh::ResetReference(), TPZCompMesh::SetAllCreateFunctionsDiscontinuous(), TPZCompMesh::SetDefaultOrder(), TPZCompMesh::SetDimModel(), TPZCompElDisc::SetFalseUseQsiEta(), SetSubdomain(), TPZCompElDisc::SetTotalOrderShape(), and WhichSubdomain().
Referenced by BuildComputationalMesh(), and IsBoundaryMatid().
|
protected |
will create the elements on the skeleton
Definition at line 685 of file TPZMHMeshControl.cpp.
References TPZCompMesh::ApproxSpace(), TPZCompEl::Connect(), TPZCompMesh::CreateCompEl(), TPZCompMesh::Dimension(), TPZGeoMesh::ElementVec(), TPZCompMesh::ElementVec(), fCMesh, fGMesh, fInterfaces, fLagrangeAveragePressure, fpOrderSkeleton, TPZCompEl::NConnects(), TPZGeoEl::NSides(), TPZGeoEl::ResetReference(), TPZCreateApproximationSpace::SetAllCreateFunctionsHDiv(), TPZCompMesh::SetDefaultOrder(), TPZCompMesh::SetDimModel(), TPZConnect::SetLagrangeMultiplier(), TPZInterpolationSpace::SetSideOrient(), and SetSubdomain().
Referenced by BuildComputationalMesh(), and CheckMeshConsistency().
|
protectedvirtual |
will create dim-1 geometric elements on the interfaces between the coarse element indices
will create 1D elements on the interfaces between the coarse element indices
Definition at line 308 of file TPZMHMeshControl.cpp.
References CriaMalhaTemporaria(), DebugStop, TPZGeoEl::DecrementNumInterfaces(), dimension, TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoMesh::ElementVec(), fGeoToMHMDomain, fGMesh, fInterfaces, fSkeletonMatId, TPZGeoEl::Index(), TPZInterfaceElement::LeftElement(), LOGPZ_DEBUG, TPZGeoMesh::NElements(), TPZGeoEl::NumInterfaces(), TPZGeoMesh::Print(), TPZCompEl::Reference(), TPZGeoEl::Reference(), TPZGeoMesh::ResetReference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZInterfaceElement::RightElement(), and TPZGeoEl::SetMaterialId().
Referenced by DefinePartitionbyCoarseIndices(), and GetHybridize().
|
protected |
CreateWrapMesh of a given material id.
Definition at line 2330 of file TPZMHMeshControl.cpp.
References TPZGeoElBC::CreatedElement(), TPZGeoElSide::Dimension(), DivideWrap(), TPZGeoElSide::Element(), HasWrapNeighbour(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoElSide::StrictFather(), and WrapMaterialId().
Referenced by BuildWrapMesh(), and IsBoundaryMatid().
|
protected |
CreateWrapMesh of a given material id.
Definition at line 2362 of file TPZMHMeshControl.cpp.
References CheckDivisionConsistency(), TPZGeoElBC::CreatedElement(), DebugStop, TPZGeoElSide::Dimension(), TPZGeoMesh::Dimension(), DivideWrap(), TPZGeoElSide::Element(), HasWrapNeighbour(), TPZGeoEl::MaterialId(), TPZGeoEl::Mesh(), TPZGeoElSide::Neighbour(), and TPZGeoElSide::StrictFather().
|
protected |
will create a computational mesh using the coarse element indexes and its interface elements
criar materiais
Inserir condicao de contorno
Definition at line 477 of file TPZMHMeshControl.cpp.
References TPZCompMesh::ApproxSpace(), TPZMaterial::CreateBC(), TPZCreateApproximationSpace::CreateCompEl(), TPZCreateApproximationSpace::CreateInterfaces(), DebugStop, TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZGeoMesh::ElementVec(), TPZCompMesh::ExpandSolution(), fGMesh, fMHMtoSubCMesh, TPZCompMesh::InsertMaterialObject(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoMesh::NElements(), TPZGeoEl::NSides(), TPZGeoMesh::ResetReference(), TPZCompMesh::SetAllCreateFunctionsDiscontinuous(), TPZCompMesh::SetDimModel(), and TPZGeoEl::SideDimension().
Referenced by CheckMeshConsistency(), and CreateSkeletonElements().
void TPZMHMeshControl::DefinePartition | ( | TPZVec< int64_t > & | partitionindex, |
std::map< int64_t, std::pair< int64_t, int64_t > > & | skeleton | ||
) |
Define the partitioning information of the MHM mesh.
Definition at line 69 of file TPZMHMeshControl.cpp.
References DebugStop, fGeoToMHMDomain, fInterfaces, fMHMtoSubCMesh, LOGPZ_DEBUG, and TPZVec< T >::size().
Referenced by DefinePartition(), and DefineSkeleton().
void TPZMHMeshControl::DefinePartition | ( | TPZVec< int64_t > & | partitionindex | ) |
Define the partitioning information of the MHM mesh.
Definition at line 97 of file TPZMHMeshControl.cpp.
References bc, TPZGeoElBC::CreatedElement(), DebugStop, DefinePartition(), TPZGeoElSide::Dimension(), TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoMesh::Element(), TPZGeoElSide::Element(), fGMesh, fSkeletonMatId, TPZGeoEl::HasSubElement(), TPZGeoEl::Index(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZGeoMesh::NElements(), TPZGeoEl::NSides(), and val().
void TPZMHMeshControl::DefinePartitionbyCoarseIndices | ( | TPZVec< int64_t > & | coarseindices | ) |
Define the MHM partition by the coarse element indices.
Definition at line 258 of file TPZMHMeshControl.cpp.
References CreateSkeletonElements(), TPZGeoMesh::Element(), TPZGeoEl::Father(), fGeoToMHMDomain, fGMesh, fMHMtoSubCMesh, TPZGeoEl::Index(), LOGPZ_DEBUG, TPZGeoMesh::NElements(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZVec< T >::size().
Referenced by PressureMesh().
|
inline |
Definition at line 174 of file TPZMHMeshControl.h.
References DebugStop, and DefinePartition().
void TPZMHMeshControl::DivideBoundarySkeletonElements | ( | ) |
divide the boundary skeleton elements
divide the skeleton elements
Definition at line 428 of file TPZMHMeshControl.cpp.
References BuildWrapMesh(), TPZGeoMesh::Dimension(), TPZGeoEl::Divide(), TPZGeoMesh::Element(), fGeoToMHMDomain, fGMesh, fInterfaces, TPZGeoEl::HasSubElement(), TPZGeoMesh::NElements(), nsub, TPZManVector< T, NumExtAlloc >::Resize(), and TPZVec< T >::size().
Referenced by GetHybridize().
void TPZMHMeshControl::DivideSkeletonElements | ( | int | ndivide | ) |
divide the skeleton elements
Definition at line 384 of file TPZMHMeshControl.cpp.
References BuildWrapMesh(), TPZGeoMesh::Dimension(), TPZGeoEl::Divide(), TPZGeoMesh::Element(), fBoundaryWrapMatId, fGeoToMHMDomain, fGMesh, fInterfaces, fSkeletonWrapMatId, TPZGeoMesh::NElements(), nsub, TPZRefPatternTools::PerfectMatchRefPattern(), TPZManVector< T, NumExtAlloc >::Resize(), TPZGeoEl::SetRefPattern(), and TPZVec< T >::size().
Referenced by GetHybridize().
|
protected |
Divide the wrap element while it has divided neighbours.
Recursively divide the wrap element while it has divided neighbours.
Definition at line 2403 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoEl::Divide(), TPZGeoElSide::Neighbour(), TPZGeoEl::NSides(), TPZGeoEl::SetRefPattern(), TPZRefPattern::SideRefPattern(), and TPZVec< T >::size().
Referenced by CreateWrap(), and IsBoundaryMatid().
|
inline |
Definition at line 311 of file TPZMHMeshControl.h.
References fGeoToMHMDomain.
|
inlinevirtual |
Definition at line 247 of file TPZMHMeshControl.h.
References BuildComputationalMesh(), CreateSkeletonElements(), DivideBoundarySkeletonElements(), DivideSkeletonElements(), fHybridize, and InsertPeriferalMaterialObjects().
|
inline |
Definition at line 294 of file TPZMHMeshControl.h.
References fCMeshConstantPressure, fCMeshLagrange, fPressureFineMesh, TPZManVector< T, NumExtAlloc >::Resize(), and TPZVec< T >::resize().
|
inline |
Put the pointers to the meshes in a vector.
Definition at line 279 of file TPZMHMeshControl.h.
References TPZVec< T >::Resize(), and TPZVec< T >::resize().
|
inline |
Definition at line 161 of file TPZMHMeshControl.h.
References fGMesh.
|
protected |
Verify if the element side contains a wrap neighbour.
Definition at line 2212 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoElSide::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), fBoundaryWrapMatId, fInternalWrapMatId, fSkeletonWrapMatId, TPZGeoEl::MaterialId(), and TPZGeoElSide::Neighbour().
Referenced by BuildWrapMesh(), CheckMeshConsistency(), CreateWrap(), and WrapMaterialId().
|
protectedvirtual |
hybridize the flux elements with the given material id - each flux element creates a pressure element
Reimplemented in TPZMHMixedHybridMeshControl, and TPZMHMixedMeshControl.
Definition at line 1676 of file TPZMHMeshControl.cpp.
References TPZCompMesh::ApproxSpace(), TPZCompEl::Connect(), ConnectedInterfaceElements(), TPZCompEl::ConnectIndex(), TPZCompMesh::CreateCompEl(), TPZGeoElBC::CreatedElement(), TPZCreateApproximationSpace::CreateDisconnectedElements(), DebugStop, TPZCompMesh::Dimension(), TPZGeoElSide::Element(), TPZCompMesh::Element(), TPZCompElSide::Element(), TPZGeoMesh::ElementVec(), TPZCompMesh::ExpandSolution(), fCMesh, fConnectToSubDomainIdentifier, fGeoToMHMDomain, fGMesh, fInterfaces, fLagrangeMatIdLeft, fLagrangeMatIdRight, fpOrderSkeleton, fPressureSkeletonMatId, fSecondSkeletonMatId, fSkeletonMatId, TPZCompEl::Index(), TPZGeoEl::Index(), TPZInterfaceElement::LeftElementSide(), TPZCompMesh::LoadReferences(), LOGPZ_DEBUG, TPZGeoEl::MaterialId(), TPZCompMesh::NConnects(), TPZCompEl::NConnects(), TPZGeoElSide::Neighbour(), TPZGeoMesh::NElements(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZGeoEl::Reference(), TPZGeoMesh::ResetReference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZInterfaceElement::RightElementSide(), TPZCreateApproximationSpace::SetAllCreateFunctionsContinuous(), TPZCreateApproximationSpace::SetAllCreateFunctionsHDiv(), TPZCompMesh::SetDefaultOrder(), TPZCompMesh::SetDimModel(), TPZConnect::SetLagrangeMultiplier(), TPZInterfaceElement::SetLeftRightElements(), TPZGeoEl::SetMaterialId(), TPZCompEl::SetReference(), SetSubdomain(), TPZGeoEl::SideArea(), and WhichSubdomain().
Referenced by CheckMeshConsistency().
|
protectedvirtual |
Insert material objects that do not perform any actual computation.
Insert Boundary condition objects that do not perform any actual computation.
Reimplemented in TPZMHMixedMeshControl, and TPZMHMixedHybridMeshControl.
Definition at line 1612 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoMesh::Dimension(), fCMesh, fGMesh, TPZCompMesh::FindMaterial(), fLagrangeMatIdLeft, fLagrangeMatIdRight, fMaterialIds, fNState, fPressureSkeletonMatId, fSecondSkeletonMatId, fSkeletonMatId, fSwitchLagrangeSign, TPZCompMesh::InsertMaterialObject(), TPZMat1dLin::SetMaterial(), and TPZLagrangeMultiplier::SetMultiplier().
Referenced by BuildComputationalMesh(), and GetHybridize().
|
inlineprotectedvirtual |
return true if the material id is related to a boundary
Definition at line 385 of file TPZMHMeshControl.h.
References ConnectedElements(), ConnectedInterfaceElements(), CreateLagrangeMultiplierMesh(), CreateWrap(), DivideWrap(), JoinSubdomains(), PrintBoundaryInfo(), PrintSubdomain(), SetSubdomain(), and WhichSubdomain().
|
protected |
verify if the element is a sibling of
Definition at line 854 of file TPZMHMeshControl.cpp.
References TPZGeoMesh::ElementVec(), TPZGeoEl::Father(), fGMesh, and TPZGeoEl::Index().
Referenced by CheckMeshConsistency(), and PrintSubdomain().
|
inlineprotectedvirtual |
Return true if the material id is related to a skeleton.
Reimplemented in TPZMHMixedHybridMeshControl.
Definition at line 379 of file TPZMHMeshControl.h.
References fSkeletonMatId.
Referenced by BuildWrapMesh(), and WrapMaterialId().
|
protected |
Subdomains are identified by computational mesh, this method will join.
Definition at line 1985 of file TPZMHMeshControl.cpp.
References DebugStop, fConnectToSubDomainIdentifier, and TPZVec< T >::size().
Referenced by TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), and IsBoundaryMatid().
TPZMHMeshControl & TPZMHMeshControl::operator= | ( | const TPZMHMeshControl & | cp | ) |
Definition at line 203 of file TPZMHMeshControl.cpp.
References fBoundaryWrapMatId, fCMesh, fGeoToMHMDomain, fGlobalSystemSize, fGlobalSystemWithLocalCondensationSize, fGMesh, fHybridize, fInternalWrapMatId, fLagrangeAveragePressure, fLagrangeMatIdLeft, fLagrangeMatIdRight, fMHMtoSubCMesh, fNState, fNumeq, fpOrderInternal, fpOrderSkeleton, fPressureFineMesh, fProblemType, fSkeletonMatId, fSkeletonWrapMatId, fSwitchLagrangeSign, and TPZCompMesh::SetReference().
Referenced by TPZMHMixedMeshControl::operator=(), and TPZMHMeshControl().
|
inline |
Definition at line 166 of file TPZMHMeshControl.h.
References DefinePartitionbyCoarseIndices(), and fPressureFineMesh.
void TPZMHMeshControl::Print | ( | std::ostream & | out | ) |
print the data structure
geometric mesh used to create the computational mesh
computational mesh to contain the pressure elements
computational MHM mesh being built by this class
computational mesh to represent the constant states
computational mesh to represent the constant states
material id associated with the skeleton elements
material id associated with the lagrange multiplier elements
interpolation order of the internal elements
interpolation order of the skeleton elements
indices of the geometric elements which define the skeleton mesh
indices of the skeleton elements and their left/right elements of the skeleton mesh
flag to determine whether a lagrange multiplier is included to force zero average pressures in the subdomains
when imposing average pressure to be zero, a multiphysics mesh is created
subdonain indices of the connects
Definition at line 1520 of file TPZMHMeshControl.cpp.
References fCMesh, fCMeshConstantPressure, fCMeshLagrange, fConnectToSubDomainIdentifier, fGMesh, fInterfaces, fLagrangeAveragePressure, fLagrangeMatIdLeft, fLagrangeMatIdRight, fMHMtoSubCMesh, fpOrderInternal, fpOrderSkeleton, fPressureFineMesh, fSkeletonMatId, TPZGeoMesh::Print(), and TPZCompMesh::Print().
Referenced by SwitchLagrangeMultiplierSign().
|
protected |
print the indices of the boundary elements and interfaces
Definition at line 1051 of file TPZMHMeshControl.cpp.
References TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), TPZCompElSide::Element(), TPZCompMesh::ElementVec(), test::f, fCMesh, fGMesh, fLagrangeMatIdLeft, fLagrangeMatIdRight, fSkeletonMatId, TPZCompEl::Index(), TPZGeoEl::Index(), TPZInterfaceElement::LeftElement(), TPZGeoEl::MaterialId(), TPZCompMesh::NElements(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZCompElSide::Reference(), and TPZInterfaceElement::RightElement().
Referenced by IsBoundaryMatid(), and PrintDiagnostics().
void TPZMHMeshControl::PrintDiagnostics | ( | std::ostream & | out | ) |
Print diagnostics.
Definition at line 870 of file TPZMHMeshControl.cpp.
References fMHMtoSubCMesh, PrintBoundaryInfo(), and PrintSubdomain().
Referenced by SwitchLagrangeMultiplierSign().
|
protected |
print the diagnostics for a subdomain
Definition at line 882 of file TPZMHMeshControl.cpp.
References AddElementBoundaries(), DebugStop, TPZCompMesh::ElementVec(), fCMesh, fGeoToMHMDomain, TPZCompEl::Index(), TPZGeoEl::Index(), IsSibling(), TPZInterfaceElement::LeftElement(), TPZInterfaceElement::LeftElementSide(), TPZGeoEl::MaterialId(), TPZCompMesh::NElements(), TPZCompEl::Reference(), TPZInterfaceElement::RightElement(), TPZCompElSide::Side(), and TPZVec< T >::size().
Referenced by IsBoundaryMatid(), and PrintDiagnostics().
|
inline |
Definition at line 229 of file TPZMHMeshControl.h.
|
inlinevirtual |
Set the hybridization to true.
Reimplemented in TPZMHMixedHybridMeshControl.
Definition at line 242 of file TPZMHMeshControl.h.
|
inline |
Set the porder for the internal elements.
Definition at line 217 of file TPZMHMeshControl.h.
References TPZCompMesh::SetDefaultOrder().
|
inline |
Set the flag for creating Lagrange Dofs for the average pressure.
Definition at line 236 of file TPZMHMeshControl.h.
|
inline |
Set the problem type of the simulation.
Definition at line 198 of file TPZMHMeshControl.h.
References DebugStop, EElasticity2D, EElasticity3D, and EScalar.
|
inline |
Definition at line 223 of file TPZMHMeshControl.h.
|
protected |
associates the connects of an element with a subdomain
associates the connects of an element with a subdomain adds the association of geometric element with subdomain as well
Definition at line 1925 of file TPZMHMeshControl.cpp.
References TPZCompEl::ConnectIndex(), fGeoToMHMDomain, TPZGeoEl::Index(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZVec< T >::size().
Referenced by TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), CreateLagrangeMultiplierMesh(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), TPZMHMixedMeshControl::CreateSkeleton(), CreateSkeleton(), TPZMHMixedMeshControl::HybridizeSkeleton(), HybridizeSkeleton(), IsBoundaryMatid(), and TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures().
|
protected |
associates the connects index with a subdomain
Definition at line 1942 of file TPZMHMeshControl.cpp.
References fConnectToSubDomainIdentifier.
|
protected |
substructure the mesh
Definition at line 1402 of file TPZMHMeshControl.cpp.
References TPZCompMesh::CleanUpUnconnectedNodes(), TPZCompMesh::ComputeNodElCon(), TPZCompEl::Connect(), TPZSubCompMesh::ConnectIndex(), DebugStop, TPZCompMesh::Element(), fCMesh, fGMesh, fHybridize, fMHMtoSubCMesh, TPZConnect::IncrementElConnected(), TPZCompEl::Index(), TPZGeoEl::Index(), TPZCompMesh::InitializeBlock(), TPZSubCompMesh::InternalIndex(), TPZConnect::LagrangeMultiplier(), TPZCompMesh::LoadReferences(), LOGPZ_DEBUG, TPZSubCompMesh::MakeAllInternal(), TPZSubCompMesh::NConnects(), TPZConnect::NElConnected(), TPZCompMesh::NElements(), substruct_tst14.test::numthreads, TPZSubCompMesh::Print(), TPZCompEl::Reference(), TPZGeoMesh::ResetReference(), TPZCompMesh::SaddlePermute(), TPZSubCompMesh::SetAnalysisSkyline(), and WhichSubdomain().
Referenced by BuildComputationalMesh(), and CheckMeshConsistency().
|
protected |
Referenced by CheckMeshConsistency().
|
inline |
switch the sign of the lagrange multipliers
Definition at line 267 of file TPZMHMeshControl.h.
References Print(), and PrintDiagnostics().
|
protected |
transform the computational mesh into a multiphysics mesh
Definition at line 1248 of file TPZMHMeshControl.cpp.
References TPZBuildMultiphysicsMesh::AddConnects(), TPZMultiphysicsElement::AddElement(), TPZGeoElSide::ConnectedCompElementList(), TPZCompEl::ConnectIndex(), TPZCompMesh::ConnectVec(), TPZCompMesh::CreateCompEl(), DebugStop, TPZGeoMesh::Dimension(), TPZCompMesh::Element(), TPZCompMesh::ElementVec(), TPZCompMesh::ExpandSolution(), fCMesh, fCMeshConstantPressure, fCMeshLagrange, fGMesh, fPressureFineMesh, TPZInterfaceElement::LeftElementSide(), TPZCompMesh::LoadReferences(), LOGPZ_DEBUG, TPZCompMesh::MaterialVec(), TPZCompMesh::NConnects(), TPZCompMesh::NElements(), TPZMultiphysicsElement::NMeshes(), TPZGeoEl::NSides(), TPZCompMesh::Print(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZGeoEl::Reference(), TPZGeoElSide::Reference(), TPZCompElSide::Reference(), TPZGeoMesh::ResetReference(), TPZInterfaceElement::RightElementSide(), TPZCompMesh::SetAllCreateFunctionsMultiphysicElem(), TPZCompMesh::SetDimModel(), and TPZVec< T >::size().
Referenced by BuildComputationalMesh(), and CheckMeshConsistency().
|
protected |
returns to which subdomain a given element beint64_ts
Definition at line 1954 of file TPZMHMeshControl.cpp.
References TPZCompEl::ConnectIndex(), DebugStop, fConnectToSubDomainIdentifier, TPZCompEl::Mesh(), and TPZCompEl::NConnects().
Referenced by BuildComputationalMesh(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), CreateInterfaceElements(), CreateLagrangeMultiplierMesh(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMixedHybridMeshControl::FindConnectedElements(), TPZMHMixedMeshControl::HideTheElements(), HybridizeSkeleton(), IsBoundaryMatid(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), and SubStructure().
|
protected |
Return the wrap material id (depends on being boundary, neighbour of skeleton or interior.
Definition at line 2262 of file TPZMHMeshControl.cpp.
References DebugStop, TPZGeoElSide::Dimension(), TPZGeoMesh::Dimension(), TPZGeoEl::Dimension(), TPZGeoElSide::Element(), fBoundaryWrapMatId, fInternalWrapMatId, fSkeletonWrapMatId, HasWrapNeighbour(), IsSkeletonMatid(), TPZGeoEl::MaterialId(), TPZGeoEl::Mesh(), TPZGeoElSide::Neighbour(), and TPZGeoElSide::StrictFather().
Referenced by CheckMeshConsistency(), and CreateWrap().
|
protected |
material index of the boundary wrap
Definition at line 85 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::AdjustBoundaryConditionsOfFractures(), TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), BuildWrapMesh(), ConnectedElements(), CreateInterfaceElements(), DivideSkeletonElements(), HasWrapNeighbour(), operator=(), and WrapMaterialId().
|
protected |
computational MHM mesh being built by this class
Definition at line 32 of file TPZMHMeshControl.h.
Referenced by AddBoundaryElements(), AddBoundaryInterfaceElements(), AddElementBoundaries(), TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), TPZMHMixedMeshControl::BuildMultiPhysicsMesh(), TPZMHMixedHybridMeshControl::CheckMeshConsistency(), CMesh(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), CreateInterfaceElements(), CreateInternalElements(), CreateLagrangeMultiplierMesh(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), CreateSkeleton(), TPZMHMixedMeshControl::GroupandCondenseElements(), TPZMHMixedHybridMeshControl::GroupandCondenseElements(), TPZMHMixedMeshChannelControl::HideTheElements(), TPZMHMixedMeshControl::HideTheElements(), HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), operator=(), TPZMHMixedMeshControl::Print(), Print(), PrintBoundaryInfo(), TPZMHMixedHybridMeshControl::PrintFriendly(), PrintSubdomain(), SubStructure(), TPZMHMeshControl(), TPZMHMixedMeshControl::TPZMHMixedMeshControl(), TransferToMultiphysics(), ~TPZMHMeshControl(), and TPZMHMixedMeshControl::~TPZMHMixedMeshControl().
|
protected |
computational mesh to represent the constant states
Definition at line 38 of file TPZMHMeshControl.h.
Referenced by CreateLagrangeMultiplierMesh(), GetMeshes(), TPZMHMixedMeshControl::Print(), Print(), and TransferToMultiphysics().
|
protected |
computational mesh to represent the distributed flux in each subdomain
Definition at line 35 of file TPZMHMeshControl.h.
Referenced by CreateLagrangeMultiplierMesh(), GetMeshes(), TPZMHMixedMeshControl::Print(), Print(), and TransferToMultiphysics().
|
protected |
geometric index of the connects - subdomain where the connect will be internal
Definition at line 101 of file TPZMHMeshControl.h.
Referenced by CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), HybridizeSkeleton(), JoinSubdomains(), TPZMHMixedMeshControl::Print(), Print(), SetSubdomain(), TPZMHMixedMeshChannelControl::WhichSubdomain(), and WhichSubdomain().
|
protected |
vector of coarse domain index associated with each geometric element
Definition at line 91 of file TPZMHMeshControl.h.
Referenced by ConnectedElements(), CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), CreateSkeletonElements(), DefinePartition(), DefinePartitionbyCoarseIndices(), DivideBoundarySkeletonElements(), DivideSkeletonElements(), GetGeoToMHMDomain(), HybridizeSkeleton(), operator=(), PrintSubdomain(), and SetSubdomain().
int64_t TPZMHMeshControl::fGlobalSystemSize |
number of equations when not condensing anything
Definition at line 117 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), and operator=().
int64_t TPZMHMeshControl::fGlobalSystemWithLocalCondensationSize |
number of equations considering local condensation
Definition at line 120 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), and operator=().
|
protected |
geometric mesh used to create the computational mesh
Definition at line 29 of file TPZMHMeshControl.h.
Referenced by AddBoundaryElements(), AddBoundaryInterfaceElements(), TPZMHMixedHybridMeshControl::AdjustBoundaryConditionsOfFractures(), TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), TPZMHMixedMeshControl::BuildMultiPhysicsMesh(), BuildWrapMesh(), TPZMHMixedHybridMeshControl::CheckMeshConsistency(), ConnectedElements(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), TPZMHMixedMeshControl::CreateHDivMHMMesh(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateInternalAxialFluxes(), CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), CreateLagrangeMultiplierMesh(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), TPZMHMixedMeshControl::CreateSkeleton(), CreateSkeleton(), TPZMHMixedHybridMeshControl::CreateSkeletonAxialFluxes(), CreateSkeletonElements(), CriaMalhaTemporaria(), DefinePartition(), DefinePartitionbyCoarseIndices(), TPZMHMixedMeshControl::DeletePressureElements(), DivideBoundarySkeletonElements(), DivideSkeletonElements(), TPZMHMixedHybridMeshControl::FindConnectedElements(), GMesh(), TPZMHMixedMeshControl::HybridizeSkeleton(), HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalHdivMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), TPZMHMixedHybridMeshControl::InsertPeriferalPressureMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalRotationMaterialObjects(), IsSibling(), operator=(), TPZMHMixedMeshControl::Print(), Print(), PrintBoundaryInfo(), TPZMHMixedHybridMeshControl::PrintFriendly(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), SubStructure(), TPZMHMeshControl(), TPZMHMixedMeshControl::TPZMHMixedMeshControl(), TransferToMultiphysics(), and ~TPZMHMeshControl().
|
protected |
Definition at line 79 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshControl::CreateHDivMHMMesh(), and TPZMHMixedMeshControl::CreatePressureMHMMesh().
|
protected |
flag to indicate whether we create a hybridized mesh
Definition at line 110 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::BuildComputationalMesh(), GetHybridize(), TPZMHMixedMeshChannelControl::HideTheElements(), TPZMHMixedMeshControl::HideTheElements(), operator=(), TPZMHMixedHybridMeshControl::SetHybridize(), and SubStructure().
|
protected |
indices of the skeleton elements and their left/right partition indexes
Definition at line 98 of file TPZMHMeshControl.h.
Referenced by CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedMeshControl::CreateSkeleton(), CreateSkeleton(), TPZMHMixedHybridMeshControl::CreateSkeletonAxialFluxes(), CreateSkeletonElements(), DefinePartition(), DivideBoundarySkeletonElements(), DivideSkeletonElements(), TPZMHMixedMeshControl::HybridizeSkeleton(), HybridizeSkeleton(), TPZMHMixedMeshControl::Print(), and Print().
|
protected |
material index of the internal wrap
Definition at line 88 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::CreateHDivWrappers(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::FindConnectedElements(), HasWrapNeighbour(), TPZMHMixedHybridMeshControl::NeedsHDivWrapper(), operator=(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), and WrapMaterialId().
|
protected |
flag to determine whether a lagrange multiplier is included to force zero average pressures in the subdomains
when imposing average pressure to be zero, a multiphysics mesh is created
Definition at line 107 of file TPZMHMeshControl.h.
Referenced by BuildComputationalMesh(), CreateInternalElements(), CreateSkeleton(), operator=(), TPZMHMixedMeshControl::Print(), and Print().
int TPZMHMeshControl::fLagrangeMatIdLeft |
material id associated with the lagrange multiplier elements
Definition at line 61 of file TPZMHMeshControl.h.
Referenced by AddBoundaryElements(), AddBoundaryInterfaceElements(), CreateInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), operator=(), TPZMHMixedMeshControl::Print(), Print(), and PrintBoundaryInfo().
int TPZMHMeshControl::fLagrangeMatIdRight |
Definition at line 61 of file TPZMHMeshControl.h.
Referenced by AddBoundaryElements(), AddBoundaryInterfaceElements(), CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), operator=(), TPZMHMixedMeshControl::Print(), Print(), and PrintBoundaryInfo().
std::set<int> TPZMHMeshControl::fMaterialBCIds |
materials for boundary conditions
Definition at line 67 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects().
std::set<int> TPZMHMeshControl::fMaterialIds |
materials used for modeling the differential equation
Definition at line 64 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects(), and TPZMHMixedMeshControl::InsertPeriferalRotationMaterialObjects().
|
protected |
indices of the geometric elements which define the skeleton mesh and their corresponding subcmesh indices
Definition at line 94 of file TPZMHMeshControl.h.
Referenced by Coarse_to_Submesh(), CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), CreateLagrangeMultiplierMesh(), CriaMalhaTemporaria(), DefinePartition(), DefinePartitionbyCoarseIndices(), TPZMHMixedMeshControl::GroupandCondenseElements(), TPZMHMixedHybridMeshControl::GroupandCondenseElements(), TPZMHMixedMeshChannelControl::HideTheElements(), TPZMHMixedMeshControl::HideTheElements(), operator=(), TPZMHMixedMeshControl::Print(), Print(), PrintDiagnostics(), SubStructure(), and TPZMHMeshControl().
|
protected |
number of state variables
Definition at line 48 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), TPZMHMixedMeshControl::BuildMultiPhysicsMesh(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), InsertPeriferalMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalRotationMaterialObjects(), and operator=().
int64_t TPZMHMeshControl::fNumeq |
number of equations of the global system
Definition at line 123 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), BuildComputationalMesh(), and operator=().
|
protected |
interpolation order of the internal elements
Definition at line 72 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::CreateHDivMHMMesh(), CreateInternalElements(), TPZMHMixedHybridMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreateInternalFluxElements(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), operator=(), TPZMHMixedMeshControl::Print(), Print(), and TPZMHMeshControl().
|
protected |
interpolation order of the skeleton elements
Definition at line 75 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedMeshChannelControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::CreateSkeleton(), CreateSkeleton(), TPZMHMixedMeshControl::HybridizeSkeleton(), HybridizeSkeleton(), operator=(), TPZMHMixedMeshControl::Print(), Print(), and TPZMHMeshControl().
|
protected |
computational mesh to contain the pressure elements
Definition at line 42 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::BuildMultiPhysicsMesh(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedHybridMeshControl::CreateInternalAxialFluxes(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), TPZMHMixedHybridMeshControl::CreatePressureMHMMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), TPZMHMixedHybridMeshControl::CreateSkeletonAxialFluxes(), TPZMHMixedMeshControl::DeletePressureElements(), TPZMHMixedMeshControl::GetMeshes(), GetMeshes(), TPZMHMixedMeshControl::GetMeshVec(), TPZMHMixedMeshControl::HybridizeSkeleton(), TPZMHMixedHybridMeshControl::HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalPressureMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects(), operator=(), PressureMesh(), TPZMHMixedMeshControl::Print(), Print(), TPZMHMeshControl(), TransferToMultiphysics(), and TPZMHMixedMeshControl::~TPZMHMixedMeshControl().
int TPZMHMeshControl::fPressureSkeletonMatId |
material id associated with the skeleton elements in a hybrid context
Definition at line 58 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedHybridMeshControl::CreateAxialFluxElement(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), HybridizeSkeleton(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), and TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects().
|
protected |
Variable defining the type of problem.
Definition at line 45 of file TPZMHMeshControl.h.
Referenced by CreateInternalElements(), CreateLagrangeMultiplierMesh(), and operator=().
int TPZMHMeshControl::fSecondSkeletonMatId |
material id associated with the skeleton elements
Definition at line 55 of file TPZMHMeshControl.h.
Referenced by TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::HybridizeSkeleton(), HybridizeSkeleton(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), TPZMHMixedHybridMeshControl::InsertPeriferalMaterialObjects(), and InsertPeriferalMaterialObjects().
int TPZMHMeshControl::fSkeletonMatId |
material id associated with the skeleton elements
Definition at line 52 of file TPZMHMeshControl.h.
Referenced by AddBoundaryElements(), AddBoundaryInterfaceElements(), TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), TPZMHMixedHybridMeshControl::BuildComputationalMesh(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedHybridMeshControl::CreateSkeletonAxialFluxes(), CreateSkeletonElements(), DefinePartition(), HybridizeSkeleton(), TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalMaterialObjects(), InsertPeriferalMaterialObjects(), TPZMHMixedHybridMeshControl::IsSkeletonMatid(), IsSkeletonMatid(), operator=(), TPZMHMixedMeshControl::Print(), Print(), and PrintBoundaryInfo().
|
protected |
material index of the skeleton wrap
Definition at line 82 of file TPZMHMeshControl.h.
Referenced by BuildWrapMesh(), ConnectedElements(), CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), DivideSkeletonElements(), TPZMHMixedHybridMeshControl::FindConnectedElements(), HasWrapNeighbour(), operator=(), and WrapMaterialId().
|
protected |
flag to indicate whether the lagrange multipliers should switch signal
Definition at line 113 of file TPZMHMeshControl.h.
Referenced by InsertPeriferalMaterialObjects(), and operator=().