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_energy_calculation_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_ENERGY_CALCULATION_UTILITY
15 #define KRATOS_MPM_ENERGY_CALCULATION_UTILITY
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
22 #include "includes/define.h"
24 #include "containers/model.h"
25 #include "includes/element.h"
26 
27 namespace Kratos
28 {
29 namespace MPMEnergyCalculationUtility
30 {
31 
32  typedef std::size_t IndexType;
33  typedef std::size_t SizeType;
34 
35  typedef Element::Pointer ElementPointerType;
36 
37  //compute potential energy
38  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculatePotentialEnergy(Element& rElement);
39  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculatePotentialEnergy(ModelPart& rModelPart);
40 
41  //compute kinetic energy
42  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateKineticEnergy(Element& rElement);
43  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateKineticEnergy(ModelPart& rModelPart);
44 
45  //compute strain energy
46  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateStrainEnergy(Element& rElement);
47  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateStrainEnergy(ModelPart& rModelPart);
48 
49  //compute total energy
50  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateTotalEnergy(Element& rElement);
51  double KRATOS_API(PARTICLE_MECHANICS_APPLICATION) CalculateTotalEnergy(ModelPart& rModelPart);
52 
53 } // end namespace MPMEnergyCalculationUtility
54 
55 } // end namespace Kratos
56 
57 #endif // KRATOS_MPM_ENERGY_CALCULATION_UTILITY
58 
59 
Base class for all Elements.
Definition: element.h:60
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
double CalculatePotentialEnergy(Element &rElement)
Assign and compute potential energy*.
Definition: mpm_energy_calculation_utility.cpp:28
Element::Pointer ElementPointerType
Definition: mpm_energy_calculation_utility.h:35
double CalculateKineticEnergy(Element &rElement)
Definition: mpm_energy_calculation_utility.cpp:60
double CalculateTotalEnergy(Element &rElement)
Assign and compute total energy.
Definition: mpm_energy_calculation_utility.cpp:127
double CalculateStrainEnergy(Element &rElement)
Definition: mpm_energy_calculation_utility.cpp:89
std::size_t IndexType
Definition: mpm_energy_calculation_utility.h:32
std::size_t SizeType
Definition: mpm_energy_calculation_utility.h:33
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21