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_explicit_utilities.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: Peter Wilson
11 //
12 
13 #if !defined(KRATOS_MPM_EXPLICIT_UTILITIES)
14 #define KRATOS_MPM_EXPLICIT_UTILITIES
15 
16 // Project includes
17 #include "includes/model_part.h"
18 #include "includes/element.h"
19 #include "includes/variables.h"
22 
23 namespace Kratos
24 {
27 
34  {
36  typedef std::size_t SizeType;
37 
39  typedef std::size_t IndexType;
40 
44  typedef Node NodeType;
46 
47  void KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateAndAddExplicitInternalForce(const ProcessInfo& rProcessInfo,
48  Element& rElement, const Vector& rMPStress, const double rMPVolume,
49  const SizeType StrainSize, Vector& rRightHandSideVector);
50 
51  void KRATOS_API(PARTICLE_MECHANICS_APPLICATION) UpdateGaussPointExplicit(const ProcessInfo& rCurrentProcessInfo,
52  Element& rElement);
53 
54  void KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateMUSLGridVelocity(const ProcessInfo& rCurrentProcessInfo,
55  Element& rElement);
56 
57  void KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateExplicitKinematics(const ProcessInfo& rCurrentProcessInfo,
58  Element& rElement, Vector& rMPStrain, Matrix& rDeformationGradient,
59  const SizeType StrainSize);
60 
61  inline void GetCartesianDerivatives(std::vector<Matrix>& rDN_DXVec, GeometryType& rGeom);
62  }; // namespace ExplicitIntegrationUtilities
63 } // namespace Kratos
64 #endif /* KRATOS_MPM_EXPLICIT_UTILITIES defined */
Base class for all Elements.
Definition: element.h:60
Geometry base class.
Definition: geometry.h:71
MeshType::ElementsContainerType ElementsContainerType
Element container. A vector set of Elements with their Id's as key.
Definition: model_part.h:168
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class defines the node.
Definition: node.h:65
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
void CalculateMUSLGridVelocity(const ProcessInfo &rCurrentProcessInfo, Element &rElement)
Definition: mpm_explicit_utilities.cpp:224
ModelPart::NodesContainerType NodesArrayType
Definition: mpm_explicit_utilities.h:43
Node NodeType
Definition: mpm_explicit_utilities.h:44
void CalculateExplicitKinematics(const ProcessInfo &rCurrentProcessInfo, Element &rElement, Vector &rMPStrain, Matrix &rDeformationGradient, const SizeType StrainSize)
Definition: mpm_explicit_utilities.cpp:264
void GetCartesianDerivatives(std::vector< Matrix > &rDN_DXVec, GeometryType &rGeom)
Definition: mpm_explicit_utilities.cpp:352
void UpdateGaussPointExplicit(const ProcessInfo &rCurrentProcessInfo, Element &rElement)
Definition: mpm_explicit_utilities.cpp:117
std::size_t SizeType
The size type definition.
Definition: mpm_explicit_utilities.h:36
ModelPart::ElementsContainerType ElementsArrayType
The arrays of elements and nodes.
Definition: mpm_explicit_utilities.h:42
Geometry< NodeType > GeometryType
Definition: mpm_explicit_utilities.h:45
void CalculateAndAddExplicitInternalForce(const ProcessInfo &rProcessInfo, Element &rElement, const Vector &rMPStress, const double rMPVolume, const SizeType StrainSize, Vector &rRightHandSideVector)
Definition: mpm_explicit_utilities.cpp:18
std::size_t IndexType
The index type definition.
Definition: mpm_explicit_utilities.h:39
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
This namespace includes several utilities necessaries for the computation of the explicit integration...