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.
mpm_particle_point_load_condition.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: Veronika Singer
11 //
12 
13 
14 // System includes
15 #if !defined(KRATOS_MPM_PARTICLE_POINT_LOAD_CONDITION_H_INCLUDED )
16 #define KRATOS_MPM_PARTICLE_POINT_LOAD_CONDITION_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "includes/define.h"
25 #include "includes/variables.h"
26 
27 namespace Kratos
28 {
29 
32 
36 
40 
44 
48 
50 
55 {
56 public:
59 
62 
66 
69  IndexType NewId,
70  GeometryType::Pointer pGeometry
71  );
72 
74  IndexType NewId,
75  GeometryType::Pointer pGeometry,
76  PropertiesType::Pointer pProperties
77  );
78 
81 
85 
86 
90 
91  Condition::Pointer Create(
92  IndexType NewId,
93  GeometryType::Pointer pGeometry,
94  PropertiesType::Pointer pProperties
95  ) const override;
96 
97  Condition::Pointer Create(
98  IndexType NewId,
99  NodesArrayType const& ThisNodes,
100  PropertiesType::Pointer pProperties
101  ) const override;
102 
106 
108  std::vector<array_1d<double, 3 > >& rValues,
109  const ProcessInfo& rCurrentProcessInfo) override;
110 
112  const std::vector<array_1d<double, 3 > >& rValues,
113  const ProcessInfo& rCurrentProcessInfo) override;
114 
118 
119 
123 
125 // virtual String Info() const;
126 
128 // virtual void PrintInfo(std::ostream& rOStream) const;
129 
131 // virtual void PrintData(std::ostream& rOStream) const;
132 
133 
137 
138 
140 
141 protected:
144 
145 
149 
150 
154 
155 
159 
168  void CalculateAll(
169  MatrixType& rLeftHandSideMatrix,
170  VectorType& rRightHandSideVector,
171  const ProcessInfo& rCurrentProcessInfo,
172  bool CalculateStiffnessMatrixFlag,
173  bool CalculateResidualVectorFlag
174  ) override;
175 
179  double GetPointLoadIntegrationWeight() override;
180 
181  virtual void MPMShapeFunctionPointValuesKinematic(Vector& rResult) const;
182 
186  void FinalizeNonLinearIteration(const ProcessInfo& rCurrentProcessInfo) override;
187 
192  void FinalizeSolutionStep(const ProcessInfo& CurrentProcessInfo) override;
193 
197  Matrix& CalculateNodalForce(Matrix & rNodalForce, const ProcessInfo& rCurrentProcessInfo);
198 
202 
206 
207 
211 
212  // A protected default constructor necessary for serialization
214 
216 
217 private:
220 
224 
225  array_1d<double, 3> m_point_load;
226  array_1d<double, 3> m_delta_xg;
227 
231 
235 
236 
240 
241 
245 
249 
250  friend class Serializer;
251 
252  void save( Serializer& rSerializer ) const override
253  {
255  rSerializer.save("point_load", m_point_load);
256  rSerializer.save("delta_xg", m_delta_xg);
257 
258  }
259 
260  void load( Serializer& rSerializer ) override
261  {
263  rSerializer.load("point_load", m_point_load);
264  rSerializer.load("delta_xg", m_delta_xg);
265  }
266 
267 
268 }; // Class MPMParticlePointLoadCondition
269 
273 
274 
278 
279 } // namespace Kratos.
280 
281 #endif // KRATOS_MPM_PARTICLE_POINT_LOAD_CONDITION_H_INCLUDED defined
std::size_t IndexType
Definition: flags.h:74
Short class definition.
Definition: mpm_particle_base_load_condition.h:55
Short class definition.
Definition: mpm_particle_point_load_condition.h:55
double GetPointLoadIntegrationWeight() override
Definition: mpm_particle_point_load_condition.cpp:190
void SetValuesOnIntegrationPoints(const Variable< array_1d< double, 3 > > &rVariable, const std::vector< array_1d< double, 3 > > &rValues, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_particle_point_load_condition.cpp:270
~MPMParticlePointLoadCondition() override
Destructor.
Definition: mpm_particle_point_load_condition.cpp:62
KRATOS_CLASS_POINTER_DEFINITION(MPMParticlePointLoadCondition)
Counted pointer of MPMParticlePointLoadCondition.
void FinalizeNonLinearIteration(const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_particle_point_load_condition.cpp:66
void FinalizeSolutionStep(const ProcessInfo &CurrentProcessInfo) override
Definition: mpm_particle_point_load_condition.cpp:215
Matrix & CalculateNodalForce(Matrix &rNodalForce, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_particle_point_load_condition.cpp:109
virtual void MPMShapeFunctionPointValuesKinematic(Vector &rResult) const
Definition: mpm_particle_point_load_condition.cpp:195
void CalculateAll(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, bool CalculateStiffnessMatrixFlag, bool CalculateResidualVectorFlag) override
Definition: mpm_particle_point_load_condition.cpp:135
void CalculateOnIntegrationPoints(const Variable< array_1d< double, 3 > > &rVariable, std::vector< array_1d< double, 3 > > &rValues, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_particle_point_load_condition.cpp:252
MPMParticlePointLoadCondition()
Definition: mpm_particle_point_load_condition.h:213
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) const override
It creates a new condition pointer.
Definition: mpm_particle_point_load_condition.cpp:46
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
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307