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

#include <mpm_boundary_rotation_utility.h>

Inheritance diagram for Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >:
Collaboration diagram for Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >:

Public Member Functions

Life Cycle
 MPMBoundaryRotationUtility (const unsigned int DomainSize, const unsigned int BlockSize, const Variable< double > &rVariable)
 Constructor. More...
 
 ~MPMBoundaryRotationUtility () override
 Destructor. More...
 
MPMBoundaryRotationUtilityoperator= (MPMBoundaryRotationUtility const &rOther)
 Assignment operator. More...
 
Operations
void Rotate (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const override
 Rotate the local system contributions so that they are oriented with each node's normal. More...
 
void RotateRHS (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 RHS only version of Rotate. More...
 
void ApplySlipCondition (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const override
 Apply roler type boundary conditions to the rotated local contributions. More...
 
void ApplySlipCondition (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const override
 RHS only version of ApplySlipCondition. More...
 
void ElementApplySlipCondition (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
void ElementApplySlipCondition (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
void ConditionApplySlipCondition (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
void ConditionApplySlipCondition (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 
bool IsPenalty (GeometryType &rGeometry) const
 
virtual void RotateDisplacements (ModelPart &rModelPart) const
 Same functionalities as RotateVelocities, just to have a clear function naming. More...
 
void RotateVelocities (ModelPart &rModelPart) const override
 
virtual void RecoverDisplacements (ModelPart &rModelPart) const
 Same functionalities as RecoverVelocities, just to have a clear function naming. More...
 
void RecoverVelocities (ModelPart &rModelPart) const override
 
void CalculateReactionForces (ModelPart &rModelPart)
 
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...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, double >
 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 (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const
 RHS only version of Rotate. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (CoordinateTransformationUtils)
 Pointer definition of CoordinateTransformationUtils. More...
 

Type Definitions

typedef Node NodeType
 
typedef Geometry< NodeGeometryType
 
 KRATOS_CLASS_POINTER_DEFINITION (MPMBoundaryRotationUtility)
 Pointer definition of MPMBoundaryRotationUtility. More...
 

Additional Inherited Members

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

Member Typedef Documentation

◆ GeometryType

template<class TLocalMatrixType , class TLocalVectorType >
typedef Geometry< Node > Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::GeometryType

◆ NodeType

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

Constructor & Destructor Documentation

◆ MPMBoundaryRotationUtility()

template<class TLocalMatrixType , class TLocalVectorType >
Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::MPMBoundaryRotationUtility ( const unsigned int  DomainSize,
const unsigned int  BlockSize,
const Variable< double > &  rVariable 
)
inline

Constructor.

Parameters
DomainSizeNumber of space dimensions (2 or 3)
NumRowsPerNodeNumber of matrix or vector rows associated to each node. Displacement DOFs are assumed to be the first mDomainSize rows in each block of rows.
rVariableKratos variable used to flag nodes where local system contributions will be rotated. All nodes with rVariable != Zero will be rotated.

◆ ~MPMBoundaryRotationUtility()

template<class TLocalMatrixType , class TLocalVectorType >
Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::~MPMBoundaryRotationUtility ( )
inlineoverride

Destructor.

Member Function Documentation

◆ ApplySlipCondition() [1/2]

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

Apply roler type boundary conditions to the rotated local contributions.

This function takes the rotated local system contributions so each node's displacement are expressed using a base oriented with its normal and imposes that the normal displacement is equal to the mesh displacement in the normal direction.

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

◆ ApplySlipCondition() [2/2]

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

RHS only version of ApplySlipCondition.

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

◆ CalculateReactionForces()

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::CalculateReactionForces ( ModelPart rModelPart)
inline

◆ ConditionApplySlipCondition() [1/2]

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::ConditionApplySlipCondition ( TLocalMatrixType &  rLocalMatrix,
TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inline

◆ ConditionApplySlipCondition() [2/2]

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::ConditionApplySlipCondition ( TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inline

◆ ElementApplySlipCondition() [1/2]

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::ElementApplySlipCondition ( TLocalMatrixType &  rLocalMatrix,
TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inline

◆ ElementApplySlipCondition() [2/2]

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::ElementApplySlipCondition ( TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inline

◆ Info()

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

Turn back information as a string.

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

◆ IsPenalty()

template<class TLocalMatrixType , class TLocalVectorType >
bool Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::IsPenalty ( GeometryType rGeometry) const
inline

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of MPMBoundaryRotationUtility.

◆ operator=()

template<class TLocalMatrixType , class TLocalVectorType >
MPMBoundaryRotationUtility& Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::operator= ( MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType > const &  rOther)
inline

Assignment operator.

◆ PrintData()

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PrintInfo()

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

Print information about this object.

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

◆ RecoverDisplacements()

template<class TLocalMatrixType , class TLocalVectorType >
virtual void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::RecoverDisplacements ( ModelPart rModelPart) const
inlinevirtual

Same functionalities as RecoverVelocities, just to have a clear function naming.

◆ RecoverVelocities()

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

Transform nodal displacement from the rotated system to the original configuration The name is kept to be Recover Velocities, since it is currently a derived class of coordinate_transformation_utilities in the core

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

◆ Rotate()

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::Rotate ( TLocalMatrixType &  rLocalMatrix,
TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inlineoverridevirtual

Rotate the local system contributions so that they are oriented with each node's normal.

Parameters
rLocalMatrixLocal system matrix
rLocalVectorLocal RHS vector
rGeometryA reference to the element's (or condition's) geometry

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

◆ RotateDisplacements()

template<class TLocalMatrixType , class TLocalVectorType >
virtual void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::RotateDisplacements ( ModelPart rModelPart) const
inlinevirtual

Same functionalities as RotateVelocities, just to have a clear function naming.

◆ RotateRHS()

template<class TLocalMatrixType , class TLocalVectorType >
void Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >::RotateRHS ( TLocalVectorType &  rLocalVector,
GeometryType rGeometry 
) const
inline

RHS only version of Rotate.

◆ RotateVelocities()

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

Transform nodal displacement to the rotated coordinates (aligned with each node's normal) The name is kept to be Rotate Velocities, since it is currently a derived class of coordinate_transformation_utilities in the core

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


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