NeoPZ
TPZCompMeshTools.h
Go to the documentation of this file.
1 //
2 // TPZCompMeshTools.h
3 // PZ
4 //
5 // Created by Philippe Devloo on 6/4/15.
6 //
7 //
8 
9 #ifndef __PZ__TPZCompMeshTools__
10 #define __PZ__TPZCompMeshTools__
11 
12 #include <stdio.h>
13 #include "pzcmesh.h"
14 #include "pzfunction.h"
15 #include "TPZRenumbering.h"
16 
19 {
20 public:
21 
22  static void AddHDivPyramidRestraints(TPZCompMesh *cmesh);
23 
24  static void ExpandHDivPyramidRestraints(TPZCompMesh *cmesh);
25 
26  static void LoadSolution(TPZCompMesh *cpressure, TPZFunction<STATE> &Forcing);
27 
29  static void GroupElements(TPZCompMesh *cmesh, std::set<int64_t> elbasis, std::set<int64_t> &grouped);
30 
32  static void PutinSubmeshes(TPZCompMesh *cmesh, std::set<int64_t> &elindices, int64_t &index, bool KeepOneLagrangian);
33 
35  static void PutinSubmeshes(TPZCompMesh *cmesh, std::map<int64_t,std::set<int64_t> >&elindices, std::map<int64_t,int64_t> &indices, bool KeepOneLagrangian);
36 
38  static void GroupElements(TPZCompMesh *cmesh);
39 
41  static void CreatedCondensedElements(TPZCompMesh *cmesh, bool KeepOneLagrangian, bool keepmatrix = true);
42 
44  static void UnGroupElements(TPZCompMesh *cmesh);
45 
47  static void UnCondensedElements(TPZCompMesh *cmesh);
48 
51  static void ComputeDifferenceNorm(TPZCompMesh *mesh1, TPZCompMesh *mesh2, TPZVec<STATE> &square_errors);
52 
54  static void AdjustFluxPolynomialOrders(TPZCompMesh *fluxmesh, int hdivplusplus);
55 
57  static void SetPressureOrders(TPZCompMesh *fluxmesh, TPZCompMesh *pressuremesh);
58 
59  static void OptimizeBandwidth(TPZCompMesh *cmesh);
60 
61 };
62 
63 #endif /* defined(__PZ__TPZCompMeshTools__) */
static void CreatedCondensedElements(TPZCompMesh *cmesh, bool KeepOneLagrangian, bool keepmatrix=true)
created condensed elements for the elements that have internal nodes
static void GroupElements(TPZCompMesh *cmesh, std::set< int64_t > elbasis, std::set< int64_t > &grouped)
group the elements joining boundary elements and their neighbours
Contains the TPZRenumbering class which defines the behavior to implementing node sequence numbering ...
static void LoadSolution(TPZCompMesh *cpressure, TPZFunction< STATE > &Forcing)
static void AddHDivPyramidRestraints(TPZCompMesh *cmesh)
static void ExpandHDivPyramidRestraints(TPZCompMesh *cmesh)
static void OptimizeBandwidth(TPZCompMesh *cmesh)
static void UnCondensedElements(TPZCompMesh *cmesh)
uncondensed elements for the elements that have internal nodes
static void PutinSubmeshes(TPZCompMesh *cmesh, std::set< int64_t > &elindices, int64_t &index, bool KeepOneLagrangian)
Put the element set into a subcompmesh and make the connects internal.
static void SetPressureOrders(TPZCompMesh *fluxmesh, TPZCompMesh *pressuremesh)
set the pressure order acording to the order of internal connect of the elements of the fluxmesh ...
class whose methods implement a functionality on a computational mesh
Contains declaration of TPZCompMesh class which is a repository for computational elements...
static void ComputeDifferenceNorm(TPZCompMesh *mesh1, TPZCompMesh *mesh2, TPZVec< STATE > &square_errors)
void Forcing(const TPZVec< REAL > &pt, TPZVec< STATE > &disp)
Definition: main.cpp:508
static void UnGroupElements(TPZCompMesh *cmesh)
ungroup all embedded elements of the computational mesh
static void AdjustFluxPolynomialOrders(TPZCompMesh *fluxmesh, int hdivplusplus)
adjust the polynomial orders of the hdiv elements such that the internal order is higher than the sid...
Implements computational mesh. Computational Mesh.
Definition: pzcmesh.h:47