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.
apply_normal_load_table_process.h
Go to the documentation of this file.
1 // KRATOS___
2 // // ) )
3 // // ___ ___
4 // // ____ //___) ) // ) )
5 // // / / // // / /
6 // ((____/ / ((____ ((___/ / MECHANICS
7 //
8 // License: geo_mechanics_application/license.txt
9 //
10 // Main authors: Richard Faasse,
11 // Anne van de Graaf,
12 // Gennady Markelov
13 //
14 
15 #pragma once
16 
17 #include "processes/process.h"
18 
19 #include <memory>
20 #include <vector>
21 
22 namespace Kratos
23 {
24 
25 class ModelPart;
26 class Parameters;
27 
28 
29 class KRATOS_API(GEO_MECHANICS_APPLICATION) ApplyNormalLoadTableProcess : public Process
30 {
31 public:
33 
35  const Parameters& rProcessSettings);
36 
38 
41 
42  void ExecuteInitialize() override;
43  void ExecuteInitializeSolutionStep() override;
44  std::string Info() const override;
45 
46 private:
47  void MakeInternalProcesses(const Parameters & rProcessSettings);
48  void MakeProcessForNormalComponent(const Parameters & rProcessSettings);
49  void MakeProcessForTangentialComponent(const Parameters & rProcessSettings);
50  void MakeProcessForUniformFluidPressureType(const Parameters & rProcessSettings,
51  const std::vector<std::string>& NamesOfSettingsToCopy);
52  void MakeProcessForHydrostaticFluidPressureType(const Parameters & rProcessSettings,
53  std::vector<std::string> NamesOfSettingsToCopy);
54  void MakeProcessForPhreaticLineFluidPressureType(const Parameters & rProcessSettings,
55  std::vector<std::string> NamesOfSettingsToCopy);
56  void MakeProcessForPhreaticSurfaceFluidPressureType(const Parameters & rProcessSettings,
57  std::vector<std::string> NamesOfSettingsToCopy);
58  bool IsNormalComponentActive(const Parameters & rProcessSettings) const;
59  bool IsTangentialComponentActive(const Parameters & rProcessSettings) const;
60  bool IsComponentActive(const Parameters & rProcessSettings, int componentNumber) const;
61 
62 
63  ModelPart& mrModelPart;
64  std::vector<std::unique_ptr<Process>> mProcesses;
65 };
66 
67 }
void ExecuteInitialize() override
Definition: periodic_interface_process.hpp:37
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: apply_normal_load_table_process.h:30
KRATOS_CLASS_POINTER_DEFINITION(ApplyNormalLoadTableProcess)
ApplyNormalLoadTableProcess(const ApplyNormalLoadTableProcess &)=delete
ApplyNormalLoadTableProcess & operator=(const ApplyNormalLoadTableProcess &)=delete
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
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
Kratos::ModelPart ModelPart
Definition: kratos_wrapper.h:31
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21