|
|
| | 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 | ApplySlipCondition (TLocalMatrixType &rLocalMatrix, TLocalVectorType &rLocalVector, GeometryType &rGeometry) const |
| | Apply slip boundary conditions to the rotated local contributions. More...
|
| |
| virtual void | ApplySlipCondition (TLocalVectorType &rLocalVector, GeometryType &rGeometry) const |
| | RHS only version of ApplySlipCondition. More...
|
| |
| virtual void | RotateVelocities (ModelPart &rModelPart) const |
| | Transform nodal velocities to the rotated coordinates (aligned with each node's normal) More...
|
| |
| virtual void | RecoverVelocities (ModelPart &rModelPart) const |
| | Transform nodal velocities from the rotated system to the original one. More...
|
| |
|
| virtual std::string | Info () const |
| | Turn back information as a string. 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...
|
| |
|
|
| 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 |
| |
template<class TLocalMatrixType, class TLocalVectorType, class TValueType>
class Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >
A utility to rotate the local contributions of certain nodes to the system matrix, which is required to apply slip conditions in arbitrary directions. TODO: Move code to source file. Use explicit template instantiation (this way the compilation is faster).
template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
Apply slip boundary conditions to the rotated local contributions.
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.
Reimplemented in Kratos::FlowRateSlipUtility< TLocalMatrixType, TLocalVectorType, TValueType >, Kratos::MPMBoundaryRotationUtility< TLocalMatrixType, TLocalVectorType >, Kratos::CompressibleElementRotationUtility< TLocalMatrixType, TLocalVectorType >, Kratos::FlowRateSlipUtility< LocalSystemMatrixType, LocalSystemVectorType, double >, and Kratos::MPMBoundaryRotationUtility< LocalSystemMatrixType, LocalSystemVectorType >.
template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
Calculate 2d rotation nodal matrix shape sensitivities.
This method calculates shape sensitivities of 2D rotation matrix for given node. Nodal NORMAL(historical data container) and NORMAL_SHAPE_SENSITIVITY(non-historical data contaienr) variables should be properly initialized.
NORMAL_SHAPE_SENSITIVITY matrix should be properly sized and initialized with proper shape sensitivity values rows: (number_of_neighbour_nodes + 1) * 2 cols: 2
- Parameters
-
| rOutput | Output shape sensitivities matrix w.r.t. NodeIndex and DerivativeIndex |
| DerivativeNodeIndex | NodeIndex for which shape sensitivity matrix is computed |
| DerivativeDirectionIndex | Direction index of the node for which shape sensitivity matrix is computed |
| rThisPoint | Current node where rotation matrix shape sensitivities are required |
template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
Calculate 3d rotation nodal matrix shape sensitivities.
This method calculates shape sensitivities of 3D rotation matrix for given node. Nodal NORMAL(historical data container) and NORMAL_SHAPE_SENSITIVITY(non-historical data contaienr) variables should be properly initialized.
NORMAL_SHAPE_SENSITIVITY matrix should be properly sized and initialized with proper shape sensitivity values rows: (number_of_neighbour_nodes + 1) * 3 cols: 3
- Parameters
-
| rOutput | Output shape sensitivities matrix w.r.t. NodeIndex and DerivativeIndex |
| DerivativeNodeIndex | NodeIndex for which shape sensitivity matrix is computed |
| DerivativeDirectionIndex | Direction index of the node for which shape sensitivity matrix is computed |
| rThisPoint | Current node where rotation matrix shape sensitivities are required |
template<class TLocalMatrixType , class TLocalVectorType , class TValueType >
| virtual void Kratos::CoordinateTransformationUtils< TLocalMatrixType, TLocalVectorType, TValueType >::CalculateRotationOperatorPureShapeSensitivities |
( |
TLocalMatrixType & |
rRotationMatrixShapeDerivative, |
|
|
const std::size_t |
DerivativeNodeIndex, |
|
|
const std::size_t |
DerivativeDirectionIndex, |
|
|
const GeometryType::PointType & |
rThisPoint |
|
) |
| const |
|
inlinevirtual |
Calculates rotation nodal matrix shape sensitivities.
This method calculates shape sensitivities of rotation matrix for given node. Nodal NORMAL(historical data container) and NORMAL_SHAPE_SENSITIVITY(non-historical data contaienr) variables should be properly initialized.
NORMAL_SHAPE_SENSITIVITY matrix should be properly sized and initialized with proper shape sensitivity values rows: number_of_nodes contributing to NORMAL * DOMAIN_SIZE, columns: DOMAIN_SIZE
- Parameters
-
| rRotationMatrixShapeDerivative | Output shape sensitivities matrix w.r.t. NodeIndex and DerivativeIndex |
| DerivativeNodeIndex | NodeIndex for which shape sensitivity matrix is computed |
| DerivativeDirectionIndex | Direction index of the node for which shape sensitivity matrix is computed |
| rThisPoint | Current node where rotation matrix shape sensitivities are required |