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.
|
Utility to compute the skin representation from a distance function. More...
#include <embedded_skin_utility.h>
Public Types | |
Enum's | |
enum | LevelSetTypeEnum { Continuous = 1 , Discontinuous = 2 } |
Public Member Functions | |
Life Cycle | |
EmbeddedSkinUtility (ModelPart &rModelPart, ModelPart &rSkinModelPart, const std::string LevelSetType="continuous", const std::vector< std::string > &InterpolatedSkinVariables={}) | |
Default constructor. More... | |
virtual | ~EmbeddedSkinUtility ()=default |
Destructor. More... | |
Operations | |
void | GenerateSkin () |
Call to generate the embedded skin model part This method collects all the operations required to generate the embedded skin model part. The new geometries will be stored inside the skin model part provided in the constructor. More... | |
void | InterpolateMeshVariableToSkin (const Variable< double > &rMeshVariable, const Variable< double > &rSkinVariable) |
InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method. More... | |
void | InterpolateMeshVariableToSkin (const Variable< array_1d< double, 3 >> &rMeshVariable, const Variable< array_1d< double, 3 >> &rSkinVariable) |
InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method. More... | |
void | InterpolateDiscontinuousMeshVariableToSkin (const Variable< double > &rMeshVariable, const Variable< double > &rSkinVariable, const std::string &rInterfaceSide) |
Discontinuous InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation. More... | |
void | InterpolateDiscontinuousMeshVariableToSkin (const Variable< array_1d< double, 3 >> &rMeshVariable, const Variable< array_1d< double, 3 >> &rSkinVariable, const std::string &rInterfaceSide) |
Discontinuous InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation. More... | |
Type Definitions | |
typedef std::unordered_map< Node::Pointer, std::tuple< const Element::Pointer, const unsigned int >, SharedPointerHasher< Node::Pointer >, SharedPointerComparator< Node::Pointer > > | EdgeNodesMapType |
KRATOS_CLASS_POINTER_DEFINITION (EmbeddedSkinUtility) | |
Pointer definition of EmbeddedSkinUtility. More... | |
Utility to compute the skin representation from a distance function.
Provided either a continuous or discontinuous distance function, this utility reconstructs the skin representation coming from such distance function. This is done by computing the element intersections and saving them in an empty provided model part. Note that such skin representation is discontinuous even for a provided continuous distance field.
typedef std::unordered_map< Node::Pointer, std::tuple< const Element::Pointer, const unsigned int >, SharedPointerHasher<Node::Pointer>, SharedPointerComparator<Node::Pointer> > Kratos::EmbeddedSkinUtility< TDim >::EdgeNodesMapType |
enum Kratos::EmbeddedSkinUtility::LevelSetTypeEnum |
|
inline |
Default constructor.
|
virtualdefault |
Destructor.
void Kratos::EmbeddedSkinUtility< TDim >::GenerateSkin |
Call to generate the embedded skin model part This method collects all the operations required to generate the embedded skin model part. The new geometries will be stored inside the skin model part provided in the constructor.
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateDiscontinuousMeshVariableToSkin | ( | const Variable< array_1d< double, 3 >> & | rMeshVariable, |
const Variable< array_1d< double, 3 >> & | rSkinVariable, | ||
const std::string & | rInterfaceSide | ||
) |
Discontinuous InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation.
rMeshVariable | background mesh origin variable |
rSkinVariable | skin mesh destination variable |
rInterfaceSide | interface side ("positive" or "negative") |
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateDiscontinuousMeshVariableToSkin | ( | const Variable< double > & | rMeshVariable, |
const Variable< double > & | rSkinVariable, | ||
const std::string & | rInterfaceSide | ||
) |
Discontinuous InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation.
rMeshVariable | background mesh origin variable |
rSkinVariable | skin mesh destination variable |
rInterfaceSide | interface side ("positive" or "negative") |
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateMeshVariableToSkin | ( | const Variable< array_1d< double, 3 >> & | rMeshVariable, |
const Variable< array_1d< double, 3 >> & | rSkinVariable | ||
) |
InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method.
rMeshVariable | background mesh origin variable |
rSkinVariable | skin mesh destination variable |
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateMeshVariableToSkin | ( | const Variable< double > & | rMeshVariable, |
const Variable< double > & | rSkinVariable | ||
) |
InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method.
rMeshVariable | background mesh origin variable |
rSkinVariable | skin mesh destination variable |
Kratos::EmbeddedSkinUtility< TDim >::KRATOS_CLASS_POINTER_DEFINITION | ( | EmbeddedSkinUtility< TDim > | ) |
Pointer definition of EmbeddedSkinUtility.