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.
set_mechanical_initial_state_process.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosPfemSolidMechanicsApplication $
3 // Created by: $Author: LMonforte $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2015 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined ( KRATOS_SET_MECHANICAL_INITIAL_STATE_PROCESS_H_INCLUDED )
11 #define KRATOS_SET_MECHANICAL_INITIAL_STATE_PROCESS_H_INCLUDED
12 
13 
14 /* System includes */
15 
16 
17 /* External includes */
18 
19 
20 /* Project includes */
21 #include "processes/process.h"
22 #include "includes/model_part.h"
23 #include "includes/kratos_flags.h"
24 #include "utilities/math_utils.h"
26 
28 
29 
30 namespace Kratos
31 {
32 
33  class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) SetMechanicalInitialStateProcess
34  : public Process
35  {
36  public:
37 
38 
42  // Pointer definition of Process
44 
45 
54  // Constructor.
55 
56  //SetMechanicalInitialStateProcess(ModelPart& rModelPart);
57 
58  //SetMechanicalInitialStateProcess(ModelPart& rModelPart, const bool rGravity, const double rSV = 0.0, const double rSH = 0.0, const double rWaterPressure = 0.0, const bool rYmaxBool = false, const double rYmax = 0.0, const double rWaterLoad = 0.0);
59 
60  SetMechanicalInitialStateProcess( ModelPart& rModelPart, Parameters rParameters);
61 
62 
67 
80  void operator()()
81  {
82  Execute();
83  }
84 
85  void Execute() override;
86 
87  protected:
88 
89  void SetInitialMechanicalState(ModelPart& rModelPart, int EchoLevel = 0);
90 
91  void SetInitialMechanicalStateConstant(ModelPart& rModelPart, double S1, double S2, double WaterPressure, int EchoLevel = 0);
92 
93  void SetMechanicalState(ModelPart& rModelPart, int& EchoLevel, const double& rYmax);
94 
95  void SetMechanicalStateUwP(ModelPart& rModelPart, int& EchoLevel, const double& rYmax);
96 
97  void SetMechanicalStateU(ModelPart& rModelPart, int& EchoLevel, const double& rYmax);
98 
99  void SetMechanicalStateUP(ModelPart& rModelPart, int& EchoLevel, const double& rYmax);
100 
101  void SetMechanicalStateConstantUP(ModelPart& rModelPart, const double& rS1, const double& rS2, int& EchoLevel);
102 
103  void SetMechanicalStateConstant(ModelPart& rModelPart, const double& rS1, const double& rS2, const double& rWaterPressure, int& EchoLevel);
104 
105  private:
106 
107  // member variables
108 
109  bool mGravity;
110 
111  std::vector<double> mInitialStress;
112 
113  double mInitialWaterPressure;
114 
115  ModelPart& mrModelPart;
116 
117  bool mSurfaceLoadBool;
118 
119  double mSurfaceLoad;
120 
121  double mWaterLoad;
122 
123  }; //end class SetMechanicalInitialStateProcess
124 
125  } // END namespace Kratos
126 
127 #endif //KRATOS_SET_MECHANICAL_INITIAL_STATE_PROCESS_H_INCLUDED
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
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 provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
The base class for all processes in Kratos.
Definition: process.h:49
Definition: set_mechanical_initial_state_process.hpp:35
void operator()()
Definition: set_mechanical_initial_state_process.hpp:80
ModelPart::ConditionsContainerType ConditionsContainerType
Definition: set_mechanical_initial_state_process.hpp:47
KRATOS_CLASS_POINTER_DEFINITION(SetMechanicalInitialStateProcess)
ModelPart::NodesContainerType NodesArrayType
Definition: set_mechanical_initial_state_process.hpp:46
ModelPart::MeshType MeshType
Definition: set_mechanical_initial_state_process.hpp:48
static int EchoLevel
Definition: co_sim_EMPIRE_API.h:42
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21