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.
nodal_manning_law.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_NODAL_MANNING_LAW_H_INCLUDED
14 #define KRATOS_NODAL_MANNING_LAW_H_INCLUDED
15 
16 
17 // System includes
18 
19 
20 // External includes
21 
22 
23 // Project includes
24 #include "manning_law.h"
25 
26 
27 namespace Kratos
28 {
31 
35 
39 
43 
47 
48 
56 {
57 public:
60 
62 
66 
71 
76  const GeometryType& rGeometry,
77  const Properties& rProperty,
78  const ProcessInfo& rProcessInfo);
79 
83  virtual ~NodalManningLaw() {}
84 
88 
89 
93 
97  void Initialize(
98  const GeometryType& rGeometry,
99  const Properties& rProperty,
100  const ProcessInfo& rProcessInfo) override;
101 
105 
106 
110 
111 
115 
119  std::string Info() const override
120  {
121  std::stringstream buffer;
122  buffer << "NodalManningLaw";
123  return buffer.str();
124  }
125 
129 
130 
132 
133 private:
134 
138 
140  NodalManningLaw& operator=(NodalManningLaw const& rOther)
141  {
142  return *this;
143  }
144 
146  NodalManningLaw(NodalManningLaw const& rOther) {}
147 
148 
150 
151 }; // Class NodalManningLaw
152 
154 
157 
158 
162 
164 inline std::ostream& operator << (std::ostream& rOStream,
165  const NodalManningLaw& rThis)
166 {
167  rThis.PrintInfo(rOStream);
168  rOStream << std::endl;
169  rThis.PrintData(rOStream);
170 
171  return rOStream;
172 }
173 
175 
176 } // namespace Kratos.
177 
178 #endif // KRATOS_NODAL_MANNING_LAW_H_INCLUDED defined
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: friction_law.hpp:170
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: friction_law.hpp:164
Geometry base class.
Definition: geometry.h:71
The base class for the bottom and surface friction laws.
Definition: manning_law.h:60
This class computes the bottom friction according to the Manning law.
Definition: nodal_manning_law.h:56
std::string Info() const override
Turn back information as a string.
Definition: nodal_manning_law.h:119
KRATOS_CLASS_POINTER_DEFINITION(NodalManningLaw)
virtual ~NodalManningLaw()
Destructor.
Definition: nodal_manning_law.h:83
void Initialize(const GeometryType &rGeometry, const Properties &rProperty, const ProcessInfo &rProcessInfo) override
Initialize the friction law variables.
Definition: nodal_manning_law.cpp:35
NodalManningLaw()
Default constructor.
Definition: nodal_manning_law.h:70
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
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432