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.
friction_laws_factory.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: Miguel Maso Sotomayor
11 //
12 
13 #ifndef KRATOS_FRICTION_LAWS_FACTORY_H_INCLUDED
14 #define KRATOS_FRICTION_LAWS_FACTORY_H_INCLUDED
15 
16 
17 // System includes
18 #include <string>
19 #include <iostream>
20 
21 
22 // External includes
23 
24 
25 // Project includes
26 #include "friction_law.h"
27 
28 
29 namespace Kratos
30 {
33 
37 
41 
45 
49 
58 {
59 public:
62 
63  typedef Node NodeType;
64 
66 
70 
72 
76 
81 
86 
90 
94  FrictionLaw::Pointer CreateBottomFrictionLaw(
95  const GeometryType& rGeometry,
96  const Properties& rProperty,
97  const ProcessInfo& rProcessInfo);
98 
102  FrictionLaw::Pointer CreateSurfaceFrictionLaw(
103  const GeometryType& rGeometry,
104  const Properties& rProperty,
105  const ProcessInfo& rProcessInfo);
106 
110 
114  std::string Info() const
115  {
116  std::stringstream buffer;
117  buffer << "FrictionLawsFactory";
118  return buffer.str();
119  }
120 
124  void PrintInfo(std::ostream& rOStream) const
125  {
126  rOStream << Info();
127  }
128 
132  void PrintData(std::ostream& rOStream) const {}
133 
137 
138 
140 
141 }; // Class FrictionLawsFactory
142 
144 
145 } // namespace Kratos.
146 
147 #endif // KRATOS_FRICTION_LAWS_FACTORY_H_INCLUDED defined
The base class for the bottom and surface friction laws.
Definition: friction_laws_factory.h:58
~FrictionLawsFactory()
Destructor.
Definition: friction_laws_factory.h:85
void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: friction_laws_factory.h:124
Geometry< NodeType > GeometryType
Definition: friction_laws_factory.h:65
Node NodeType
Definition: friction_laws_factory.h:63
FrictionLaw::Pointer CreateSurfaceFrictionLaw(const GeometryType &rGeometry, const Properties &rProperty, const ProcessInfo &rProcessInfo)
Create a surface friction law.
Definition: friction_laws_factory.cpp:49
FrictionLaw::Pointer CreateBottomFrictionLaw(const GeometryType &rGeometry, const Properties &rProperty, const ProcessInfo &rProcessInfo)
Create a bottom friction law.
Definition: friction_laws_factory.cpp:30
std::string Info() const
Turn back information as a string.
Definition: friction_laws_factory.h:114
FrictionLawsFactory()
Default constructor.
Definition: friction_laws_factory.h:80
KRATOS_CLASS_POINTER_DEFINITION(FrictionLawsFactory)
void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: friction_laws_factory.h:132
Geometry base class.
Definition: geometry.h:71
This class defines the node.
Definition: node.h:65
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21