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::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType > Class Template Reference

Tools to apply slip conditions @detail A utility to rotate the local contributions of certain nodes to the system matrix, which is required to apply slip conditions in arbitrary directions. More...

#include <flow_rate_slip_utility.h>

Inheritance diagram for Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >:
Collaboration diagram for Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >:

Public Member Functions

Life Cycle
 FlowRateSlipUtility ()
 Default constructor. More...
 
virtual ~FlowRateSlipUtility ()
 Destructor. More...
 
Operations
virtual void ApplySlipCondition (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const override
 Apply slip boundary conditions to the rotated local contributions. @detail This function takes the local system contributions rotated so each node's velocities are expressed using a base oriented with its normal and imposes that the normal velocity is equal to the mesh velocity in the normal direction. More...
 
virtual void ApplySlipCondition (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const override
 RHS only version of ApplySlipCondition. More...
 
virtual void RotateVelocities (ModelPart &rModelPart) const override
 Transform nodal velocities to the rotated coordinates (aligned with each node's normal) More...
 
virtual void RecoverVelocities (ModelPart &rModelPart) const override
 
Input and output
virtual std::string Info () const override
 
virtual void PrintInfo (std::ostream &rOStream) const override
 
- Public Member Functions inherited from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >
 CoordinateTransformationUtils (const unsigned int DomainSize, const unsigned int NumRowsPerNode, const Kratos::Flags &rSelectionFlag=SLIP)
 Constructor. More...
 
virtual ~CoordinateTransformationUtils ()
 Destructor. More...
 
virtual void CalculateRotationOperatorPure (TLocalMatrixType &rRotationMatrix, const GeometryType::PointType &rThisPoint) const
 Calculates rotation operator for given point. More...
 
void LocalRotationOperatorPure (BoundedMatrix< double, 3, 3 > &rRot, const GeometryType::PointType &rThisPoint) const
 
void LocalRotationOperatorPure (BoundedMatrix< double, 2, 2 > &rRot, const GeometryType::PointType &rThisPoint) const
 
virtual void CalculateRotationOperatorPureShapeSensitivities (TLocalMatrixType &rRotationMatrixShapeDerivative, const std::size_t DerivativeNodeIndex, const std::size_t DerivativeDirectionIndex, const GeometryType::PointType &rThisPoint) const
 Calculates rotation nodal matrix shape sensitivities. More...
 
virtual void CalculateRotationOperatorPureShapeSensitivities (BoundedMatrix< double, 2, 2 > &rOutput, const std::size_t DerivativeNodeIndex, const std::size_t DerivativeDirectionIndex, const GeometryType::PointType &rThisPoint) const
 Calculate 2d rotation nodal matrix shape sensitivities. More...
 
virtual void CalculateRotationOperatorPureShapeSensitivities (BoundedMatrix< double, 3, 3 > &rOutput, const std::size_t DerivativeNodeIndex, const std::size_t DerivativeDirectionIndex, const GeometryType::PointType &rThisPoint) const
 Calculate 3d rotation nodal matrix shape sensitivities. More...
 
virtual void Rotate (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 Rotate the local system contributions so that they are oriented with each node's normal. More...
 
virtual void Rotate (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 RHS only version of Rotate. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (CoordinateTransformationUtils)
 Pointer definition of CoordinateTransformationUtils. More...
 

Type Definitions

typedef CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType > BaseType
 
typedef std::size_t SizeType
 
typedef Node NodeType
 
typedef Geometry< NodeTypeGeometryType
 
 KRATOS_CLASS_POINTER_DEFINITION (FlowRateSlipUtility)
 Pointer definition of FlowRateSlipUtility. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >
typedef Node NodeType
 
typedef Geometry< NodeGeometryType
 
- Protected Member Functions inherited from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >
template<unsigned int TDim, unsigned int TBlockSize, unsigned int TSkip = 0>
void RotateAux (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
template<unsigned int TDim>
void RotateAuxPure (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
template<unsigned int TBlockSize, unsigned int TSkip = 0>
void LocalRotationOperator2D (BoundedMatrix< double, TBlockSize, TBlockSize > &rRot, GeometryType::PointType &rThisPoint) const
 
template<unsigned int TBlockSize, unsigned int TSkip = 0>
void LocalRotationOperator3D (BoundedMatrix< double, TBlockSize, TBlockSize > &rRot, GeometryType::PointType &rThisPoint) const
 
bool IsSlip (const Node &rNode) const
 
template<class TVectorType >
double Normalize (TVectorType &rThis) const
 Normalize a vector. More...
 
unsigned int GetDomainSize () const
 
unsigned int GetBlockSize () const
 

Detailed Description

template<class TLocalMatrixType, class TLocalVectorType, class TValueType>
class Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >

Tools to apply slip conditions @detail A utility to rotate the local contributions of certain nodes to the system matrix, which is required to apply slip conditions in arbitrary directions.

Member Typedef Documentation

◆ BaseType

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
typedef CoordinateTransformationUtils<TLocalMatrixType,TLocalVectorType,TValueType> Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::BaseType

◆ GeometryType

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
typedef Geometry<NodeType> Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::GeometryType

◆ NodeType

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
typedef Node Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::NodeType

◆ SizeType

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
typedef std::size_t Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::SizeType

Constructor & Destructor Documentation

◆ FlowRateSlipUtility()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::FlowRateSlipUtility ( )
inline

Default constructor.

◆ ~FlowRateSlipUtility()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::~FlowRateSlipUtility ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ ApplySlipCondition() [1/2]

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual void Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::ApplySlipCondition ( TLocalMatrixType &  rLocalMatrix,
TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inlineoverridevirtual

Apply slip boundary conditions to the rotated local contributions. @detail This function takes the local system contributions rotated so each node's velocities are expressed using a base oriented with its normal and imposes that the normal velocity is equal to the mesh velocity in the normal direction.

Parameters
rLocalMatrixA reference to the LHS local matrix
rLocalVectorA reference to the RHS local vector
rGeometryA reference to the geometry of the element or condition

Reimplemented from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >.

◆ ApplySlipCondition() [2/2]

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual void Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::ApplySlipCondition ( TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inlineoverridevirtual

RHS only version of ApplySlipCondition.

Parameters
rLocalVectorA reference to the RHS local vector
rGeometryA reference to the geometry of the element or condition

Reimplemented from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >.

◆ Info()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual std::string Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::Info ( ) const
inlineoverridevirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::KRATOS_CLASS_POINTER_DEFINITION ( FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >  )

Pointer definition of FlowRateSlipUtility.

◆ PrintInfo()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual void Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >.

◆ RecoverVelocities()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual void Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::RecoverVelocities ( ModelPart rModelPart) const
inlineoverridevirtual

Transform nodal velocities from the rotated system to the original one

Parameters
rModelPartA reference to the model part
See also
RotateVelocities

Reimplemented from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >.

◆ RotateVelocities()

template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
virtual void Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >::RotateVelocities ( ModelPart rModelPart) const
inlineoverridevirtual

Transform nodal velocities to the rotated coordinates (aligned with each node's normal)

Parameters
rModelPartA reference to the model part
See also
RecoverVelocities

Reimplemented from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >.


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