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.
|
#include <fluid_adjoint_slip_utilities.h>
Public Types | |
Type Definitions | |
using | NodeType = Node |
using | IndexType = std::size_t |
using | GeometryType = Geometry< NodeType > |
using | CoordinateTransformationUtilities = CoordinateTransformationUtils< Matrix, Vector, double > |
Public Member Functions | |
Life Cycle | |
FluidAdjointSlipUtilities (const IndexType Dimension, const IndexType BlockSize) | |
Operations | |
void | CalculateRotatedSlipConditionAppliedSlipVariableDerivatives (Matrix &rOutput, const Matrix &rResidualDerivatives, const GeometryType &rGeometry) const |
Calculates rotated slip applied state derivatives. More... | |
void | CalculateRotatedSlipConditionAppliedNonSlipVariableDerivatives (Matrix &rOutput, const Matrix &rResidualDerivatives, const GeometryType &rGeometry) const |
Calculates rotated slip applied state derivatives. More... | |
void | AddNodalRotationDerivatives (Matrix &rOutput, const Matrix &rResidualDerivatives, const IndexType NodeStartIndex, const NodeType &rNode) const |
Rotates residual derivatives. More... | |
void | AddNodalApplySlipConditionDerivatives (Matrix &rOutput, const IndexType NodeStartIndex, const NodeType &rNode) const |
Slip condition residual derivatives. More... | |
void | AddNodalResidualDerivatives (Matrix &rOutput, const Matrix &rResidualDerivatives, const IndexType NodeStartIndex) const |
Adds the nodal state derivatives as it is. More... | |
void | ClearNodalResidualDerivatives (Matrix &rOutput, const IndexType ResidualIndex) const |
Clears a residual derivative. More... | |
using Kratos::FluidAdjointSlipUtilities::CoordinateTransformationUtilities = CoordinateTransformationUtils<Matrix, Vector, double> |
using Kratos::FluidAdjointSlipUtilities::IndexType = std::size_t |
Kratos::FluidAdjointSlipUtilities::FluidAdjointSlipUtilities | ( | const IndexType | Dimension, |
const IndexType | BlockSize | ||
) |
void Kratos::FluidAdjointSlipUtilities::AddNodalApplySlipConditionDerivatives | ( | Matrix & | rOutput, |
const IndexType | NodeStartIndex, | ||
const NodeType & | rNode | ||
) | const |
Slip condition residual derivatives.
This method is used to apply slip condition state derivatives to part of the non-rotated residual derivatives which corresponds to a given node.
rOutput | Nodal slip condition applied state derivatives |
NodeStartIndex | Block starting column for that specific node |
rNode | Node which has rotated residual derivative contributions |
void Kratos::FluidAdjointSlipUtilities::AddNodalResidualDerivatives | ( | Matrix & | rOutput, |
const Matrix & | rResidualDerivatives, | ||
const IndexType | NodeStartIndex | ||
) | const |
Adds the nodal state derivatives as it is.
This method is used to apply slip condition state derivatives to part of the non-rotated residual derivatives which corresponds to a given node.
rOutput | Output state derivatives |
rResidualDerivatives | Non-rotated state derivatives |
NodeStartIndex | Block starting column for that specific node |
|
inline |
Rotates residual derivatives.
This method is used to rotate part of the non-rotated residual derivatives which corresponds to a given node.
rOutput | Nodal rotated state derivatives |
rResidualDerivatives | Non-rotated state derivatives |
NodeStartIndex | Block starting column for that specific node |
rNode | Node which has rotated residual derivative contributions |
void Kratos::FluidAdjointSlipUtilities::CalculateRotatedSlipConditionAppliedNonSlipVariableDerivatives | ( | Matrix & | rOutput, |
const Matrix & | rResidualDerivatives, | ||
const GeometryType & | rGeometry | ||
) | const |
Calculates rotated slip applied state derivatives.
This method calculates rotated slip applied state derivatives when non-rotated residual derivatives are given. Nodal rotations are determined by SLIP flag. If SLIP flag is true, then it is assumed to be rotated as well as slip condition applied.
This method assumes first dofs to be VELOCITY, and derivatives not starting with w.r.t. VELOCITY because SLIP is based on the VELOCITY variable.
rOutput | Rotated and slip applied state derivatives |
rResidualDerivatives | Non-rotated and non-slip applied state derivatives |
rGeometry | Geometry of which rResidualDerivatives are computed on |
void Kratos::FluidAdjointSlipUtilities::CalculateRotatedSlipConditionAppliedSlipVariableDerivatives | ( | Matrix & | rOutput, |
const Matrix & | rResidualDerivatives, | ||
const GeometryType & | rGeometry | ||
) | const |
Calculates rotated slip applied state derivatives.
This method calculates rotated slip applied state derivatives when non-rotated residual derivatives are given. Nodal rotations are determined by SLIP flag. If SLIP flag is true, then it is assumed to be rotated as well as slip condition applied.
This method assumes first dofs to be VELOCITY, and derivatives starting with w.r.t. VELOCITY
rOutput | Rotated and slip applied state derivatives |
rResidualDerivatives | Non-rotated and non-slip applied state derivatives |
rGeometry | Geometry of which rResidualDerivatives are computed on |
void Kratos::FluidAdjointSlipUtilities::ClearNodalResidualDerivatives | ( | Matrix & | rOutput, |
const IndexType | ResidualIndex | ||
) | const |
Clears a residual derivative.
rOutput | Output matrix |
ResidualIndex | Residual index which needs to be set to zero. |