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.
surface_load_from_DEM_condition_3d.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: Ignasi de Pouplana
11 //
12 
13 #if !defined(KRATOS_DEM_SURFACE_LOAD_FROM_DEM_CONDITION_3D_H_INCLUDED )
14 #define KRATOS_DEM_SURFACE_LOAD_FROM_DEM_CONDITION_3D_H_INCLUDED
15 
16 // Project includes
17 #include "includes/define.h"
18 #include "geometries/geometry.h"
19 #include "utilities/math_utils.h"
21 
22 // Application includes
24 
25 
26 namespace Kratos
27 {
28 
31 
35 
39 
43 
47 
48 class KRATOS_API(DEM_STRUCTURES_COUPLING_APPLICATION) SurfaceLoadFromDEMCondition3D
49  : public SurfaceLoadCondition3D
50 {
51 public:
52 
55 
57 
58  // Counted pointer of SurfaceLoadFromDEMCondition3D
60 
64 
65  // Constructor void
67 
68  // Constructor using an array of nodes
70  IndexType NewId,
71  GeometryType::Pointer pGeometry
72  );
73 
74  // Constructor using an array of nodes with properties
76  IndexType NewId,
77  GeometryType::Pointer pGeometry,
78  PropertiesType::Pointer pProperties
79  );
80 
81  // Destructor
83 
87 
88 
92 
93  // Name Operations
94  Condition::Pointer Create(
95  IndexType NewId,
96  GeometryType::Pointer pGeom,
97  PropertiesType::Pointer pProperties
98  ) const override;
99 
100  Condition::Pointer Create(
101  IndexType NewId,
102  NodesArrayType const& ThisNodes,
103  PropertiesType::Pointer pProperties
104  ) const override;
105 
112  Condition::Pointer Clone (
113  IndexType NewId,
114  NodesArrayType const& ThisNodes
115  ) const override;
116 
120  GeometryData::IntegrationMethod GetIntegrationMethod() const override;
121 
125 
126 
130 
131 
135 
139 
140 protected:
141 
144 
148 
152 
156 
165  void CalculateAll(
166  MatrixType& rLeftHandSideMatrix,
167  VectorType& rRightHandSideVector,
168  const ProcessInfo& rCurrentProcessInfo,
169  const bool CalculateStiffnessMatrixFlag,
170  const bool CalculateResidualVectorFlag
171  ) override;
172 
173  virtual void InterpolateSurfaceLoad(array_1d<double,3>& r_surface_load,
174  const Matrix& n_container,
175  const unsigned int& number_of_nodes,
176  const unsigned int& g_point);
177 
181 
185 
189 
190 private:
193 
197 
201 
205 
209 
213 
217 
221 
225 
226  friend class Serializer;
227 
228  void save( Serializer& rSerializer ) const override
229  {
231  }
232 
233  void load( Serializer& rSerializer ) override
234  {
236  }
237 
238 
239 }; // class SurfaceLoadFromDEMCondition3D.
240 
243 
247 
248 } // namespace Kratos.
249 
250 #endif // KRATOS_SURFACE_LOAD_FROM_DEM_CONDITION_3D_H_INCLUDED defined
std::size_t IndexType
Definition: flags.h:74
IntegrationMethod
Definition: geometry_data.h:76
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
This class is the responsible to add the contributions of the RHS and LHS of the surface loads of the...
Definition: surface_load_condition_3d.h:53
Definition: surface_load_from_DEM_condition_3d.h:50
KRATOS_CLASS_POINTER_DEFINITION(SurfaceLoadFromDEMCondition3D)
SurfaceLoadCondition3D BaseType
Definition: surface_load_from_DEM_condition_3d.h:56
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307