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.
dem_fem_utilities.h
Go to the documentation of this file.
1 #ifndef DEM_FEM_UTILITIES_H
2 #define DEM_FEM_UTILITIES_H
3 
4 // System includes
5 
6 #include <limits>
7 #include <iostream>
8 #include <iomanip>
9 
10 // Project includes
11 #include "includes/define.h"
12 #include "includes/variables.h"
13 #include "utilities/openmp_utils.h"
14 #include "GeometryFunctions.h"
15 #include "utilities/timer.h"
16 
17 /* External includes */
18 #ifdef _OPENMP
19 #include <omp.h>
20 #endif
21 
22 namespace Kratos
23 {
24 
25 class KRATOS_API(DEM_APPLICATION) DEMFEMUtilities {
26 
27 
28 
29  public:
30 
37 
39 
41 
43 
45 
46  virtual ~DEMFEMUtilities();
47 
48  void MoveAllMeshes(ModelPart& r_model_part, double time, double dt);
49 
50  void CreateRigidFacesFromAllElements(ModelPart& r_model_part, PropertiesType::Pointer pProps);
51 
53  virtual std::string Info() const;
54 
56  virtual void PrintInfo(std::ostream& rOStream) const;
57 
59  virtual void PrintData(std::ostream& rOStream) const;
60 
61  private:
62 
63  array_1d<double, 3> mInitialCenterOfMassAndMass;
64  double mInitialMass;
65 
67  DEMFEMUtilities & operator=(DEMFEMUtilities const& rOther);
68 
69  }; // Class DEMFEMUtilities
70 
72 
75 
79 
81 // template<std::size_t TDim>
82 // inline std::ostream& operator << (std::ostream& rOStream)
83 // {
84 // rThis.PrintInfo(rOStream);
85 // rOStream << std::endl;
86 // rThis.PrintData(rOStream);
87 //
88 // return rOStream;
89 // }
91 
92 } // namespace Kratos.
93 
94 #endif // DEM_FEM_UTILITIES_H
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Base class for all Conditions.
Definition: condition.h:59
Definition: dem_fem_utilities.h:25
ModelPart::PropertiesType PropertiesType
Definition: dem_fem_utilities.h:34
ModelPart::ConditionType ConditionType
Definition: dem_fem_utilities.h:31
ModelPart::NodesContainerType NodesArrayType
Definition: dem_fem_utilities.h:33
GlobalPointersVector< Element >::iterator ParticleWeakIteratorType
Definition: dem_fem_utilities.h:36
GlobalPointersVector< Element > ParticleWeakVectorType
Definition: dem_fem_utilities.h:35
DEMFEMUtilities()
Default constructor.
Definition: dem_fem_utilities.h:42
ModelPart::ElementsContainerType ElementsArrayType
Definition: dem_fem_utilities.h:32
KRATOS_CLASS_POINTER_DEFINITION(DEMFEMUtilities)
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
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
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
dt
Definition: DEM_benchmarks.py:173
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
time
Definition: face_heat.py:85