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_ausas_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_AUSAS_MODIFIED_SHAPE_FUNCTIONS)
14 #define KRATOS_TRIANGLE_2D_3_AUSAS_MODIFIED_SHAPE_FUNCTIONS
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
23 
24 namespace Kratos
25 {
28 
32 
36 
40 
42 {
43 public:
44 
47 
50 
51  // General type definitions
57 
60 
64 
68 
70  Triangle2D3AusasModifiedShapeFunctions(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 protected:
113 
117 
119 
123 
127 
128  void SetPositiveSideCondensationMatrix(Matrix& rPosSideCondMatrix) override;
129 
130  void SetNegativeSideCondensationMatrix(Matrix& rNegSideCondMatrix) override;
131 
135 
139 
143 
145 
146 private:
149 
153 
157 
161 
165 
169 
173 
177 
180 
183  AusasModifiedShapeFunctions(rOther.GetInputGeometry(), rOther.GetNodalDistances()),
184  mpTriangleSplitter(new DivideTriangle2D3<Node>(*rOther.GetInputGeometry(), rOther.GetNodalDistances())) {
185 
186  // Perform the element splitting
187  mpTriangleSplitter->GenerateDivision();
188  mpTriangleSplitter->GenerateIntersectionsSkin();
189  };
190 
192 
193 };// class Triangle2D3AusasModifiedShapeFunctions
194 
195 }
196 #endif /* KRATOS_TRIANGLE_2D_3_AUSAS_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: ausas_modified_shape_functions.h:41
BaseType::GeometryPointerType GeometryPointerType
Definition: ausas_modified_shape_functions.h:53
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
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_ausas_modified_shape_functions.h:42
DivideTriangle2D3< Node >::Pointer mpTriangleSplitter
Definition: triangle_2d_3_ausas_modified_shape_functions.h:118
BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:63
BaseType::GeometryPointerType GeometryPointerType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:54
BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:56
BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:59
BaseType::GeometryType GeometryType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:53
BaseType::IntegrationMethodType IntegrationMethodType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:55
BaseType::IntegrationPointType IntegrationPointType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:61
AusasModifiedShapeFunctions BaseType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:52
BaseType::IndexedPointGeometryType IndexedPointGeometryType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:58
BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: triangle_2d_3_ausas_modified_shape_functions.h:62
KRATOS_CLASS_POINTER_DEFINITION(Triangle2D3AusasModifiedShapeFunctions)
Pointer definition of Triangle2D3AusasModifiedShapeFunctions.
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21