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_grid_line_load_condition_2d.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: Bodhinanda Chandra
11 //
12 
13 
14 // System includes
15 #if !defined(KRATOS_MPM_GRID_LINE_LOAD_CONDITION_2D_H_INCLUDED )
16 #define KRATOS_MPM_GRID_LINE_LOAD_CONDITION_2D_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 
63  typedef Vector RowMatrix;
64 
68 
70  MPMGridLineLoadCondition2D( IndexType NewId, GeometryType::Pointer pGeometry );
71  MPMGridLineLoadCondition2D( IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties );
72 
74  ~MPMGridLineLoadCondition2D() override;
75 
79 
80 
84 
85  Condition::Pointer Create(
86  IndexType NewId,
87  GeometryType::Pointer pGeometry,
88  PropertiesType::Pointer pProperties
89  ) const override;
90 
91  Condition::Pointer Create(
92  IndexType NewId,
93  NodesArrayType const& ThisNodes,
94  PropertiesType::Pointer pProperties
95  ) const override;
96 
100 
101 
105 
106 
110 
112 // virtual String Info() const;
113 
115 // virtual void PrintInfo(std::ostream& rOStream) const;
116 
118 // virtual void PrintData(std::ostream& rOStream) const;
119 
120 
124 
125 
127 
128 protected:
131 
132 
136 
137 
141 
142 
146 
155  void CalculateAll(
156  MatrixType& rLeftHandSideMatrix,
157  VectorType& rRightHandSideVector,
158  const ProcessInfo& rCurrentProcessInfo,
159  bool CalculateStiffnessMatrixFlag,
160  bool CalculateResidualVectorFlag
161  ) override;
162 
163  void CalculateAndSubKp(
164  Matrix& rK,
165  const Matrix& rDN_De,
166  const RowMatrix& rN,
167  const double Pressure,
168  const double IntegrationWeight
169  );
170 
172  VectorType& rRightHandSideVector,
173  const RowMatrix& N,
174  const array_1d<double, 3>& Normal,
175  const double Pressure,
176  const double IntegrationWeight
177  );
178 
182 
183 
187 
188 
192 
193  // A protected default constructor necessary for serialization
195 
197 
198 private:
201 
205 
209 
213 
214 
218 
219 
223 
227 
228  friend class Serializer;
229 
230  void save( Serializer& rSerializer ) const override
231  {
233  }
234 
235  void load( Serializer& rSerializer ) override
236  {
238  }
239 
240 
244 
246  //MPMGridLineLoadCondition2D& operator=(const MPMGridLineLoadCondition2D& rOther);
247 
249  //MPMGridLineLoadCondition2D(const MPMGridLineLoadCondition2D& rOther);
250 
251 
253 
254 }; // Class MPMGridLineLoadCondition2D
255 
259 
260 
264 
265 
267 /* inline std::istream& operator >> (std::istream& rIStream,
268  MPMGridLineLoadCondition2D& rThis);
269 */
271 /* inline std::ostream& operator << (std::ostream& rOStream,
272  const MPMGridLineLoadCondition2D& rThis)
273  {
274  rThis.PrintInfo(rOStream);
275  rOStream << std::endl;
276  rThis.PrintData(rOStream);
277 
278  return rOStream;
279  }*/
281 
282 } // namespace Kratos.
283 
284 #endif // KRATOS_MPM_GRID_LINE_LOAD_CONDITION_2D_H_INCLUDED defined
285 
286 
std::size_t IndexType
Definition: flags.h:74
Definition: mpm_grid_base_load_condition.h:50
Short class definition.
Definition: mpm_grid_line_load_condition_2d.h:55
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) const override
It creates a new condition pointer.
Definition: mpm_grid_line_load_condition_2d.cpp:46
void CalculateAndSubKp(Matrix &rK, const Matrix &rDN_De, const RowMatrix &rN, const double Pressure, const double IntegrationWeight)
Definition: mpm_grid_line_load_condition_2d.cpp:236
Vector RowMatrix
Definition: mpm_grid_line_load_condition_2d.h:63
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(MPMGridLineLoadCondition2D)
Counted pointer of MPMGridLineLoadCondition2D.
~MPMGridLineLoadCondition2D() override
Destructor.
Definition: mpm_grid_line_load_condition_2d.cpp:70
void CalculateAll(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, bool CalculateStiffnessMatrixFlag, bool CalculateResidualVectorFlag) override
Definition: mpm_grid_line_load_condition_2d.cpp:77
MPMGridLineLoadCondition2D()
Definition: mpm_grid_line_load_condition_2d.h:194
void CalculateAndAddPressureForce(VectorType &rRightHandSideVector, const RowMatrix &N, const array_1d< double, 3 > &Normal, const double Pressure, const double IntegrationWeight)
Definition: mpm_grid_line_load_condition_2d.cpp:279
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
#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
N
Definition: sensitivityMatrix.py:29