KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
triangle_2d_3_modified_shape_functions.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Ruben Zorrilla
11 //
12 
13 #if !defined(KRATOS_TRIANGLE_2D_3_MODIFIED_SHAPE_FUNCTIONS)
14 #define KRATOS_TRIANGLE_2D_3_MODIFIED_SHAPE_FUNCTIONS
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
23 
24 namespace Kratos
25 {
28 
32 
36 
40 
41 class KRATOS_API(KRATOS_CORE) Triangle2D3ModifiedShapeFunctions : public ModifiedShapeFunctions
42 {
43 public:
44 
47 
50 
51  // General type definitions
57 
60 
64 
68 
70  Triangle2D3ModifiedShapeFunctions(const GeometryPointerType rpInputGeometry, const Vector& rNodalDistances);
71 
74 
78 
82 
86 
88  std::string Info() const override;
89 
91  void PrintInfo(std::ostream& rOStream) const override;
92 
94  void PrintData(std::ostream& rOStream) const override;
95 
99 
103 
107  const DivideGeometry<Node>::Pointer pGetSplittingUtil() const override;
108 
110 
111 protected:
114 
118 
122 
126 
127  void SetCondensationMatrix(Matrix& rIntPointCondMatrix) override;
128 
129  void SetPositiveSideCondensationMatrix(Matrix& rPosSideCondMatrix) override;
130 
131  void SetNegativeSideCondensationMatrix(Matrix& rNegSideCondMatrix) override;
132 
136 
140 
144 
146 
147 private:
150 
154 
155  DivideTriangle2D3<Node>::Pointer mpTriangleSplitter;
156 
160 
164 
168 
172 
176 
180 
183 
186  ModifiedShapeFunctions(rOther.GetInputGeometry(), rOther.GetNodalDistances()),
187  mpTriangleSplitter(new DivideTriangle2D3<Node>(*rOther.GetInputGeometry(), rOther.GetNodalDistances())) {
188 
189  // Perform the element splitting
190  mpTriangleSplitter->GenerateDivision();
191  mpTriangleSplitter->GenerateIntersectionsSkin();
192  };
193 
195 
196 };// class Triangle2D3ModifiedShapeFunctions
197 
198 }
199 #endif /* KRATOS_TRIANGLE_2D_3_MODIFIED_SHAPE_FUNCTIONS defined */
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: divide_geometry.h:167
Definition: divide_triangle_2d_3.h:46
void GenerateDivision() override
Definition: divide_triangle_2d_3.cpp:80
void GenerateIntersectionsSkin() override
Definition: divide_triangle_2d_3.cpp:188
IntegrationMethod
Definition: geometry_data.h:76
Geometry base class.
Definition: geometry.h:71
Short class definition.
Definition: integration_point.h:52
Definition: amatrix_interface.h:41
Definition: modified_shape_functions.h:45
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: modified_shape_functions.h:66
GeometryType::Pointer GeometryPointerType
Definition: modified_shape_functions.h:56
DivideGeometry< Node >::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
Definition: modified_shape_functions.h:63
std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
Definition: modified_shape_functions.h:67
This class defines the node.
Definition: node.h:65
Definition: triangle_2d_3_modified_shape_functions.h:42
BaseType::GeometryPointerType GeometryPointerType
Definition: triangle_2d_3_modified_shape_functions.h:54
BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: triangle_2d_3_modified_shape_functions.h:56
ModifiedShapeFunctions BaseType
Definition: triangle_2d_3_modified_shape_functions.h:52
KRATOS_CLASS_POINTER_DEFINITION(Triangle2D3ModifiedShapeFunctions)
Pointer definition of Triangle2D3ModifiedShapeFunctions.
BaseType::GeometryType GeometryType
Definition: triangle_2d_3_modified_shape_functions.h:53
BaseType::IntegrationMethodType IntegrationMethodType
Definition: triangle_2d_3_modified_shape_functions.h:55
BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
Definition: triangle_2d_3_modified_shape_functions.h:59
BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: triangle_2d_3_modified_shape_functions.h:63
BaseType::IntegrationPointType IntegrationPointType
Definition: triangle_2d_3_modified_shape_functions.h:61
BaseType::IndexedPointGeometryType IndexedPointGeometryType
Definition: triangle_2d_3_modified_shape_functions.h:58
BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: triangle_2d_3_modified_shape_functions.h:62
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21