NeoPZ
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
TPZMHMeshControl Class Reference

class oriented towards the creation of multiscale hybrid meshes - YES More...

#include <TPZMHMeshControl.h>

Inheritance diagram for TPZMHMeshControl:
[legend]
Collaboration diagram for TPZMHMeshControl:
[legend]

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 &copy)
 
virtual ~TPZMHMeshControl ()
 
TPZMHMeshControloperator= (const TPZMHMeshControl &cp)
 
TPZAutoPointer< TPZCompMeshCMesh () const
 
TPZAutoPointer< TPZGeoMeshGMesh () const
 
TPZAutoPointer< TPZCompMeshPressureMesh ()
 
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...
 
TPZCompMeshCriaMalhaTemporaria ()
 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< TPZGeoMeshfGMesh
 geometric mesh used to create the computational mesh More...
 
TPZAutoPointer< TPZCompMeshfCMesh
 computational MHM mesh being built by this class More...
 
TPZAutoPointer< TPZCompMeshfCMeshLagrange
 computational mesh to represent the distributed flux in each subdomain More...
 
TPZAutoPointer< TPZCompMeshfCMeshConstantPressure
 computational mesh to represent the constant states More...
 
TPZAutoPointer< TPZCompMeshfPressureFineMesh
 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...
 

Detailed Description

class oriented towards the creation of multiscale hybrid meshes - YES

Definition at line 19 of file TPZMHMeshControl.h.

Member Enumeration Documentation

◆ MProblemType

Specify the type of differential equation.

Enumerator
ENone 
EScalar 
EElasticity2D 
EElasticity3D 

Definition at line 25 of file TPZMHMeshControl.h.

Constructor & Destructor Documentation

◆ TPZMHMeshControl() [1/5]

TPZMHMeshControl::TPZMHMeshControl ( )
inline

Definition at line 125 of file TPZMHMeshControl.h.

Referenced by TPZMHMeshControl().

◆ TPZMHMeshControl() [2/5]

TPZMHMeshControl::TPZMHMeshControl ( int  dimension)
inline

◆ TPZMHMeshControl() [3/5]

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() [4/5]

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() [5/5]

TPZMHMeshControl::TPZMHMeshControl ( const TPZMHMeshControl copy)

Definition at line 198 of file TPZMHMeshControl.cpp.

References operator=().

◆ ~TPZMHMeshControl()

TPZMHMeshControl::~TPZMHMeshControl ( )
virtual

Member Function Documentation

◆ AddBoundaryElements()

void TPZMHMeshControl::AddBoundaryElements ( )
protected

◆ AddBoundaryInterfaceElements()

void TPZMHMeshControl::AddBoundaryInterfaceElements ( )
protected

◆ AddElementBoundaries()

void TPZMHMeshControl::AddElementBoundaries ( int64_t  elseed,
int64_t  compelindex,
TPZStack< TPZCompElSide > &  result 
)
protected

◆ BuildComputationalMesh()

void TPZMHMeshControl::BuildComputationalMesh ( bool  usersubstructure)
virtual

◆ BuildWrapMesh()

void TPZMHMeshControl::BuildWrapMesh ( int  dim)
protected

◆ CheckDivisionConsistency()

void TPZMHMeshControl::CheckDivisionConsistency ( TPZGeoElSide  gelside)
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().

◆ CheckMeshConsistency()

virtual void TPZMHMeshControl::CheckMeshConsistency ( )
inlinevirtual

◆ CMesh()

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::CMesh ( ) const
inline

Definition at line 156 of file TPZMHMeshControl.h.

References fCMesh.

◆ Coarse_to_Submesh()

std::map<int64_t,int64_t>& TPZMHMeshControl::Coarse_to_Submesh ( )
inline

return the coarseindex to submesh index data structure

Definition at line 316 of file TPZMHMeshControl.h.

References fMHMtoSubCMesh.

◆ ConnectedElements()

void TPZMHMeshControl::ConnectedElements ( int64_t  skeleton,
std::pair< int64_t, int64_t > &  leftright,
std::map< int64_t, std::list< TPZCompElSide > > &  ellist 
)
protected

◆ ConnectedInterfaceElements()

void TPZMHMeshControl::ConnectedInterfaceElements ( int64_t  skeleton,
std::pair< int64_t, int64_t > &  leftright,
std::map< int64_t, std::list< TPZInterfaceElement *> > &  ellist 
)
protected

◆ CreateInterfaceElements()

void TPZMHMeshControl::CreateInterfaceElements ( )
protected

◆ CreateInterfaceElements2()

void TPZMHMeshControl::CreateInterfaceElements2 ( )
protected

Referenced by CheckMeshConsistency().

◆ CreateInternalElements()

void TPZMHMeshControl::CreateInternalElements ( )
protected

◆ CreateLagrangeMultiplierMesh()

void TPZMHMeshControl::CreateLagrangeMultiplierMesh ( )
protected

◆ CreateSkeleton()

void TPZMHMeshControl::CreateSkeleton ( )
protected

◆ CreateSkeletonElements()

void TPZMHMeshControl::CreateSkeletonElements ( )
protectedvirtual

◆ CreateWrap() [1/2]

void TPZMHMeshControl::CreateWrap ( TPZGeoElSide  gelside)
protected

◆ CreateWrap() [2/2]

void TPZMHMeshControl::CreateWrap ( TPZGeoElSide  gelside,
int  wrapmaterial 
)
protected

◆ CriaMalhaTemporaria()

TPZCompMesh * TPZMHMeshControl::CriaMalhaTemporaria ( )
protected

◆ DefinePartition() [1/2]

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().

◆ DefinePartition() [2/2]

void TPZMHMeshControl::DefinePartition ( TPZVec< int64_t > &  partitionindex)

◆ DefinePartitionbyCoarseIndices()

void TPZMHMeshControl::DefinePartitionbyCoarseIndices ( TPZVec< int64_t > &  coarseindices)

◆ DefineSkeleton()

void TPZMHMeshControl::DefineSkeleton ( std::map< int64_t, std::pair< int64_t, int64_t > > &  skeleton)
inline

Definition at line 174 of file TPZMHMeshControl.h.

References DebugStop, and DefinePartition().

◆ DivideBoundarySkeletonElements()

void TPZMHMeshControl::DivideBoundarySkeletonElements ( )

◆ DivideSkeletonElements()

void TPZMHMeshControl::DivideSkeletonElements ( int  ndivide)

◆ DivideWrap()

void TPZMHMeshControl::DivideWrap ( TPZGeoEl wrapelement)
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().

◆ GetGeoToMHMDomain()

TPZManVector<int64_t> TPZMHMeshControl::GetGeoToMHMDomain ( )
inline

Definition at line 311 of file TPZMHMeshControl.h.

References fGeoToMHMDomain.

◆ GetHybridize()

virtual bool TPZMHMeshControl::GetHybridize ( )
inlinevirtual

◆ GetMeshes()

TPZVec<TPZAutoPointer<TPZCompMesh> > TPZMHMeshControl::GetMeshes ( )
inline

◆ GetMeshVec()

void TPZMHMeshControl::GetMeshVec ( TPZVec< TPZCompMesh *> &  meshvec)
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().

◆ GMesh()

TPZAutoPointer<TPZGeoMesh> TPZMHMeshControl::GMesh ( ) const
inline

Definition at line 161 of file TPZMHMeshControl.h.

References fGMesh.

◆ HasWrapNeighbour()

int TPZMHMeshControl::HasWrapNeighbour ( TPZGeoElSide  gelside)
protected

◆ HybridizeSkeleton()

void TPZMHMeshControl::HybridizeSkeleton ( int  skeletonmatid,
int  pressurematid 
)
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().

◆ InsertPeriferalMaterialObjects()

void TPZMHMeshControl::InsertPeriferalMaterialObjects ( )
protectedvirtual

◆ IsBoundaryMatid()

virtual bool TPZMHMeshControl::IsBoundaryMatid ( int  matid)
inlineprotectedvirtual

◆ IsSibling()

bool TPZMHMeshControl::IsSibling ( int64_t  son,
int64_t  father 
)
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().

◆ IsSkeletonMatid()

virtual bool TPZMHMeshControl::IsSkeletonMatid ( int  matid)
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().

◆ JoinSubdomains()

void TPZMHMeshControl::JoinSubdomains ( TPZVec< TPZCompMesh *> &  meshvec,
TPZCompMesh multiphysicsmesh 
)
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().

◆ operator=()

TPZMHMeshControl & TPZMHMeshControl::operator= ( const TPZMHMeshControl cp)

◆ PressureMesh()

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::PressureMesh ( )
inline

Definition at line 166 of file TPZMHMeshControl.h.

References DefinePartitionbyCoarseIndices(), and fPressureFineMesh.

◆ Print()

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().

◆ PrintBoundaryInfo()

void TPZMHMeshControl::PrintBoundaryInfo ( std::ostream &  out)
protected

◆ 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().

◆ PrintSubdomain()

void TPZMHMeshControl::PrintSubdomain ( int64_t  elindex,
std::ostream &  out 
)
protected

◆ SetHdivmaismaisPOrder()

void TPZMHMeshControl::SetHdivmaismaisPOrder ( int  order)
inline

Definition at line 229 of file TPZMHMeshControl.h.

◆ SetHybridize()

virtual void TPZMHMeshControl::SetHybridize ( bool  flag = true)
inlinevirtual

Set the hybridization to true.

Reimplemented in TPZMHMixedHybridMeshControl.

Definition at line 242 of file TPZMHMeshControl.h.

◆ SetInternalPOrder()

void TPZMHMeshControl::SetInternalPOrder ( int  order)
inline

Set the porder for the internal elements.

Definition at line 217 of file TPZMHMeshControl.h.

References TPZCompMesh::SetDefaultOrder().

◆ SetLagrangeAveragePressure()

void TPZMHMeshControl::SetLagrangeAveragePressure ( bool  flag)
inline

Set the flag for creating Lagrange Dofs for the average pressure.

Definition at line 236 of file TPZMHMeshControl.h.

◆ SetProblemType()

void TPZMHMeshControl::SetProblemType ( MProblemType  problem)
inline

Set the problem type of the simulation.

Definition at line 198 of file TPZMHMeshControl.h.

References DebugStop, EElasticity2D, EElasticity3D, and EScalar.

◆ SetSkeletonPOrder()

void TPZMHMeshControl::SetSkeletonPOrder ( int  order)
inline

Definition at line 223 of file TPZMHMeshControl.h.

◆ SetSubdomain() [1/2]

void TPZMHMeshControl::SetSubdomain ( TPZCompEl cel,
int64_t  subdomain 
)
protected

◆ SetSubdomain() [2/2]

void TPZMHMeshControl::SetSubdomain ( TPZCompMesh cmesh,
int64_t  connectindex,
int64_t  subdomain 
)
protected

associates the connects index with a subdomain

Definition at line 1942 of file TPZMHMeshControl.cpp.

References fConnectToSubDomainIdentifier.

◆ SubStructure()

void TPZMHMeshControl::SubStructure ( )
protected

◆ SubStructure2()

void TPZMHMeshControl::SubStructure2 ( )
protected

Referenced by CheckMeshConsistency().

◆ SwitchLagrangeMultiplierSign()

void TPZMHMeshControl::SwitchLagrangeMultiplierSign ( bool  sw)
inline

switch the sign of the lagrange multipliers

Definition at line 267 of file TPZMHMeshControl.h.

References Print(), and PrintDiagnostics().

◆ TransferToMultiphysics()

void TPZMHMeshControl::TransferToMultiphysics ( )
protected

◆ WhichSubdomain()

int64_t TPZMHMeshControl::WhichSubdomain ( TPZCompEl cel)
protected

◆ WrapMaterialId()

int TPZMHMeshControl::WrapMaterialId ( TPZGeoElSide  gelside)
protected

Member Data Documentation

◆ fBoundaryWrapMatId

int TPZMHMeshControl::fBoundaryWrapMatId
protected

◆ fCMesh

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::fCMesh
protected

◆ fCMeshConstantPressure

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::fCMeshConstantPressure
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().

◆ fCMeshLagrange

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::fCMeshLagrange
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().

◆ fConnectToSubDomainIdentifier

std::map<TPZCompMesh *,TPZManVector<int64_t> > TPZMHMeshControl::fConnectToSubDomainIdentifier
protected

◆ fGeoToMHMDomain

TPZManVector<int64_t> TPZMHMeshControl::fGeoToMHMDomain
protected

◆ fGlobalSystemSize

int64_t TPZMHMeshControl::fGlobalSystemSize

◆ fGlobalSystemWithLocalCondensationSize

int64_t TPZMHMeshControl::fGlobalSystemWithLocalCondensationSize

◆ fGMesh

TPZAutoPointer<TPZGeoMesh> TPZMHMeshControl::fGMesh
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().

◆ fHdivmaismais

int TPZMHMeshControl::fHdivmaismais
protected

◆ fHybridize

bool TPZMHMeshControl::fHybridize
protected

◆ fInterfaces

std::map<int64_t, std::pair<int64_t,int64_t> > TPZMHMeshControl::fInterfaces
protected

◆ fInternalWrapMatId

int TPZMHMeshControl::fInternalWrapMatId
protected

◆ fLagrangeAveragePressure

bool TPZMHMeshControl::fLagrangeAveragePressure
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().

◆ fLagrangeMatIdLeft

int TPZMHMeshControl::fLagrangeMatIdLeft

◆ fLagrangeMatIdRight

int TPZMHMeshControl::fLagrangeMatIdRight

◆ fMaterialBCIds

std::set<int> TPZMHMeshControl::fMaterialBCIds

materials for boundary conditions

Definition at line 67 of file TPZMHMeshControl.h.

Referenced by TPZMHMixedMeshControl::InsertPeriferalHdivMaterialObjects().

◆ fMaterialIds

std::set<int> TPZMHMeshControl::fMaterialIds

◆ fMHMtoSubCMesh

std::map<int64_t,int64_t> TPZMHMeshControl::fMHMtoSubCMesh
protected

◆ fNState

int TPZMHMeshControl::fNState
protected

◆ fNumeq

int64_t TPZMHMeshControl::fNumeq

◆ fpOrderInternal

int TPZMHMeshControl::fpOrderInternal
protected

◆ fpOrderSkeleton

int TPZMHMeshControl::fpOrderSkeleton
protected

◆ fPressureFineMesh

TPZAutoPointer<TPZCompMesh> TPZMHMeshControl::fPressureFineMesh
protected

◆ fPressureSkeletonMatId

int TPZMHMeshControl::fPressureSkeletonMatId

◆ fProblemType

MProblemType TPZMHMeshControl::fProblemType
protected

Variable defining the type of problem.

Definition at line 45 of file TPZMHMeshControl.h.

Referenced by CreateInternalElements(), CreateLagrangeMultiplierMesh(), and operator=().

◆ fSecondSkeletonMatId

int TPZMHMeshControl::fSecondSkeletonMatId

◆ fSkeletonMatId

int TPZMHMeshControl::fSkeletonMatId

◆ fSkeletonWrapMatId

int TPZMHMeshControl::fSkeletonWrapMatId
protected

◆ fSwitchLagrangeSign

bool TPZMHMeshControl::fSwitchLagrangeSign
protected

flag to indicate whether the lagrange multipliers should switch signal

Definition at line 113 of file TPZMHMeshControl.h.

Referenced by InsertPeriferalMaterialObjects(), and operator=().


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