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.
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_AUSAS_MODIFIED_SHAPE_FUNCTIONS)
14 #define KRATOS_AUSAS_MODIFIED_SHAPE_FUNCTIONS
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 namespace Kratos
24 {
27 
31 
35 
39 
40 class KRATOS_API(KRATOS_CORE) AusasModifiedShapeFunctions : public ModifiedShapeFunctions
41 {
42 public:
43 
46 
49 
50  // General type definitions
56 
59 
63 
67 
69  AusasModifiedShapeFunctions(const GeometryPointerType rpInputGeometry, const Vector& rNodalDistances);
70 
73 
77 
81 
85 
87  std::string Info() const override;
88 
90  void PrintInfo(std::ostream& rOStream) const override;
91 
93  void PrintData(std::ostream& rOStream) const override;
94 
98 
102 
104 protected:
107 
111 
115 
119 
120  void SetCondensationMatrix(Matrix& rIntPointCondMatrix) override
121  {
122  KRATOS_ERROR << "\'SetCondensationMatrix\' cannot be used with the Ausas FE space. Use either \'SetPositiveSideCondensationMatrix\' or \'SetNegativeSideCondensationMatrix\' instead." << std::endl;
123  }
124 
125  void SetPositiveSideCondensationMatrix(Matrix& rPosSideCondMatrix) override
126  {
127  KRATOS_ERROR << "Calling Ausas base class \'SetPositiveSideCondensationMatrix\'. Call the derived class one instead." << std::endl;
128  }
129 
130  void SetNegativeSideCondensationMatrix(Matrix& rNegSideCondMatrix) override
131  {
132  KRATOS_ERROR << "Calling Ausas base class \'SetNegativeSideCondensationMatrix\'. Call the derived class one instead." << std::endl;
133  }
134 
144  void SetPositiveSideCondensationMatrix(
145  Matrix& rPosSideCondMatrix,
146  const std::vector<int>& rEdgeNodeI,
147  const std::vector<int>& rEdgeNodeJ,
148  const std::vector<int>& rSplitEdges);
149 
159  void SetNegativeSideCondensationMatrix(
160  Matrix& rNegSideCondMatrix,
161  const std::vector<int>& rEdgeNodeI,
162  const std::vector<int>& rEdgeNodeJ,
163  const std::vector<int>& rSplitEdges);
164 
168 
172 
176 
178 
179 private:
182 
186 
190 
194 
198 
202 
206 
210 
213 
216  ModifiedShapeFunctions(rOther.GetInputGeometry(), rOther.GetNodalDistances()) {
217  };
218 
220 
221 };// class AusasModifiedShapeFunctions
222 
223 }
224 #endif /* KRATOS_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
BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: ausas_modified_shape_functions.h:55
BaseType::GeometryType GeometryType
Definition: ausas_modified_shape_functions.h:52
KRATOS_CLASS_POINTER_DEFINITION(AusasModifiedShapeFunctions)
Pointer definition of AusasModifiedShapeFunctions.
void SetPositiveSideCondensationMatrix(Matrix &rPosSideCondMatrix) override
Set the Positive Side Condensation Matrix object This function sets the positive side condensation ma...
Definition: ausas_modified_shape_functions.h:125
BaseType::IntegrationPointType IntegrationPointType
Definition: ausas_modified_shape_functions.h:60
BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: ausas_modified_shape_functions.h:62
BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: ausas_modified_shape_functions.h:61
BaseType::IntegrationMethodType IntegrationMethodType
Definition: ausas_modified_shape_functions.h:54
BaseType::IndexedPointGeometryType IndexedPointGeometryType
Definition: ausas_modified_shape_functions.h:57
ModifiedShapeFunctions BaseType
Definition: ausas_modified_shape_functions.h:51
void SetNegativeSideCondensationMatrix(Matrix &rNegSideCondMatrix) override
Set the Negative Side Condensation Matrix object This function sets the negative side condensation ma...
Definition: ausas_modified_shape_functions.h:130
void SetCondensationMatrix(Matrix &rIntPointCondMatrix) override
Definition: ausas_modified_shape_functions.h:120
BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
Definition: ausas_modified_shape_functions.h:58
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
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21