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.
Classes | Protected Attributes | List of all members
Kratos::DerivativeRecovery< TDim > Class Template Reference

This class constructs nodal approximations of the derivatives of a field given a Lagrangian linear FEM approximation of it. More...

#include <derivative_recovery.h>

Collaboration diagram for Kratos::DerivativeRecovery< TDim >:

Public Member Functions

Life Cycle
 DerivativeRecovery (ModelPart &r_model_part, Parameters &r_parameters)
 Default constructor. More...
 
virtual ~DerivativeRecovery ()
 Destructor. More...
 
Operations
void AddTimeDerivative (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &material_derivative_container)
 
void AddTimeDerivativeComponent (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &material_derivative_container, const int i_component)
 
void RecoverGradientOfAScalar (const VariableData &origin_variable, const VariableData &destination_variable)
 
template<class TScalarVariable >
void RecoverSuperconvergentGradient (ModelPart &r_model_part, TScalarVariable &scalar_container, Variable< array_1d< double, 3 > > &gradient_container)
 
void RecoverSuperconvergentMatDeriv (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &vector_rate_container, Variable< array_1d< double, 3 > > &mat_deriv_container)
 
void RecoverSuperconvergentLaplacian (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &laplacian_container)
 
void RecoverSuperconvergentVelocityLaplacianFromGradient (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &laplacian_container)
 
void RecoverSuperconvergentMatDerivAndLaplacian (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &vector_rate_container, Variable< array_1d< double, 3 > > &mat_deriv_container, Variable< array_1d< double, 3 > > &laplacian_container)
 
void CalculateVectorMaterialDerivative (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &vector_rate_container, Variable< array_1d< double, 3 > > &material_derivative_container)
 
void RecoverLagrangianAcceleration (ModelPart &r_model_part)
 
void CalculateVectorMaterialDerivativeFromGradient (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_gradient_container_x, Variable< array_1d< double, 3 > > &vector_gradient_container_y, Variable< array_1d< double, 3 > > &vector_gradient_container_z, Variable< array_1d< double, 3 > > &vector_rate_container, Variable< array_1d< double, 3 > > &material_derivative_container)
 
void CalculateVectorMaterialDerivativeComponent (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_component_gradient_container, Variable< array_1d< double, 3 > > &vector_rate_container, Variable< array_1d< double, 3 > > &material_derivative_container)
 
void CalculateVorticityFromGradient (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_gradient_container_x, Variable< array_1d< double, 3 > > &vector_gradient_container_y, Variable< array_1d< double, 3 > > &vector_gradient_container_z, Variable< array_1d< double, 3 > > &vorticity_container)
 
void CalculateVorticityContributionOfTheGradientOfAComponent (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_component_gradient_container, Variable< array_1d< double, 3 > > &vorticity_container)
 
template<class TScalarVariable >
void CalculateGradient (ModelPart &r_model_part, TScalarVariable &scalar_container, Variable< array_1d< double, 3 > > &gradient_container)
 
void SmoothVectorField (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_field, Variable< array_1d< double, 3 > > &auxiliary_veriable)
 
void CalculateVectorLaplacian (ModelPart &r_model_part, Variable< array_1d< double, 3 > > &vector_container, Variable< array_1d< double, 3 > > &laplacian_container)
 
void CalculateVelocityLaplacianRate (ModelPart &r_model_part)
 
Input and output
virtual std::string Info () const
 Turn back information as a stemplate<class T, std::size_t dim> tring. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
Friends
DenseVector< unsigned int > & GetElementPartition ()
 
DenseVector< unsigned int > & GetNodePartition ()
 
ElementsArrayType::iterator GetElementPartitionBegin (ModelPart &r_model_part, unsigned int k)
 
ElementsArrayType::iterator GetElementPartitionEnd (ModelPart &r_model_part, unsigned int k)
 
NodesArrayType::iterator GetNodePartitionBegin (ModelPart &r_model_part, unsigned int k)
 
NodesArrayType::iterator GetNodePartitionEnd (ModelPart &r_model_part, unsigned int k)
 

Protected Attributes

DenseVector< unsigned intmElementsPartition
 
DenseVector< unsigned intmNodesPartition
 

Type Definitions

typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ElementsArrayType::ContainerType ResultElementsContainerType
 
typedef std::vector< ResultElementsContainerTypeVectorResultElementsContainerType
 
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef NodesArrayType::ContainerType ResultNodesContainerType
 
typedef std::vector< ResultNodesContainerTypeVectorResultNodesContainerType
 
typedef std::vector< Node::Pointer > NodalPointersContainerType
 
typedef ModelPart::NodesContainerType::iterator NodeIteratorType
 
typedef std::size_t ListIndexType
 
typedef SpatialSearch::DistanceType DistanceType
 
typedef SpatialSearch::VectorDistanceType VectorDistanceType
 
typedef DerivativeRecovery< TDim > DerivativeRecovery_TDim
 Pointer definition of DerivativeRecovery. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (DerivativeRecovery_TDim)
 

Detailed Description

template<std::size_t TDim>
class Kratos::DerivativeRecovery< TDim >

This class constructs nodal approximations of the derivatives of a field given a Lagrangian linear FEM approximation of it.

Author
Guillermo Casas Gonzalez gcasa.nosp@m.s@ci.nosp@m.mne.u.nosp@m.pc.e.nosp@m.du

Member Typedef Documentation

◆ DerivativeRecovery_TDim

template<std::size_t TDim>
typedef DerivativeRecovery<TDim> Kratos::DerivativeRecovery< TDim >::DerivativeRecovery_TDim

Pointer definition of DerivativeRecovery.

◆ DistanceType

template<std::size_t TDim>
typedef SpatialSearch::DistanceType Kratos::DerivativeRecovery< TDim >::DistanceType

◆ ElementsArrayType

◆ ListIndexType

template<std::size_t TDim>
typedef std::size_t Kratos::DerivativeRecovery< TDim >::ListIndexType

◆ NodalPointersContainerType

template<std::size_t TDim>
typedef std::vector<Node::Pointer> Kratos::DerivativeRecovery< TDim >::NodalPointersContainerType

◆ NodeIteratorType

◆ NodesArrayType

template<std::size_t TDim>
typedef ModelPart::NodesContainerType Kratos::DerivativeRecovery< TDim >::NodesArrayType

◆ ResultElementsContainerType

◆ ResultNodesContainerType

◆ VectorDistanceType

◆ VectorResultElementsContainerType

template<std::size_t TDim>
typedef std::vector<ResultElementsContainerType> Kratos::DerivativeRecovery< TDim >::VectorResultElementsContainerType

◆ VectorResultNodesContainerType

template<std::size_t TDim>
typedef std::vector<ResultNodesContainerType> Kratos::DerivativeRecovery< TDim >::VectorResultNodesContainerType

Constructor & Destructor Documentation

◆ DerivativeRecovery()

template<std::size_t TDim>
Kratos::DerivativeRecovery< TDim >::DerivativeRecovery ( ModelPart r_model_part,
Parameters r_parameters 
)
inline

Default constructor.

◆ ~DerivativeRecovery()

template<std::size_t TDim>
virtual Kratos::DerivativeRecovery< TDim >::~DerivativeRecovery ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AddTimeDerivative()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::AddTimeDerivative ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  material_derivative_container 
)

◆ AddTimeDerivativeComponent()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::AddTimeDerivativeComponent ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  material_derivative_container,
const int  i_component 
)

◆ CalculateGradient()

template<std::size_t TDim>
template<class TScalarVariable >
template void Kratos::DerivativeRecovery< TDim >::CalculateGradient< Variable< double > > ( ModelPart r_model_part,
TScalarVariable &  scalar_container,
Variable< array_1d< double, 3 > > &  gradient_container 
)

◆ CalculateVectorLaplacian()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVectorLaplacian ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  laplacian_container 
)

◆ CalculateVectorMaterialDerivative()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVectorMaterialDerivative ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  vector_rate_container,
Variable< array_1d< double, 3 > > &  material_derivative_container 
)

◆ CalculateVectorMaterialDerivativeComponent()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVectorMaterialDerivativeComponent ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_component_gradient_container,
Variable< array_1d< double, 3 > > &  vector_rate_container,
Variable< array_1d< double, 3 > > &  material_derivative_container 
)

◆ CalculateVectorMaterialDerivativeFromGradient()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVectorMaterialDerivativeFromGradient ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_gradient_container_x,
Variable< array_1d< double, 3 > > &  vector_gradient_container_y,
Variable< array_1d< double, 3 > > &  vector_gradient_container_z,
Variable< array_1d< double, 3 > > &  vector_rate_container,
Variable< array_1d< double, 3 > > &  material_derivative_container 
)

◆ CalculateVelocityLaplacianRate()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVelocityLaplacianRate ( ModelPart r_model_part)

◆ CalculateVorticityContributionOfTheGradientOfAComponent()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVorticityContributionOfTheGradientOfAComponent ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_component_gradient_container,
Variable< array_1d< double, 3 > > &  vorticity_container 
)

◆ CalculateVorticityFromGradient()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::CalculateVorticityFromGradient ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_gradient_container_x,
Variable< array_1d< double, 3 > > &  vector_gradient_container_y,
Variable< array_1d< double, 3 > > &  vector_gradient_container_z,
Variable< array_1d< double, 3 > > &  vorticity_container 
)

◆ GetElementPartition()

template<std::size_t TDim>
DenseVector<unsigned int>& Kratos::DerivativeRecovery< TDim >::GetElementPartition ( )
inline

◆ GetElementPartitionBegin()

template<std::size_t TDim>
ElementsArrayType::iterator Kratos::DerivativeRecovery< TDim >::GetElementPartitionBegin ( ModelPart r_model_part,
unsigned int  k 
)
inline

◆ GetElementPartitionEnd()

template<std::size_t TDim>
ElementsArrayType::iterator Kratos::DerivativeRecovery< TDim >::GetElementPartitionEnd ( ModelPart r_model_part,
unsigned int  k 
)
inline

◆ GetNodePartition()

template<std::size_t TDim>
DenseVector<unsigned int>& Kratos::DerivativeRecovery< TDim >::GetNodePartition ( )
inline

◆ GetNodePartitionBegin()

template<std::size_t TDim>
NodesArrayType::iterator Kratos::DerivativeRecovery< TDim >::GetNodePartitionBegin ( ModelPart r_model_part,
unsigned int  k 
)
inline

◆ GetNodePartitionEnd()

template<std::size_t TDim>
NodesArrayType::iterator Kratos::DerivativeRecovery< TDim >::GetNodePartitionEnd ( ModelPart r_model_part,
unsigned int  k 
)
inline

◆ Info()

template<std::size_t TDim>
virtual std::string Kratos::DerivativeRecovery< TDim >::Info ( ) const
inlinevirtual

Turn back information as a stemplate<class T, std::size_t dim> tring.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<std::size_t TDim>
Kratos::DerivativeRecovery< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( DerivativeRecovery_TDim  )

◆ PrintData()

template<std::size_t TDim>
virtual void Kratos::DerivativeRecovery< TDim >::PrintData ( std::ostream &  rOStream) const
inlinevirtual

Print object's data.

◆ PrintInfo()

template<std::size_t TDim>
virtual void Kratos::DerivativeRecovery< TDim >::PrintInfo ( std::ostream &  rOStream) const
inlinevirtual

Print information about this object.

◆ RecoverGradientOfAScalar()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverGradientOfAScalar ( const VariableData origin_variable,
const VariableData destination_variable 
)

◆ RecoverLagrangianAcceleration()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverLagrangianAcceleration ( ModelPart r_model_part)

◆ RecoverSuperconvergentGradient()

template<std::size_t TDim>
template<class TScalarVariable >
template void Kratos::DerivativeRecovery< TDim >::RecoverSuperconvergentGradient< Variable< double > > ( ModelPart r_model_part,
TScalarVariable &  scalar_container,
Variable< array_1d< double, 3 > > &  gradient_container 
)

◆ RecoverSuperconvergentLaplacian()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverSuperconvergentLaplacian ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  laplacian_container 
)

◆ RecoverSuperconvergentMatDeriv()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverSuperconvergentMatDeriv ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  vector_rate_container,
Variable< array_1d< double, 3 > > &  mat_deriv_container 
)

◆ RecoverSuperconvergentMatDerivAndLaplacian()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverSuperconvergentMatDerivAndLaplacian ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  vector_rate_container,
Variable< array_1d< double, 3 > > &  mat_deriv_container,
Variable< array_1d< double, 3 > > &  laplacian_container 
)

◆ RecoverSuperconvergentVelocityLaplacianFromGradient()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::RecoverSuperconvergentVelocityLaplacianFromGradient ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_container,
Variable< array_1d< double, 3 > > &  laplacian_container 
)

◆ SmoothVectorField()

template<std::size_t TDim>
void Kratos::DerivativeRecovery< TDim >::SmoothVectorField ( ModelPart r_model_part,
Variable< array_1d< double, 3 > > &  vector_field,
Variable< array_1d< double, 3 > > &  auxiliary_veriable 
)

Member Data Documentation

◆ mElementsPartition

template<std::size_t TDim>
DenseVector<unsigned int> Kratos::DerivativeRecovery< TDim >::mElementsPartition
protected

◆ mNodesPartition

template<std::size_t TDim>
DenseVector<unsigned int> Kratos::DerivativeRecovery< TDim >::mNodesPartition
protected

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