NeoPZ
PrismExtend.h
Go to the documentation of this file.
1 
6 #ifndef TTPZGEOMPRISMEXTENDHPP
7 #define TTPZGEOMPRISMEXTENDHPP
8 
9 #pragma once
10 
11 #include "pzstack.h"
12 #include "pztrnsform.h"
13 #include "pzquad.h"
14 #include "tpzprinteg.h"
15 #include "tpzpoint.h"
16 #include "pzaxestools.h"
17 
18 namespace pztopology {
19 
24  template<class TFather>
25  class Pr :
26  public TFather
27  {
28  public:
29 
31  enum {NCornerNodes = 2*TFather::NCornerNodes, NSides = 3*TFather::NSides, Dimension = TFather::Dimension+1};
32 
34  Pr();
35 
37  virtual ~Pr();
38 
45  static int SideDimension(int side);
46 
48  static void LowerDimensionSides(int side,TPZStack<int> &smallsides);
50  static void LowerDimensionSides(int side,TPZStack<int> &smallsides, int DimTarget);
51 
57  static void HigherDimensionSides(int side, TPZStack<int> &high);
61  static int NSideNodes(int side);
65  static int SideNodeLocId(int side, int node);
69  static int NumSides();
70 
74  static int NContainedSides(int side);
78  static int ContainedSideLocId(int side, int c);
79 
85  static void CenterPoint(int side, TPZVec<REAL> &center);
86 
96  static TPZTransform<> SideToSideTransform(int sidefrom, int sideto);
103  static TPZTransform<> TransformSideToElement(int side);
110  static TPZTransform<> TransformElementToSide(int side);
111 
116  static void MapToSide(int side, TPZVec<REAL> &InternalPar, TPZVec<REAL> &SidePar, TPZFMatrix<REAL> &JacToSide);
117 
128  static TPZIntPoints *CreateSideIntegrationRule(int side, int order);
130  typedef typename TFather::IntruleType fatintruletype;
133 
139  static std::string StrType();
140 
144  static std::string StrType(int side);
145 
147  static REAL RefElVolume();
148 
152  static void Diagnostic();
153  };
154 
155 }
156 
157 #endif
Contains the TPZInt1d, TPZIntTriang, TPZIntQuad, TPZIntCube3D, TPZIntTetra3D, TPZIntPyram3D and TPZIn...
Contains the TPZPrInteg class which defines prismatic extension of an integration rule...
static TPZIntPoints * CreateSideIntegrationRule(int side, int order)
Create an integration rule over side.
static TPZTransform TransformElementToSide(int side)
Returns the transformation which transform a point from the interior of the element to the side...
Contains the TPZPoint class which defines the topology of a point.
static REAL RefElVolume()
Volume of the master element (measure)
static int ContainedSideLocId(int side, int c)
Returns the local connect number of the connect "c" along side "side".
virtual ~Pr()
Default destructor.
Definition: PrismExtend.cpp:23
Abstract class defining integration rules. Numerical Integration.
Definition: tpzintpoints.h:19
static TPZTransform SideToSideTransform(int sidefrom, int sideto)
Returns the transformation which takes a point from the side sidefrom ot the side sideto...
TFather::IntruleType fatintruletype
Typedef to numerical integration rule.
Definition: PrismExtend.h:130
Groups all classes defining the structure of the master element.
Definition: PrismExtend.cpp:15
static int SideDimension(int side)
Returns the dimension of the side.
Definition: PrismExtend.cpp:51
TPZPrInteg< fatintruletype > IntruleType
Typedef to graphical element type.
Definition: PrismExtend.h:132
A simple stack.
static void MapToSide(int side, TPZVec< REAL > &InternalPar, TPZVec< REAL > &SidePar, TPZFMatrix< REAL > &JacToSide)
Computes the linear map from an internal point to the parameter space of the side returns the jacobia...
static int NSideNodes(int side)
Returns the number of nodes (not connectivities) associated with a side.
Definition: PrismExtend.cpp:28
static int SideNodeLocId(int side, int node)
Returns the local node number of the node "node" along side "side".
Definition: PrismExtend.cpp:36
Defines the Prismatic extension of a topology. Topology.
Definition: PrismExtend.h:25
Contains declaration of the TPZAxesTools class which implements verifications over axes...
static void Diagnostic()
Uses log4cxx to print the results of all methods.
static std::string StrType()
Returns the type of the element as specified in file pzeltype.h.
Contains the TPZTransform<> class which implements an affine transformation between points in paramet...
Implements an affine transformation between points in parameter space. Topology Utility.
Definition: pzmganalysis.h:14
static int NumSides()
Returns the number of connects of the element (3)
Pr()
Default constructor.
Definition: PrismExtend.cpp:18
Prismatic extension of an integration rule. Numerical Integration.
Definition: tpzprinteg.h:23
static void HigherDimensionSides(int side, TPZStack< int > &high)
Returns all sides whose closure contains side.
Definition: PrismExtend.cpp:63
static TPZTransform TransformSideToElement(int side)
Returns the transformation which transform a point from the side to the interior of the element...
static void CenterPoint(int side, TPZVec< REAL > &center)
Returns the barycentric coordinates in the master element space of the original element.
Definition: PrismExtend.cpp:93
static void LowerDimensionSides(int side, TPZStack< int > &smallsides)
Get all sides with lower dimension on side.
static int NContainedSides(int side)
Returns the number of nodes (not connectivities) associated with a side.