9 #ifndef TPZMHMixedHybridMeshControl_hpp 10 #define TPZMHMixedHybridMeshControl_hpp 111 if (fFractureFlowDim1MatId.find(matid) != fFractureFlowDim1MatId.end()) {
114 fFractureFlowDim1MatId.insert(matid);
class for creating TPZMHMM with Mixed Meshes
class for creating TPZMHMM with Mixed Meshes
TPZMHMixedHybridMeshControl()
TPZMHMixedMeshControl & operator=(const TPZMHMixedMeshControl &cp)
bool NeedsHDivWrapper(TPZGeoElSide gelside)
verifies if a HDiv wrapper needs to be created for a given element/side
void SplitFluxElementsAroundFractures()
split the fluxes between the flux elements adjacent to a fracture
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
int fPressureDim1MatId
material id of the pressure Lagrange multipliers of dimension fDim-1
int fSkeletonMatId
material id associated with the skeleton elements
void CreateAxialFluxElement(TPZInterpolatedElement *PressureElement, int gelfluxmatid)
Add axial flux to a pressure element.
bool fHybridize
flag to indicate whether we create a hybridized mesh
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
virtual void GroupandCondenseElements()
group and condense the elements
int fHomogeneousNeumannBcMatId
material id of zero flux boundary condition, used for fracture elements
TPZMHMixedHybridMeshControl(int dimension)
void CreateLowerDimensionPressureElements()
virtual void CreateInternalFluxElements()
int fHDivWrapperMatId
material id of the wrapper elements at the end of H(div) elements
int fPressureDim2MatId
material id of the pressure Lagrange multipliers of dimension fDim-2
std::set< int > fFractureFlowDim1MatId
material id of the flow elements of dimension fDim-1
virtual void CreatePressureMHMMesh()
Create the pressure mesh which is dual to the flux mesh.
void ApplyNeighbourBoundaryCondition(TPZGeoEl *gel)
TPZMHMixedHybridMeshControl(const TPZMHMixedHybridMeshControl ©)
void InsertFractureFlowMaterial(int matid)
void GroupElements(TPZCompMesh *cmesh)
group element H(div) elements with surrounding interface elements
virtual void CreateSkeleton()
will create the elements on the skeleton
void FindConnectedElements(TPZGeoElSide &pressureindex, int domain, TPZVec< TPZCompElSide > &fluxconnected)
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
void CreateHDivWrappers()
std::set< int > fSkeletonWithFlowMatId
material id of skeleton elements which have axial flow
TPZMHMixedHybridMeshControl & operator=(const TPZMHMixedHybridMeshControl &cp)
#define DebugStop()
Returns a message to user put a breakpoint in.
virtual void SetHybridize(bool flag)
Set the hybridization to true.
virtual bool IsSkeletonMatid(int matid)
Return true if the material id is related to a skeleton.
virtual void PrintFriendly(std::ostream &out)
print the elements in a readable format
virtual void InsertPeriferalHdivMaterialObjects()
Insert the necessary H(div) material objects to create the flux mesh.
virtual void CreateMultiPhysicsInterfaceElements(int dim)
Create the interfaces between the pressure elements of dimension dim.
virtual void CheckMeshConsistency()
verify the consistency of the datastructure
void AdjustBoundaryConditionsOfFractures()
Change the material id of the boundary elements associated with fracture flow.
void CreateInternalAxialFluxes()
void CreatePressureInterfaces()
Implements computational mesh. Computational Mesh.
virtual void HybridizeSkeleton(int skeletonmatid, int pressurematid)
hybridize the flux elements - each flux element becomes 5 elements
virtual void InsertPeriferalPressureMaterialObjects()
Insert the necessary pressure material objects to create the pressure mesh.
void CreateSkeletonAxialFluxes()
virtual void BuildComputationalMesh(bool usersubstructure)
Create all data structures for the computational mesh.
virtual ~TPZMHMixedHybridMeshControl()
virtual void InsertPeriferalMaterialObjects()
Insert Boundary condition objects that do not perform any actual computation.
Implements computational element based on an interpolation space. Computational Element.
int fSkeletonWithFlowPressureMatId
material id of the pressure corresponding to the skeleton with axial flow