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.
|
This utilitiy has as objective to interpolate the values inside elements (and conditions?) in a model part, using as input the original model part and the new one. More...
#include <internal_variables_interpolation_process.h>
Public Types | |
Enum's | |
enum class | InterpolationTypes { CLOSEST_POINT_TRANSFER = 0 , LEAST_SQUARE_TRANSFER = 1 , SHAPE_FUNCTION_TRANSFER = 2 } |
This enum it used to list the different types of interpolations available. More... | |
Public Types inherited from Kratos::Flags | |
enum | FlagsList { Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 , Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 , Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 , Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 , Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 , Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 , Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 , Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30 } |
typedef int64_t | BlockType |
typedef int64_t | FlagType |
typedef std::size_t | IndexType |
Public Member Functions | |
Life Cycle | |
InternalVariablesInterpolationProcess (ModelPart &rOriginMainModelPart, ModelPart &rDestinationMainModelPart, Parameters ThisParameters=Parameters(R"({})")) | |
The constructor of the search utility uses the following inputs: More... | |
~InternalVariablesInterpolationProcess () override=default | |
Operators | |
void | operator() () |
Operations | |
void | Execute () override |
We execute the search relative to the old and new model part. More... | |
const Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
Public Member Functions inherited from Kratos::Process | |
KRATOS_CLASS_POINTER_DEFINITION (Process) | |
Pointer definition of Process. More... | |
Process () | |
Default constructor. More... | |
Process (const Flags options) | |
~Process () override | |
Destructor. More... | |
void | operator() () |
This operator is provided to call the process as a function and simply calls the Execute method. More... | |
virtual Process::Pointer | Create (Model &rModel, Parameters ThisParameters) |
This method creates an pointer of the process. More... | |
virtual void | ExecuteInitialize () |
This function is designed for being called at the beginning of the computations right after reading the model and the groups. More... | |
virtual void | ExecuteBeforeSolutionLoop () |
This function is designed for being execute once before the solution loop but after all of the solvers where built. More... | |
virtual void | ExecuteInitializeSolutionStep () |
This function will be executed at every time step BEFORE performing the solve phase. More... | |
virtual void | ExecuteFinalizeSolutionStep () |
This function will be executed at every time step AFTER performing the solve phase. More... | |
virtual void | ExecuteBeforeOutputStep () |
This function will be executed at every time step BEFORE writing the output. More... | |
virtual void | ExecuteAfterOutputStep () |
This function will be executed at every time step AFTER writing the output. More... | |
virtual void | ExecuteFinalize () |
This function is designed for being called at the end of the computations. More... | |
virtual int | Check () |
This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More... | |
virtual void | Clear () |
This method clears the assignation of the conditions. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::Flags | |
Flags & | operator= (Flags const &rOther) |
Assignment operator. More... | |
operator bool () const | |
Flags | operator~ () const |
bool | operator! () const |
void | AssignFlags (Flags const &rOther) |
void | Set (const Flags ThisFlag) |
void | Set (const Flags ThisFlag, bool Value) |
void | Reset (const Flags ThisFlag) |
void | Flip (const Flags ThisFlag) |
void | SetPosition (IndexType Position, bool Value=true) |
bool | GetPosition (IndexType Position) const |
void | FlipPosition (IndexType Position) |
void | ClearPosition (IndexType Position) |
void | Clear () |
Flags | AsFalse () const |
bool | Is (Flags const &rOther) const |
bool | IsDefined (Flags const &rOther) const |
bool | IsNot (Flags const &rOther) const |
bool | IsNotDefined (Flags const &rOther) const |
KRATOS_CLASS_POINTER_DEFINITION (Flags) | |
Pointer definition of Flags. More... | |
const Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (const Flags &Other) |
Flags () | |
Default constructor. More... | |
Flags (Flags const &rOther) | |
Copy constructor. More... | |
virtual | ~Flags () |
Destructor. More... | |
Type Definitions | |
typedef Bucket< 3ul, PointType, PointVector, PointTypePointer, PointIterator, DistanceIterator > | BucketType |
KDtree definitions. More... | |
typedef Tree< KDTreePartition< BucketType > > | KDTree |
typedef Variable< double > | DoubleVarType |
Definitions for the variables. More... | |
typedef Variable< array_1d< double, 3 > > | ArrayVarType |
typedef Variable< Vector > | VectorVarType |
typedef Variable< Matrix > | MatrixVarType |
typedef ModelPart::NodesContainerType | NodesArrayType |
typedef ModelPart::ElementsContainerType | ElementsArrayType |
typedef ModelPart::ConditionsContainerType | ConditionsArrayType |
typedef Node | NodeType |
typedef Geometry< NodeType > | GeometryType |
KRATOS_CLASS_POINTER_DEFINITION (InternalVariablesInterpolationProcess) | |
Pointer definition of InternalVariablesInterpolationProcess. More... | |
Type Definitions | |
template<> | |
void | InterpolateAddVariableOnElement (GeometryType &rThisGeometry, const Variable< double > &rThisVar, const Vector &N, Element &rElement, const IndexType GaussPointId, const double Weight, const ProcessInfo &rCurrentProcessInfo) |
template<> | |
void | InterpolateAddVariableOnElement (GeometryType &rThisGeometry, const Variable< array_1d< double, 3 >> &rThisVar, const Vector &N, Element &rElement, const IndexType GaussPointId, const double Weight, const ProcessInfo &rCurrentProcessInfo) |
template<> | |
void | InterpolateAddVariableOnElement (GeometryType &rThisGeometry, const Variable< Vector > &rThisVar, const Vector &N, Element &rElement, const IndexType GaussPointId, const double Weight, const ProcessInfo &rCurrentProcessInfo) |
template<> | |
void | InterpolateAddVariableOnElement (GeometryType &rThisGeometry, const Variable< Matrix > &rThisVar, const Vector &N, Element &rElement, const IndexType GaussPointId, const double Weight, const ProcessInfo &rCurrentProcessInfo) |
template<> | |
void | PonderateVariable (GeometryType &rThisGeometry, const Variable< double > &rThisVar, const double TotalWeight) |
template<> | |
void | PonderateVariable (GeometryType &rThisGeometry, const Variable< array_1d< double, 3 >> &rThisVar, const double TotalWeight) |
template<> | |
void | PonderateVariable (GeometryType &rThisGeometry, const Variable< Vector > &rThisVar, const double TotalWeight) |
template<> | |
void | PonderateVariable (GeometryType &rThisGeometry, const Variable< Matrix > &rThisVar, const double TotalWeight) |
Additional Inherited Members | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
This utilitiy has as objective to interpolate the values inside elements (and conditions?) in a model part, using as input the original model part and the new one.
The process employs the projection.h from MeshingApplication, which works internally using a kd-tree
typedef Bucket< 3ul, PointType, PointVector, PointTypePointer, PointIterator, DistanceIterator > Kratos::InternalVariablesInterpolationProcess::BucketType |
KDtree definitions.
typedef ModelPart::ConditionsContainerType Kratos::InternalVariablesInterpolationProcess::ConditionsArrayType |
Definitions for the variables.
typedef ModelPart::ElementsContainerType Kratos::InternalVariablesInterpolationProcess::ElementsArrayType |
This enum it used to list the different types of interpolations available.
Enumerator | |
---|---|
CLOSEST_POINT_TRANSFER | |
LEAST_SQUARE_TRANSFER | Closest Point Transfer. It transfer the values from the closest GP. |
SHAPE_FUNCTION_TRANSFER | Least-Square projection Transfer. It transfers from the closest GP from the old mesh. |
Kratos::InternalVariablesInterpolationProcess::InternalVariablesInterpolationProcess | ( | ModelPart & | rOriginMainModelPart, |
ModelPart & | rDestinationMainModelPart, | ||
Parameters | ThisParameters = Parameters(R"({})") |
||
) |
The constructor of the search utility uses the following inputs:
rOriginMainModelPart | The model part from where interpolate values |
rDestinationMainModelPart | The model part where we want to interpolate the values |
ThisParameters | The parameters containing all the information needed |
|
overridedefault |
|
overridevirtual |
We execute the search relative to the old and new model part.
There are mainly two ways to interpolate the internal variables (there are three, but just two are behave correctly)
Reimplemented from Kratos::Process.
|
overridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Process.
void Kratos::InternalVariablesInterpolationProcess::InterpolateAddVariableOnElement | ( | GeometryType & | rThisGeometry, |
const Variable< array_1d< double, 3 >> & | rThisVar, | ||
const Vector & | N, | ||
Element & | rElement, | ||
const IndexType | GaussPointId, | ||
const double | Weight, | ||
const ProcessInfo & | rCurrentProcessInfo | ||
) |
void Kratos::InternalVariablesInterpolationProcess::InterpolateAddVariableOnElement | ( | GeometryType & | rThisGeometry, |
const Variable< double > & | rThisVar, | ||
const Vector & | N, | ||
Element & | rElement, | ||
const IndexType | GaussPointId, | ||
const double | Weight, | ||
const ProcessInfo & | rCurrentProcessInfo | ||
) |
void Kratos::InternalVariablesInterpolationProcess::InterpolateAddVariableOnElement | ( | GeometryType & | rThisGeometry, |
const Variable< Matrix > & | rThisVar, | ||
const Vector & | N, | ||
Element & | rElement, | ||
const IndexType | GaussPointId, | ||
const double | Weight, | ||
const ProcessInfo & | rCurrentProcessInfo | ||
) |
void Kratos::InternalVariablesInterpolationProcess::InterpolateAddVariableOnElement | ( | GeometryType & | rThisGeometry, |
const Variable< Vector > & | rThisVar, | ||
const Vector & | N, | ||
Element & | rElement, | ||
const IndexType | GaussPointId, | ||
const double | Weight, | ||
const ProcessInfo & | rCurrentProcessInfo | ||
) |
Kratos::InternalVariablesInterpolationProcess::KRATOS_CLASS_POINTER_DEFINITION | ( | InternalVariablesInterpolationProcess | ) |
Pointer definition of InternalVariablesInterpolationProcess.
|
inline |
void Kratos::InternalVariablesInterpolationProcess::PonderateVariable | ( | GeometryType & | rThisGeometry, |
const Variable< array_1d< double, 3 >> & | rThisVar, | ||
const double | TotalWeight | ||
) |
void Kratos::InternalVariablesInterpolationProcess::PonderateVariable | ( | GeometryType & | rThisGeometry, |
const Variable< double > & | rThisVar, | ||
const double | TotalWeight | ||
) |
void Kratos::InternalVariablesInterpolationProcess::PonderateVariable | ( | GeometryType & | rThisGeometry, |
const Variable< Matrix > & | rThisVar, | ||
const double | TotalWeight | ||
) |
void Kratos::InternalVariablesInterpolationProcess::PonderateVariable | ( | GeometryType & | rThisGeometry, |
const Variable< Vector > & | rThisVar, | ||
const double | TotalWeight | ||
) |
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Process.