13 #if !defined(KRATOS_FLUID_ADJOINT_SLIP_UTILITIES_H)
14 #define KRATOS_FLUID_ADJOINT_SLIP_UTILITIES_H
79 void CalculateRotatedSlipConditionAppliedSlipVariableDerivatives(
81 const Matrix& rResidualDerivatives,
99 void CalculateRotatedSlipConditionAppliedNonSlipVariableDerivatives(
101 const Matrix& rResidualDerivatives,
117 const Matrix& rResidualDerivatives,
121 (this->*(this->mAddNodalRotationDerivativesMethod))(rOutput, rResidualDerivatives, NodeStartIndex, rNode);
134 void AddNodalApplySlipConditionDerivatives(
149 void AddNodalResidualDerivatives(
151 const Matrix& rResidualDerivatives,
160 void ClearNodalResidualDerivatives(
172 const CoordinateTransformationUtilities mRotationTool;
184 template<
unsigned int TDim>
185 void TemplatedAddNodalRotationDerivatives(
187 const Matrix& rResidualDerivatives,
195 mRotationTool.LocalRotationOperatorPure(rotation_matrix, rNode);
198 for (
IndexType c = 0;
c < rResidualDerivatives.size1(); ++
c) {
200 FluidCalculationUtilities::ReadSubVector<TDim>(
201 residual_derivative,
row(rResidualDerivatives,
c), NodeStartIndex);
204 noalias(aux_vector) =
prod(rotation_matrix, residual_derivative);
207 FluidCalculationUtilities::AddSubVector<TDim>(rOutput, aux_vector,
c, NodeStartIndex);
211 rOutput(
c, NodeStartIndex +
a) += rResidualDerivatives(
c, NodeStartIndex +
a);
Definition: fluid_adjoint_slip_utilities.h:39
void AddNodalRotationDerivatives(Matrix &rOutput, const Matrix &rResidualDerivatives, const IndexType NodeStartIndex, const NodeType &rNode) const
Rotates residual derivatives.
Definition: fluid_adjoint_slip_utilities.h:115
std::size_t IndexType
Definition: fluid_adjoint_slip_utilities.h:46
Geometry base class.
Definition: geometry.h:71
This class defines the node.
Definition: node.h:65
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
AMatrix::MatrixProductExpression< TExpression1Type, TExpression2Type > prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:568
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
AMatrix::MatrixRow< const TExpressionType > row(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression, std::size_t RowIndex)
Definition: amatrix_interface.h:649
a
Definition: generate_stokes_twofluid_element.py:77
c
Definition: generate_weakly_compressible_navier_stokes_element.py:108