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.
FEMDEM_coupling_utilities.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ \.
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics FemDem Application
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Alejandro Cornejo Velazquez
11 //
12 
13 #if !defined(KRATOS_FEMDEM_COUPLING_UTILITIES)
14 #define KRATOS_FEMDEM_COUPLING_UTILITIES
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 namespace Kratos
24 {
27 
31 
33 typedef std::size_t SizeType;
34 
38 
42 
46 
55 class KRATOS_API(FEM_TO_DEM_APPLICATION) FEMDEMCouplingUtilities
56 {
57  public:
62  typedef std::size_t IndexType;
63 
67 
71 
75 
78 
79  void SaveStructuralSolution(ModelPart& rStructureModelPart);
80 
81  void InterpolateStructuralSolution(
82  ModelPart &rStructureModelPart,
83  const double FemDeltaTime,
84  const double FemTime,
85  const double DemDeltaTime,
86  const double DemTime);
87 
88  void RestoreStructuralSolution(ModelPart &rStructureModelPart);
89 
90  void AddExplicitImpulses(ModelPart &rStructureModelPart, const double DEMTimeStep);
91 
92  void ComputeAndTranferAveragedContactTotalForces(ModelPart &rStructureModelPart, const double FEMtimeStep);
93 
94  bool IsGenerateDEMRequired(ModelPart &rModelPart);
95 
96  void ResetContactImpulses(ModelPart &rStructureModelPart);
97 
98  void RemoveDuplicates(
99  ModelPart& rModelPart);
100 
101  void IdentifyFreeParticles(
102  ModelPart& rFEMModelPart,
103  ModelPart& rDEMModelPart);
104 
105  int GetNumberOfNodes(ModelPart &rModelPart);
106 
107 
108 }; // class FEMDEMCouplingUtilities
109 } // namespace Kratos
110 #endif /* KRATOS_FEMDEM_COUPLING_UTILITIES defined */
This class includes several utilities necessaries for the coupling between the FEM and the DEM.
Definition: FEMDEM_coupling_utilities.h:56
FEMDEMCouplingUtilities()
Default constructor.
Definition: FEMDEM_coupling_utilities.h:77
std::size_t IndexType
The index type definition.
Definition: FEMDEM_coupling_utilities.h:62
KRATOS_CLASS_POINTER_DEFINITION(FEMDEMCouplingUtilities)
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
int GetNumberOfNodes(GiDOutput_Handle hdl_gout)
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43