![]() |
NeoPZ
|
class for creating TPZMHMM with Mixed Meshes More...
#include <TPZMHMixedMeshChannelControl.h>
Public Member Functions | |
| TPZMHMixedMeshChannelControl () | |
| TPZMHMixedMeshChannelControl (int dimension) | |
| TPZMHMixedMeshChannelControl (TPZAutoPointer< TPZGeoMesh > gmesh, TPZVec< int64_t > &coarseindices) | |
| TPZMHMixedMeshChannelControl (TPZAutoPointer< TPZGeoMesh > gmesh) | |
| TPZMHMixedMeshChannelControl (const TPZMHMixedMeshChannelControl ©) | |
| TPZMHMixedMeshChannelControl & | operator= (const TPZMHMixedMeshChannelControl &cp) |
| void | BuildComputationalMesh (bool usersubstructure, bool OpenChannel, std::map< int, std::pair< TPZGeoElSide, TPZGeoElSide >>) |
| void | HideTheElements () |
| int64_t | WhichSubdomain (TPZCompEl *cel) |
Public Member Functions inherited from TPZMHMixedMeshControl | |
| TPZMHMixedMeshControl () | |
| TPZMHMixedMeshControl (int dimension) | |
| TPZMHMixedMeshControl (TPZAutoPointer< TPZGeoMesh > gmesh, TPZVec< int64_t > &coarseindices) | |
| TPZMHMixedMeshControl (TPZAutoPointer< TPZGeoMesh > gmesh) | |
| TPZMHMixedMeshControl (const TPZMHMixedMeshControl ©) | |
| TPZMHMixedMeshControl & | operator= (const TPZMHMixedMeshControl &cp) |
| virtual | ~TPZMHMixedMeshControl () |
| virtual void | InsertPeriferalMaterialObjects () |
| Insert Boundary condition objects that do not perform any actual computation. More... | |
| virtual void | InsertPeriferalHdivMaterialObjects () |
| Insert the necessary H(div) material objects to create the flux mesh. More... | |
| virtual void | InsertPeriferalPressureMaterialObjects () |
| Insert the necessary Pressure material objects to create the flux mesh. More... | |
| virtual void | InsertPeriferalRotationMaterialObjects () |
| Insert the necessary Rotation material objects to create the flux mesh. More... | |
| virtual void | BuildComputationalMesh (bool usersubstructure) |
| Create all data structures for the computational mesh. More... | |
| TPZAutoPointer< TPZCompMesh > | FluxMesh () |
| void | SetLagrangeAveragePressure (bool flag) |
| Set the flag for creating Lagrange Dofs for the average pressure. More... | |
| virtual void | Hybridize (bool flag) |
| Set the hybridization to true. More... | |
| void | GetMeshVec (TPZVec< TPZCompMesh *> &meshvec) |
| Put the pointers to the meshes in a vector. More... | |
| TPZVec< TPZAutoPointer< TPZCompMesh > > | GetMeshes () |
| void | Print (std::ostream &out) |
| print the data structure More... | |
| virtual void | PrintFriendly (std::ostream &out) |
| print in a user friendly manner More... | |
Public Member Functions inherited from TPZMHMeshControl | |
| 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 () |
| 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... | |
Additional Inherited Members | |
Public Types inherited from TPZMHMeshControl | |
| enum | MProblemType { ENone, EScalar, EElasticity2D, EElasticity3D } |
| Specify the type of differential equation. More... | |
Public Attributes inherited from TPZMHMeshControl | |
| 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 inherited from TPZMHMixedMeshControl | |
| void | CreateHDivMHMMesh () |
| Create the mesh of the flux approximation space. More... | |
| virtual void | CreatePressureMHMMesh () |
| Create the pressure mesh which is dual to the flux mesh. More... | |
| virtual void | CreateRotationMesh () |
| Create the rotation mesh to elasticity problem. More... | |
| virtual void | CreateInternalFluxElements () |
| virtual void | CreateSkeleton () |
| will create the elements on the skeleton More... | |
| void | CreateHDivPressureMHMMesh () |
| Create the multiphysics mesh. More... | |
| void | BuildMultiPhysicsMesh () |
| build the multi physics mesh (not at the finest geometric mesh level More... | |
| virtual void | CreateMultiPhysicsInterfaceElements (int dim) |
| Create the interfaces between the pressure elements of dimension dim. More... | |
| virtual void | CreateMultiPhysicsInterfaceElements (int dim, int pressmatid, std::pair< int, int > skelmatid) |
| Create the multiphysics interface elements between elements of specified material id. More... | |
| void | HideTheElements () |
| put the elements in TPZSubCompMesh, group the elements and condense locally More... | |
| virtual void | HybridizeSkeleton (int skeletonmatid, int pressurematid) |
| void | OptimizeInterfaceElements () |
| switch the elements pointed to by the interface by lower dimensional elements More... | |
| virtual void | GroupandCondenseElements () |
| group and condense the elements More... | |
| void | DeletePressureElements () |
| delete the pressure elements leaving the geometric mesh without pointing to the computational mesh More... | |
Protected Member Functions inherited from TPZMHMeshControl | |
| virtual void | CreateSkeletonElements () |
| will create dim-1 geometric elements on the interfaces between the coarse element indices 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 () |
| 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 inherited from TPZMHMixedMeshControl | |
| TPZAutoPointer< TPZCompMesh > | fFluxMesh |
| computational mesh to contain the pressure elements More... | |
| TPZAutoPointer< TPZCompMesh > | fRotationMesh |
| computational mesh to contain the rotation elements More... | |
Protected Attributes inherited from TPZMHMeshControl | |
| 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 for creating TPZMHMM with Mixed Meshes
Definition at line 16 of file TPZMHMixedMeshChannelControl.h.
|
inline |
Definition at line 22 of file TPZMHMixedMeshChannelControl.h.
|
inline |
Definition at line 27 of file TPZMHMixedMeshChannelControl.h.
|
inline |
Definition at line 32 of file TPZMHMixedMeshChannelControl.h.
|
inline |
Definition at line 36 of file TPZMHMixedMeshChannelControl.h.
|
inline |
Definition at line 42 of file TPZMHMixedMeshChannelControl.h.
References TPZMHMixedMeshControl::fFluxMesh.
| void TPZMHMixedMeshChannelControl::BuildComputationalMesh | ( | bool | usersubstructure, |
| bool | OpenChannel, | ||
| std::map< int, std::pair< TPZGeoElSide, TPZGeoElSide >> | oppen_channel | ||
| ) |
Definition at line 35 of file TPZMHMixedMeshChannelControl.cpp.
References TPZMHMeshControl::CheckMeshConsistency(), TPZCompMesh::CleanUpUnconnectedNodes(), TPZCompMesh::ComputeNodElCon(), TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZMHMixedMeshControl::CreateHDivMHMMesh(), TPZMHMixedMeshControl::CreateHDivPressureMHMMesh(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), DebugStop, TPZCompMesh::Dimension(), TPZGeoMesh::Dimension(), TPZCompMesh::Element(), TPZCompMesh::ExpandSolution(), TPZMHMeshControl::fCMesh, TPZMHMixedMeshControl::fFluxMesh, TPZMHMeshControl::fGlobalSystemSize, TPZMHMeshControl::fGlobalSystemWithLocalCondensationSize, TPZMHMeshControl::fGMesh, TPZMHMixedMeshControl::FluxMesh(), TPZMHMeshControl::fNumeq, TPZMHMeshControl::fpOrderInternal, TPZMHMeshControl::fpOrderSkeleton, HideTheElements(), TPZCompEl::Index(), TPZMHMixedMeshControl::InsertPeriferalMaterialObjects(), TPZMHMixedMeshControl::InsertPeriferalPressureMaterialObjects(), TPZCompMesh::LoadReferences(), TPZCompMesh::NElements(), TPZCompMesh::NEquations(), TPZVTKGeoMesh::PrintCMeshVTK(), TPZMHMixedMeshControl::PrintFriendly(), TPZCompEl::Reference(), TPZCompMesh::Reference(), TPZConnect::RemoveDepend(), TPZMatrix< TVar >::Rows(), TPZCompEl::SetConnectIndex(), and TPZCompMesh::Solution().
Referenced by operator=().
| void TPZMHMixedMeshChannelControl::HideTheElements | ( | ) |
Definition at line 128 of file TPZMHMixedMeshChannelControl.cpp.
References TPZCompMesh::CleanUpUnconnectedNodes(), TPZCompMesh::ComputeNodElCon(), TPZGeoMesh::Dimension(), TPZCompMesh::Element(), TPZMHMeshControl::fCMesh, TPZMHMeshControl::fHybridize, TPZMHMeshControl::fMHMtoSubCMesh, TPZMHMixedMeshControl::GroupandCondenseElements(), TPZGeoEl::Index(), TPZCompMesh::LoadReferences(), TPZCompMesh::NElements(), TPZCompMeshTools::PutinSubmeshes(), TPZCompEl::Reference(), TPZCompMesh::Reference(), TPZGeoMesh::ResetReference(), and WhichSubdomain().
Referenced by BuildComputationalMesh(), and operator=().
|
inline |
Definition at line 48 of file TPZMHMixedMeshChannelControl.h.
References BuildComputationalMesh(), TPZMHMixedMeshControl::fFluxMesh, HideTheElements(), TPZMHMixedMeshControl::operator=(), and WhichSubdomain().
| int64_t TPZMHMixedMeshChannelControl::WhichSubdomain | ( | TPZCompEl * | cel | ) |
Definition at line 176 of file TPZMHMixedMeshChannelControl.cpp.
References TPZCompEl::ConnectIndex(), TPZMHMeshControl::fConnectToSubDomainIdentifier, TPZCompEl::Mesh(), and TPZCompEl::NConnects().
Referenced by HideTheElements(), and operator=().
1.8.13