NeoPZ
pzbuildmultiphysicsmesh.h
Go to the documentation of this file.
1 
6 #ifndef PZBUILDMULTIPHYSICSMESHH
7 #define PZBUILDMULTIPHYSICSMESHH
8 
9 #include <iostream>
10 
11 #include "pzcompel.h"
12 #include "pzmultiphysicselement.h"
14 
21 typedef std::pair<TPZCompMesh *, int64_t> atomic_index;
22 
24 
25 public:
27 
29 
35  static void AddElements(TPZVec<TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh);
36 
37  /*
38  * @brief Method to add connects in the mesh multiphisics
39  * @param cmeshVec [in]: pointer to an vector of meshes
40  * @param MFMesh [out]: my mesh multiphysics
41  */
42  static void AddConnects(TPZVec<TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh);
43 
44  /*
45  * @brief Methodo to append connects from mesh to a multiphysics mesh
46  * @param cmesh: pointer to an computational mesh
47  * @param MFMesh [out]: my mesh multiphysics
48  */
49  static void AppendConnects(TPZCompMesh *cmesh, TPZCompMesh *MFMesh);
50 
56  static void TransferFromMeshes(TPZVec<TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh);
57 
64  {
65  TPZManVector<TPZCompMesh *,4> meshVecPtr(cmeshVec.size());
66  for (int i=0; i<cmeshVec.size(); i++) {
67  meshVecPtr[i] = cmeshVec[i].operator->();
68  }
69  TransferFromMeshes(meshVecPtr, MFMesh.operator->());
70  }
71 
77  static void TransferFromMultiPhysics(TPZVec<TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh);
78 
85  {
86  TPZManVector<TPZCompMesh *,4> meshVecPtr(cmeshVec.size());
87  for (int i=0; i<cmeshVec.size(); i++) {
88  meshVecPtr[i] = cmeshVec[i].operator->();
89  }
90  TransferFromMultiPhysics(meshVecPtr, MFMesh.operator->());
91  }
92 
93 
97  static void ShowShape(TPZVec<TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh, TPZAnalysis &analysis, const std::string &filename, TPZVec<int64_t> &equationindices);
105  static void BuildHybridMesh(TPZCompMesh *cmesh, std::set<int> &MaterialIDs, std::set<int> &BCMaterialIds, int LagrangeMat, int InterfaceMat);
106 
112  static void UniformRefineCompMesh(TPZCompMesh *cMesh, int ndiv, bool isLagrMult=true);
113 
119  static void UniformRefineCompEl(TPZCompMesh *cMesh, int64_t indexEl, bool isLagrMult);
120 
127  static void AddWrap(TPZMultiphysicsElement *mfcel, int matskeleton, TPZStack< TPZStack<TPZMultiphysicsElement *,7> > &ListGroupEl);
128 
133  static void ComputeAtomicIndexes(TPZCompMesh *mesh, TPZVec<atomic_index> &indexes);
134 };
135 
136 #endif
filename
Definition: stats.py:82
Implements a vector class which allows to use external storage provided by the user. Utility.
Definition: pzquad.h:16
std::pair< TPZCompMesh *, int64_t > atomic_index
This class has methods to build the mesh multiphysics.
static void AddElements(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh)
Creating multiphysic elements into mphysics computational mesh. Method to add elements in the mesh mu...
Contains declaration of TPZCompEl class which defines the interface of a computational element...
static void TransferFromMultiPhysics(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh)
Transfer information from a specific mesh multiphysics for the current specific set of meshes...
Contains the declaration of the TPZMultiphysicsElement class. This class is abstract.
static void AddConnects(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh)
static void AppendConnects(TPZCompMesh *cmesh, TPZCompMesh *MFMesh)
int64_t size() const
Returns the number of elements of the vector.
Definition: pzvec.h:196
Implements the sequence of actions to perform a finite element analysis. Analysis.
Definition: pzanalysis.h:32
static void TransferFromMeshes(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh)
Transfer information from a specific set of meshes for the current mesh multiphysics.
static void UniformRefineCompMesh(TPZCompMesh *cMesh, int ndiv, bool isLagrMult=true)
Uniform refinement of the computational mesh.
static void TransferFromMeshes(TPZVec< TPZAutoPointer< TPZCompMesh > > &cmeshVec, TPZAutoPointer< TPZCompMesh > MFMesh)
Transfer information from a specific set of meshes for the current mesh multiphysics.
static void UniformRefineCompEl(TPZCompMesh *cMesh, int64_t indexEl, bool isLagrMult)
Uniform refinement of the computational element.
static void BuildHybridMesh(TPZCompMesh *cmesh, std::set< int > &MaterialIDs, std::set< int > &BCMaterialIds, int LagrangeMat, int InterfaceMat)
Creating computational mesh with interface elements.
This class implements a stack object. Utility.
Definition: pzcheckmesh.h:14
Implements computational mesh. Computational Mesh.
Definition: pzcmesh.h:47
static void TransferFromMultiPhysics(TPZVec< TPZAutoPointer< TPZCompMesh > > &cmeshVec, TPZAutoPointer< TPZCompMesh > MFMesh)
Transfer information from a specific mesh multiphysics for the current specific set of meshes...
static void ShowShape(TPZVec< TPZCompMesh *> &cmeshVec, TPZCompMesh *MFMesh, TPZAnalysis &analysis, const std::string &filename, TPZVec< int64_t > &equationindices)
Show shape functions associated with connects of a multiphysics mesh.
static void AddWrap(TPZMultiphysicsElement *mfcel, int matskeleton, TPZStack< TPZStack< TPZMultiphysicsElement *, 7 > > &ListGroupEl)
Create skeleton elements of the wrap of me.
static void ComputeAtomicIndexes(TPZCompMesh *mesh, TPZVec< atomic_index > &indexes)