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 perform the FM-ALE algorithm operations This utility implements the Fixed Mesh - Arbitrary Lagrangian Eulerian (FM-ALE) algorithm operations. After setting a virtual mesh, which is a copy of the problem background element mesh, it is moved in accordante to the immersed object movement. The virtual mesh movement is solved using a common ALE mesh solver (in this case the Laplacian mesh solver is used). Once the mesh movement, including the mesh velocity, have been computed, the origin mesh historical values (velocity and pressure), as well as the mesh velocity, are computed as a projection from the virtual mesh. This is required to consistently initialize the historical values when nodes change its topological status. More...
#include <fixed_mesh_ale_utilities.h>
Public Member Functions | |
Life Cycle | |
FixedMeshALEUtilities (Model &rModel, Parameters &rParameters) | |
Constructor with model and parameters. More... | |
virtual | ~FixedMeshALEUtilities ()=default |
Destructor. More... | |
Operations | |
virtual void | Initialize (ModelPart &rOriginModelPart) |
Initializes the FM-ALE utility This method fills the virtual model part as a copy of the origin model part. In case it is used, it also creates and initializes the mesh moving strategy. More... | |
virtual void | SetVirtualMeshValuesFromOriginMesh () |
Set the Virtual Mesh Values From Origin Mesh object This method sets the VELOCITY and PRESSURE historical values in the virtual mesh. The values are retrieved from the origin mesh. This needs to be called in the InitializeSolutionStep of the solver. Note that if sub-iteration is done (e.g. FSI) this must be called before and just once. More... | |
virtual void | ComputeMeshMovement (const double DeltaTime) |
Compute the virtual mesh movement This method computes the virtual mesh movement in accordance to the immersed structure DISPLACEMENT values. To that purpose it sets the fixity and creates & solves the mesh moving strategy. More... | |
virtual void | UndoMeshMovement () |
Revert the virtual mesh movement This method reverts the virtual mesh movement to recover its original configuration, which coincides with the background mesh one. It has to be called once the values projection from the virtual mesh to the origin has been performed. More... | |
template<unsigned int TDim> | |
void | ProjectVirtualValues (ModelPart &rOriginModelPart, const unsigned int BufferSize=3) |
This method projects the virtual model part mesh values to the origin mesh Once the FM-ALE operations have been performed, this method projects the nodal values from the virtual mesh to the origin mesh. The projected variables are PRESSURE, VELOCITY and MESH_VELOCITY. More... | |
Input and output | |
std::string | Info () const |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const |
Print information about this object. More... | |
void | PrintData (std::ostream &rOStream) const |
Print object's data. More... | |
Utility to perform the FM-ALE algorithm operations This utility implements the Fixed Mesh - Arbitrary Lagrangian Eulerian (FM-ALE) algorithm operations. After setting a virtual mesh, which is a copy of the problem background element mesh, it is moved in accordante to the immersed object movement. The virtual mesh movement is solved using a common ALE mesh solver (in this case the Laplacian mesh solver is used). Once the mesh movement, including the mesh velocity, have been computed, the origin mesh historical values (velocity and pressure), as well as the mesh velocity, are computed as a projection from the virtual mesh. This is required to consistently initialize the historical values when nodes change its topological status.
typedef BuilderAndSolverType::Pointer Kratos::FixedMeshALEUtilities::BuilderAndSolverPointerType |
typedef ResidualBasedBlockBuilderAndSolver<SparseSpaceType, LocalSpaceType, LinearSolverType> Kratos::FixedMeshALEUtilities::BuilderAndSolverType |
typedef CalculateEmbeddedNodalVariableFromSkinProcess<array_1d<double, 3>, SparseSpaceType, LocalSpaceType, LinearSolverType> Kratos::FixedMeshALEUtilities::EmbeddedNodalVariableProcessArrayType |
typedef LinearSolverFactory<SparseSpaceType, LocalSpaceType> Kratos::FixedMeshALEUtilities::LinearSolverFactoryType |
typedef LinearSolver<SparseSpaceType, LocalSpaceType> Kratos::FixedMeshALEUtilities::LinearSolverType |
typedef SchemeType::Pointer Kratos::FixedMeshALEUtilities::SchemePointerType |
typedef ResidualBasedIncrementalUpdateStaticScheme<SparseSpaceType, LocalSpaceType> Kratos::FixedMeshALEUtilities::SchemeType |
typedef StrategyType::Pointer Kratos::FixedMeshALEUtilities::StrategyPointerType |
typedef ResidualBasedLinearStrategy<SparseSpaceType, LocalSpaceType, LinearSolverType> Kratos::FixedMeshALEUtilities::StrategyType |
Kratos::FixedMeshALEUtilities::FixedMeshALEUtilities | ( | Model & | rModel, |
Parameters & | rParameters | ||
) |
Constructor with model and parameters.
|
virtualdefault |
Destructor.
|
virtual |
Compute the virtual mesh movement This method computes the virtual mesh movement in accordance to the immersed structure DISPLACEMENT values. To that purpose it sets the fixity and creates & solves the mesh moving strategy.
DeltaTime | time step value (required for the computation of the MESH_VELOCITY) |
std::string Kratos::FixedMeshALEUtilities::Info | ( | ) | const |
Turn back information as a string.
|
virtual |
Initializes the FM-ALE utility This method fills the virtual model part as a copy of the origin model part. In case it is used, it also creates and initializes the mesh moving strategy.
rOriginModelPart | model part from where the nodes and elements are copied |
Kratos::FixedMeshALEUtilities::KRATOS_CLASS_POINTER_DEFINITION | ( | FixedMeshALEUtilities | ) |
Pointer definition of FixedMeshALEUtilities.
void Kratos::FixedMeshALEUtilities::PrintData | ( | std::ostream & | rOStream | ) | const |
Print object's data.
void Kratos::FixedMeshALEUtilities::PrintInfo | ( | std::ostream & | rOStream | ) | const |
Print information about this object.
template void Kratos::FixedMeshALEUtilities::ProjectVirtualValues< 3 > | ( | ModelPart & | rOriginModelPart, |
const unsigned int | BufferSize = 3 |
||
) |
This method projects the virtual model part mesh values to the origin mesh Once the FM-ALE operations have been performed, this method projects the nodal values from the virtual mesh to the origin mesh. The projected variables are PRESSURE, VELOCITY and MESH_VELOCITY.
TDim | Template parameter containing the problem domain size |
rOriginModelPart | Reference to the model part to which the values are projected |
BufferSize | Buffer values that are projected |
|
virtual |
Set the Virtual Mesh Values From Origin Mesh object This method sets the VELOCITY and PRESSURE historical values in the virtual mesh. The values are retrieved from the origin mesh. This needs to be called in the InitializeSolutionStep of the solver. Note that if sub-iteration is done (e.g. FSI) this must be called before and just once.
|
virtual |
Revert the virtual mesh movement This method reverts the virtual mesh movement to recover its original configuration, which coincides with the background mesh one. It has to be called once the values projection from the virtual mesh to the origin has been performed.