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.
map_nurbs_volume_results_to_embedded_geometry_process.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: Manuel Messmer
11 
12 #if !defined(KRATOS_MAP_NURBS_VOLUME_RESULTS_TO_EMBEDDED_GEOMETRY_PROCESS_H_INCLUDED )
13 #define KRATOS_MAP_NURBS_VOLUME_RESULTS_TO_EMBEDDED_GEOMETRY_PROCESS_H_INCLUDED
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
21 #include "containers/model.h"
22 #include "geometries/geometry.h"
24 
25 #include "processes/process.h"
26 
27 namespace Kratos
28 {
29 
32 
33 /* @class MapNurbsVolumeResultsToEmbeddedGeometryProcess
34  * @ingroup IgaApplication
35  **/
36 class KRATOS_API(IGA_APPLICATION) MapNurbsVolumeResultsToEmbeddedGeometryProcess
37  : public Process
38 {
39 public:
42 
45 
46  typedef Node NodeType;
48  typedef GeometryType::Pointer GeometryPointerType;
52  typedef std::size_t IndexType;
53  typedef std::size_t SizeType;
54 
58 
61  Model& rModel,
62  Parameters ThisParameters);
63 
66 
70 
72  void MapVariables();
73 
76  const Parameters GetDefaultParameters() const override
77  {
78  const Parameters default_parameters = Parameters(R"(
79  {
80  "main_model_part_name" : "main_model_part",
81  "nurbs_volume_name" : "nurbs_volume",
82  "embedded_model_part_name" : "embedded_model_part",
83  "nodal_results": [],
84  "gauss_point_results" : []
85  })" );
86 
87  return default_parameters;
88  }
89 
93 
94 
96  std::string Info() const override
97  {
98  return "MapNurbsVolumeResultsToEmbeddedGeometryProcess";
99  }
100 
102  void PrintInfo(std::ostream& rOStream) const override
103  {
104  rOStream << "MapNurbsVolumeResultsToEmbeddedGeometryProcess";
105  }
106 
108  void PrintData(std::ostream& rOStream) const override
109  {
110  }
111 
112 private:
115 
116  Model& mrModel;
117  Parameters mThisParameters;
118 
119  // Nodal values
120  std::vector<const Variable<double>*> mDoubleVariableNode;
121  std::vector<const Variable<array_1d<double, 3>>*> mArrayVariableNode;
122 
123  // Gauss point values
124  std::vector<const Variable<double>*> mDoubleVariableGauss;
125  std::vector<const Variable<array_1d<double, 3>>*> mArrayVariableGauss;
126  std::vector<const Variable<Vector>*> mVectorVariableGauss;
127  std::vector<const Variable<Matrix>*> mMatrixVariableGauss;
129 
130 }; // Class MapNurbsVolumeResultsToEmbeddedGeometryProcess
131 
135 
137 inline std::istream& operator >> (std::istream& rIStream,
139 
141 inline std::ostream& operator << (std::ostream& rOStream,
143 {
144  rThis.PrintInfo(rOStream);
145  rOStream << std::endl;
146  rThis.PrintData(rOStream);
147 
148  return rOStream;
149 }
151 
152 } // namespace Kratos.
153 
154 #endif // KRATOS_MAP_NURBS_VOLUME_RESULTS_TO_EMBEDDED_GEOMETRY_PROCESS_H_INCLUDED defined
Geometry base class.
Definition: geometry.h:71
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:38
std::size_t IndexType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:52
const Parameters GetDefaultParameters() const override
Returns default parameters.
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:76
GeometryType::CoordinatesArrayType CoordinatesArrayType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:50
std::size_t SizeType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:53
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:102
Node NodeType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:46
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:108
Geometry< NodeType > GeometryType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:47
GeometryType::Pointer GeometryPointerType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:48
std::string Info() const override
Turn back information as a string.
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:96
KRATOS_CLASS_POINTER_DEFINITION(MapNurbsVolumeResultsToEmbeddedGeometryProcess)
Pointer definition of MapNurbsVolumeResultsToEmbeddedGeometryProcess.
GeometryType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:51
GeometryType::GeometriesArrayType GeometriesArrayType
Definition: map_nurbs_volume_results_to_embedded_geometry_process.h:49
This class aims to manage different model parts across multi-physics simulations.
Definition: model.h:60
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
The base class for all processes in Kratos.
Definition: process.h:49
Short class definition.
Definition: array_1d.h:61
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432