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.
vertex.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // license: HDF5Application/license.txt
9 //
10 // Main author: Máté Kelemen
11 //
12 
13 #ifndef KRATOS_HDF5_APPLICATION_VERTEX_H
14 #define KRATOS_HDF5_APPLICATION_VERTEX_H
15 
16 // Project includes
17 #include "vertex_utilities.h"
18 
19 // Core includes
20 #include "includes/model_part.h"
21 
22 
23 namespace Kratos
24 {
25 namespace HDF5
26 {
27 namespace Detail
28 {
29 
30 
31 class KRATOS_API(HDF5_APPLICATION) Vertex : public Point
32 {
33 public:
35 
36  Vertex(Vertex&& rOther) = default;
37 
38  Vertex(const Vertex& rOther) = default;
39 
52  Vertex(const array_1d<double,3>& rPosition,
53  const PointLocatorAdaptor& rLocator,
54  std::size_t id,
55  bool isHistorical = true);
56 
61  Vertex();
62 
74  static Vertex::Pointer MakeShared(const array_1d<double,3>& rPosition,
75  const PointLocatorAdaptor& rLocator,
76  std::size_t id,
77  bool isHistorical);
78 
79  std::size_t GetID() const;
80 
85  template <class TValue>
86  TValue GetValue(const Variable<TValue>& rVariable) const;
87 
92  bool IsLocated() const;
93 
94 private:
95  std::size_t mID;
96 
97  const Element::WeakPointer mpContainingElement;
98 
99  const NodalVariableGetter* mpVariableGetter;
100 
101  Kratos::Vector mShapeFunctionValues;
102 
103  static const NodalVariableGetter::UniquePointer mpHistoricalVariableGetter;
104 
105  static const NodalVariableGetter::UniquePointer mpNonHistoricalVariableGetter;
106 };
107 
108 
110  Vertex::Pointer,
111  std::vector<Vertex::Pointer>>;
112 
113 
114 } // namespace Detail
115 } // namespace HDF5
116 } // namespace Kratos
117 
118 // Template implementations
119 #include "vertex_impl.h"
120 
121 #endif
Definition: vertex.h:32
Vertex(Vertex &&rOther)=default
Vertex(const Vertex &rOther)=default
Point class.
Definition: point.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
Detail::Vertex Vertex
Definition: hdf5_container_component_io.cpp:18
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Definition: vertex_utilities.h:57
Definition: vertex_utilities.h:131