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_generator_utility.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 #ifndef KRATOS_MPM_PARTICLE_GENERATOR_UTILITY
15 #define KRATOS_MPM_PARTICLE_GENERATOR_UTILITY
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
22 #include "includes/model_part.h"
27 
28 
29 namespace Kratos
30 {
31 namespace MPMParticleGeneratorUtility
32 {
33 
34  typedef std::size_t IndexType;
35 
36  typedef std::size_t SizeType;
37 
39 
41 
47 
48 
54 
57 
59  void DetermineIntegrationMethodAndShapeFunctionValues(const GeometryType& rGeom, const SizeType ParticlesPerElement,
60  IntegrationMethod& rIntegrationMethod, Matrix& rN, bool& IsEqualVolumes);
61 
63  void DetermineGeometryIntegrationMethod(const GeometryType& rGeom, const SizeType ParticlesPerCondition,
64  IndexType& rNumPointsPerSpan);
65 
70  template<SizeType TDimension>
71  void GenerateMaterialPointElement( ModelPart& rBackgroundGridModelPart,
72  ModelPart& rInitialModelPart,
73  ModelPart& rMPMModelPart,
74  bool IsMixedFormulation=false);
80  template<SizeType TDimension>
81  void GenerateMaterialPointCondition(ModelPart& rBackgroundGridModelPart,
82  ModelPart& rInitialModelPart,
83  ModelPart& rMPMModelPart);
88  void KRATOS_API(PARTICLE_MECHANICS_APPLICATION) GenerateMaterialPointCondition(
89  ModelPart& rBackgroundGridModelPart,
90  ModelPart& rInitialModelPart,
91  ModelPart& rMPMModelPart);
92 
93 }; // end namespace MPMParticleGeneratorUtility
94 } // end namespace Kratos
95 
96 #endif // KRATOS_MPM_PARTICLE_GENERATOR_UTILITY
97 
98 
IntegrationMethod
Definition: geometry_data.h:76
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
void DetermineIntegrationMethodAndShapeFunctionValues(const GeometryType &rGeom, const SizeType ParticlesPerElement, IntegrationMethod &rIntegrationMethod, Matrix &rN, bool &IsEqualVolumes)
Get integration method and shape function values for the given element.
Definition: mpm_particle_generator_utility.cpp:794
void DetermineGeometryIntegrationMethod(const GeometryType &rGeom, const SizeType ParticlesPerCondition, IndexType &rNumPointsPerSpan)
Get integration method and shape function values for the given condition.
Definition: mpm_particle_generator_utility.cpp:874
Matrix MP33ShapeFunctions()
Function that return matrix of shape function value for 33 particles.
Definition: mpm_particle_generator_utility.cpp:615
void GenerateMaterialPointElement(ModelPart &rBackgroundGridModelPart, ModelPart &rInitialModelPart, ModelPart &rMPMModelPart, bool IsMixedFormulation)
Construct material points or particles from given initial mesh.
Definition: mpm_particle_generator_utility.cpp:30
Geometry< Node > GeometryType
Definition: mpm_particle_generator_utility.h:38
GeometryData::IntegrationMethod IntegrationMethod
Definition: mpm_particle_generator_utility.h:40
Matrix MP16ShapeFunctions()
Function that return matrix of shape function value for 16 particles.
Definition: mpm_particle_generator_utility.cpp:523
std::size_t IndexType
Definition: mpm_particle_generator_utility.h:34
void GenerateMaterialPointCondition(ModelPart &rBackgroundGridModelPart, ModelPart &rInitialModelPart, ModelPart &rMPMModelPart)
Function to Initiate material point condition.
Definition: mpm_particle_generator_utility.cpp:206
std::size_t SizeType
Definition: mpm_particle_generator_utility.h:36
void GetIntegrationPointVolumes(const GeometryType &rGeom, const IntegrationMethod IntegrationMethod, Vector &rIntVolumes)
Get integration weights of the geometry for the given integration method.
Definition: mpm_particle_generator_utility.cpp:782
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21