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.
move_mesh_utilities.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: Andreas Winterstein (a.winterstein@tum.de)
11 //
12 
13 #if !defined(KRATOS_MESHMOVING_UTILITIES_H_INCLUDED)
14 #define KRATOS_MESHMOVING_UTILITIES_H_INCLUDED
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
21 #include "includes/define.h"
22 #include "includes/model_part.h"
23 #include "affine_transform.h"
25 
26 namespace Kratos::MoveMeshUtilities {
27 
30 
31 void KRATOS_API(MESH_MOVING_APPLICATION) CheckJacobianDimension(GeometryType::JacobiansType &rInvJ0,
32  VectorType &rDetJ0, const GeometryType &rGeometry);
33 
34 void KRATOS_API(MESH_MOVING_APPLICATION) MoveMesh(ModelPart::NodesContainerType &rNodes);
35 
45 void KRATOS_API(MESH_MOVING_APPLICATION) MoveModelPart(
46  ModelPart& rModelPart,
47  const array_1d<double,3>& rRotationAxis,
48  const double rotationAngle,
49  const array_1d<double,3>& rReferencePoint,
50  const array_1d<double,3>& rTranslationVector);
51 
61 void KRATOS_API(MESH_MOVING_APPLICATION) MoveModelPart(
62  ModelPart& rModelPart,
63  const Parameters rotationAxis,
64  const Parameters rotationAngle,
65  const Parameters referencePoint,
66  const Parameters translationVector);
67 
69 void KRATOS_API(MESH_MOVING_APPLICATION) MoveModelPart(
70  ModelPart& rModelPart,
71  const AffineTransform& rTransform);
72 
74 void KRATOS_API(MESH_MOVING_APPLICATION) MoveModelPart(
75  ModelPart& rModelPart,
76  ParametricAffineTransform& rTransform);
77 
78 KRATOS_API(MESH_MOVING_APPLICATION) ModelPart* GenerateMeshPart(ModelPart &rModelPart,
79  const std::string &rElementName);
80 
81 KRATOS_API(MESH_MOVING_APPLICATION) void InitializeMeshPartWithElements(
82  ModelPart& rDestinationModelPart,
83  ModelPart& rOriginModelPart,
84  Properties::Pointer pProperties,
85  const std::string& rElementName);
86 
87 void KRATOS_API(MESH_MOVING_APPLICATION) SuperImposeVariables(ModelPart &rModelPart, const Variable< array_1d<double, 3> >& rVariable,
88  const Variable< array_1d<double, 3> >& rVariableToSuperImpose);
89 
90 void KRATOS_API(MESH_MOVING_APPLICATION) SuperImposeMeshDisplacement(ModelPart &rModelPart, const Variable< array_1d<double, 3> >& rVariableToSuperImpose);
91 
92 void KRATOS_API(MESH_MOVING_APPLICATION) SuperImposeMeshVelocity(ModelPart &rModelPart, const Variable< array_1d<double, 3> >& rVariableToSuperImpose);
93 
94 } // namespace Kratos::MoveMeshUtilities
95 
96 #endif // KRATOS_MESHMOVING_UTILITIES_H_INCLUDED defined
Class for applying affine transformations.
Definition: affine_transform.h:41
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
Class for applying parametrically defined affine transformations.
Definition: parametric_affine_transform.h:35
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
Definition: move_mesh_utilities.cpp:26
void SuperImposeVariables(ModelPart &rModelPart, const Variable< array_1d< double, 3 > > &rVariable, const Variable< array_1d< double, 3 > > &rVariableToSuperImpose)
Definition: move_mesh_utilities.cpp:207
void SuperImposeMeshDisplacement(ModelPart &rModelPart, const Variable< array_1d< double, 3 > > &rVariableToSuperImpose)
Definition: move_mesh_utilities.cpp:221
void InitializeMeshPartWithElements(ModelPart &rDestinationModelPart, ModelPart &rOriginModelPart, Properties::Pointer pProperties, const std::string &rElementName)
Definition: move_mesh_utilities.cpp:176
ModelPart * GenerateMeshPart(ModelPart &rModelPart, const std::string &rElementName)
Definition: move_mesh_utilities.cpp:143
void SuperImposeMeshVelocity(ModelPart &rModelPart, const Variable< array_1d< double, 3 > > &rVariableToSuperImpose)
Definition: move_mesh_utilities.cpp:226
void MoveMesh(ModelPart::NodesContainerType &rNodes)
Definition: move_mesh_utilities.cpp:49
void CheckJacobianDimension(GeometryType::JacobiansType &rInvJ0, VectorType &rDetJ0, const GeometryType &rGeometry)
Definition: move_mesh_utilities.cpp:30
Element::GeometryType GeometryType
Definition: move_mesh_utilities.h:28
Element::VectorType VectorType
Definition: move_mesh_utilities.h:29
void MoveModelPart(ModelPart &rModelPart, const array_1d< double, 3 > &rRotationAxis, const double rotationAngle, const array_1d< double, 3 > &rReferencePoint, const array_1d< double, 3 > &rTranslationVector)
Impose mesh movement on all nodes of a model part.
Definition: move_mesh_utilities.cpp:61