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.
List of all members
Kratos::FixedMeshALEUtilities Class Reference

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>

Collaboration diagram for Kratos::FixedMeshALEUtilities:

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...
 

Type Definitions

typedef Element::NodesArrayType NodesArrayType
 
typedef UblasSpace< double, Matrix, VectorLocalSpaceType
 
typedef UblasSpace< double, CompressedMatrix, VectorSparseSpaceType
 
typedef LinearSolver< SparseSpaceType, LocalSpaceTypeLinearSolverType
 
typedef LinearSolverFactory< SparseSpaceType, LocalSpaceTypeLinearSolverFactoryType
 
typedef ResidualBasedIncrementalUpdateStaticScheme< SparseSpaceType, LocalSpaceTypeSchemeType
 
typedef ResidualBasedLinearStrategy< SparseSpaceType, LocalSpaceType, LinearSolverTypeStrategyType
 
typedef ResidualBasedBlockBuilderAndSolver< SparseSpaceType, LocalSpaceType, LinearSolverTypeBuilderAndSolverType
 
typedef CalculateEmbeddedNodalVariableFromSkinProcess< array_1d< double, 3 >, SparseSpaceType, LocalSpaceType, LinearSolverTypeEmbeddedNodalVariableProcessArrayType
 
typedef SchemeType::Pointer SchemePointerType
 
typedef StrategyType::Pointer StrategyPointerType
 
typedef BuilderAndSolverType::Pointer BuilderAndSolverPointerType
 
 KRATOS_CLASS_POINTER_DEFINITION (FixedMeshALEUtilities)
 Pointer definition of FixedMeshALEUtilities. More...
 

Detailed Description

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.

Member Typedef Documentation

◆ BuilderAndSolverPointerType

typedef BuilderAndSolverType::Pointer Kratos::FixedMeshALEUtilities::BuilderAndSolverPointerType

◆ BuilderAndSolverType

◆ EmbeddedNodalVariableProcessArrayType

◆ LinearSolverFactoryType

◆ LinearSolverType

◆ LocalSpaceType

◆ NodesArrayType

◆ SchemePointerType

◆ SchemeType

◆ SparseSpaceType

◆ StrategyPointerType

◆ StrategyType

Constructor & Destructor Documentation

◆ FixedMeshALEUtilities()

Kratos::FixedMeshALEUtilities::FixedMeshALEUtilities ( Model rModel,
Parameters rParameters 
)

Constructor with model and parameters.

◆ ~FixedMeshALEUtilities()

virtual Kratos::FixedMeshALEUtilities::~FixedMeshALEUtilities ( )
virtualdefault

Destructor.

Member Function Documentation

◆ ComputeMeshMovement()

void Kratos::FixedMeshALEUtilities::ComputeMeshMovement ( const double  DeltaTime)
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.

Parameters
DeltaTimetime step value (required for the computation of the MESH_VELOCITY)

◆ Info()

std::string Kratos::FixedMeshALEUtilities::Info ( ) const

Turn back information as a string.

◆ Initialize()

void Kratos::FixedMeshALEUtilities::Initialize ( ModelPart rOriginModelPart)
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.

Parameters
rOriginModelPartmodel part from where the nodes and elements are copied

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::FixedMeshALEUtilities::KRATOS_CLASS_POINTER_DEFINITION ( FixedMeshALEUtilities  )

Pointer definition of FixedMeshALEUtilities.

◆ PrintData()

void Kratos::FixedMeshALEUtilities::PrintData ( std::ostream &  rOStream) const

Print object's data.

◆ PrintInfo()

void Kratos::FixedMeshALEUtilities::PrintInfo ( std::ostream &  rOStream) const

Print information about this object.

◆ ProjectVirtualValues()

template<unsigned int TDim>
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.

Template Parameters
TDimTemplate parameter containing the problem domain size
Parameters
rOriginModelPartReference to the model part to which the values are projected
BufferSizeBuffer values that are projected

◆ SetVirtualMeshValuesFromOriginMesh()

void Kratos::FixedMeshALEUtilities::SetVirtualMeshValuesFromOriginMesh ( )
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.

◆ UndoMeshMovement()

void Kratos::FixedMeshALEUtilities::UndoMeshMovement ( )
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.


The documentation for this class was generated from the following files: