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.
|
An adjoint element for discrete shape sensitivity of VMS fluid element. More...
#include <vms_adjoint_element.h>
Public Member Functions | |
Life Cycle | |
VMSAdjointElement (IndexType NewId=0) | |
VMSAdjointElement (IndexType NewId, GeometryType::Pointer pGeometry) | |
VMSAdjointElement (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) | |
~VMSAdjointElement () override | |
Operations | |
void | Initialize (const ProcessInfo &rCurrentProcessInfo) override |
Element::Pointer | Create (IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override |
Creates a new element of this type. More... | |
Element::Pointer | Create (IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override |
It creates a new element pointer. More... | |
int | Check (const ProcessInfo &rProcessInfo) const override |
Checks for proper element geometry, nodal variables and dofs. More... | |
void | GetValuesVector (VectorType &rValues, int Step=0) const override |
Returns the adjoint values stored in this element's nodes. More... | |
void | GetValuesArray (ArrayType &rValues, const int Step=0) const |
void | GetFirstDerivativesVector (VectorType &rValues, int Step=0) const override |
Returns the adjoint velocity values stored in this element's nodes. More... | |
void | GetFirstDerivativesArray (ArrayType &rValues, int Step=0) const |
void | GetSecondDerivativesVector (VectorType &rValues, int Step=0) const override |
Returns the adjoint acceleration values stored in this element's nodes. More... | |
void | GetSecondDerivativesArray (ArrayType &rValues, int Step=0) const |
void | CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateLocalVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateLeftHandSide (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateRightHandSide (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateFirstDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override |
Calculates the adjoint matrix for velocity and pressure. More... | |
void | CalculateFirstDerivativesLHS (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateSecondDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override |
Calculates the adjoint matrix for acceleration. More... | |
void | CalculateSecondDerivativesLHS (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateDampingMatrix (MatrixType &rDampingMatrix, const ProcessInfo &rProcessInfo) override |
void | CalculateSensitivityMatrix (const Variable< array_1d< double, 3 >> &rSensitivityVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) override |
Calculates the sensitivity matrix. More... | |
void | Calculate (const Variable< Vector > &rVariable, Vector &rOutput, const ProcessInfo &rCurrentProcessInfo) override |
void | GetDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override |
void | GetDofArray (DofsArrayType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override |
void | EquationIdArray (EquationIdArrayType &rResult, const ProcessInfo &rProcessInfo) const |
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::Element | |
Element (IndexType NewId=0) | |
Element (IndexType NewId, const NodesArrayType &ThisNodes) | |
Element (IndexType NewId, GeometryType::Pointer pGeometry) | |
Element (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) | |
Element (Element const &rOther) | |
Copy constructor. More... | |
~Element () override | |
Destructor. More... | |
Element & | operator= (Element const &rOther) |
Assignment operator. More... | |
virtual Pointer | Clone (IndexType NewId, NodesArrayType const &ThisNodes) const |
It creates a new element pointer and clones the previous element data. More... | |
virtual IntegrationMethod | GetIntegrationMethod () const |
virtual void | ResetConstitutiveLaw () |
virtual void | InitializeSolutionStep (const ProcessInfo &rCurrentProcessInfo) |
virtual void | InitializeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeSolutionStep (const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateFirstDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateFirstDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSecondDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSecondDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateLumpedMassVector (VectorType &rLumpedMassVector, const ProcessInfo &rCurrentProcessInfo) const |
virtual void | AddExplicitContribution (const ProcessInfo &rCurrentProcessInfo) |
virtual void | AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< double > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the double version) More... | |
virtual void | AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< array_1d< double, 3 > > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the vector version) More... | |
virtual void | AddExplicitContribution (const MatrixType &rLHSMatrix, const Variable< MatrixType > &rLHSVariable, const Variable< Matrix > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the matrix version) More... | |
virtual void | Calculate (const Variable< double > &rVariable, double &Output, const ProcessInfo &rCurrentProcessInfo) |
virtual void | Calculate (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &Output, const ProcessInfo &rCurrentProcessInfo) |
virtual void | Calculate (const Variable< Matrix > &rVariable, Matrix &Output, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< bool > &rVariable, std::vector< bool > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< int > &rVariable, std::vector< int > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< double > &rVariable, std::vector< double > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, std::vector< array_1d< double, 3 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, std::vector< array_1d< double, 4 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, std::vector< array_1d< double, 6 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, std::vector< array_1d< double, 9 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< Vector > &rVariable, std::vector< Vector > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< Matrix > &rVariable, std::vector< Matrix > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, std::vector< ConstitutiveLaw::Pointer > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< bool > &rVariable, const std::vector< bool > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< int > &rVariable, const std::vector< int > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< double > &rVariable, const std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, const std::vector< array_1d< double, 3 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, const std::vector< array_1d< double, 4 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, const std::vector< array_1d< double, 6 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, const std::vector< array_1d< double, 9 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< Vector > &rVariable, const std::vector< Vector > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< Matrix > &rVariable, const std::vector< Matrix > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | SetValuesOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, const std::vector< ConstitutiveLaw::Pointer > &rValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | MassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
virtual void | AddMassMatrix (MatrixType &rLeftHandSideMatrix, double coeff, const ProcessInfo &rCurrentProcessInfo) |
virtual void | DampMatrix (MatrixType &rDampMatrix, const ProcessInfo &rCurrentProcessInfo) |
virtual void | AddInertiaForces (VectorType &rRightHandSideVector, double coeff, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSensitivityMatrix (const Variable< double > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSensitivityMatrix (const Variable< array_1d< double, 3 > > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) |
PropertiesType::Pointer | pGetProperties () |
returns the pointer to the property of the element. Does not throw an error, to allow copying of elements which don't have any property assigned. More... | |
const PropertiesType::Pointer | pGetProperties () const |
PropertiesType & | GetProperties () |
PropertiesType const & | GetProperties () const |
void | SetProperties (PropertiesType::Pointer pProperties) |
bool | HasProperties () const |
Check that the Element has a correctly initialized pointer to a Properties instance. More... | |
virtual const Parameters | GetSpecifications () const |
This method provides the specifications/requirements of the element. More... | |
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (Element) | |
Public Member Functions inherited from Kratos::GeometricalObject | |
GeometricalObject (IndexType NewId=0) | |
Default constructor. More... | |
GeometricalObject (IndexType NewId, GeometryType::Pointer pGeometry) | |
Default constructor. More... | |
~GeometricalObject () override | |
Destructor. More... | |
GeometricalObject (GeometricalObject const &rOther) | |
Copy constructor. More... | |
GeometricalObject & | operator= (GeometricalObject const &rOther) |
Assignment operator. More... | |
virtual void | SetGeometry (GeometryType::Pointer pGeometry) |
Sets the pointer to the geometry. More... | |
GeometryType::Pointer | pGetGeometry () |
Returns the pointer to the geometry. More... | |
const GeometryType::Pointer | pGetGeometry () const |
Returns the pointer to the geometry (const version) More... | |
GeometryType & | GetGeometry () |
Returns the reference of the geometry. More... | |
GeometryType const & | GetGeometry () const |
Returns the reference of the geometry (const version) More... | |
Flags & | GetFlags () |
Returns the flags of the object. More... | |
Flags const & | GetFlags () const |
Returns the flags of the object (const version) More... | |
void | SetFlags (Flags const &rThisFlags) |
Sets the flags of the object. More... | |
DataValueContainer & | Data () |
DataValueContainer & | GetData () |
DataValueContainer const & | GetData () const |
void | SetData (DataValueContainer const &rThisData) |
template<class TDataType > | |
bool | Has (const Variable< TDataType > &rThisVariable) const |
template<class TVariableType > | |
void | SetValue (const TVariableType &rThisVariable, typename TVariableType::Type const &rValue) |
template<class TVariableType > | |
TVariableType::Type & | GetValue (const TVariableType &rThisVariable) |
template<class TVariableType > | |
TVariableType::Type const & | GetValue (const TVariableType &rThisVariable) const |
unsigned int | use_count () const noexcept |
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (GeometricalObject) | |
Pointer definition of GeometricalObject. More... | |
bool | IsActive () const |
Checks if the GeometricalObject is active. More... | |
Public Member Functions inherited from Kratos::IndexedObject | |
IndexedObject (IndexType NewId=0) | |
Default constructor. More... | |
virtual | ~IndexedObject () |
Destructor. More... | |
IndexedObject (IndexedObject const &rOther) | |
Copy constructor. More... | |
IndexedObject & | operator= (IndexedObject const &rOther) |
Assignment operator. More... | |
template<class TObjectType > | |
IndexType | operator() (TObjectType const &rThisObject) const |
IndexType | Id () const |
IndexType | GetId () const |
virtual void | SetId (IndexType NewId) |
IndexType & | DepricatedIdAccess () |
TODO: remove this function when removing data_file_io object. More... | |
KRATOS_CLASS_POINTER_DEFINITION (IndexedObject) | |
Pointer definition of IndexedObject. More... | |
Public Member Functions inherited from Kratos::Flags | |
Flags & | operator= (Flags const &rOther) |
Assignment operator. More... | |
operator bool () const | |
Flags | operator~ () const |
bool | operator! () const |
void | AssignFlags (Flags const &rOther) |
void | Set (const Flags ThisFlag) |
void | Set (const Flags ThisFlag, bool Value) |
void | Reset (const Flags ThisFlag) |
void | Flip (const Flags ThisFlag) |
void | SetPosition (IndexType Position, bool Value=true) |
bool | GetPosition (IndexType Position) const |
void | FlipPosition (IndexType Position) |
void | ClearPosition (IndexType Position) |
void | Clear () |
Flags | AsFalse () const |
bool | Is (Flags const &rOther) const |
bool | IsDefined (Flags const &rOther) const |
bool | IsNot (Flags const &rOther) const |
bool | IsNotDefined (Flags const &rOther) const |
KRATOS_CLASS_POINTER_DEFINITION (Flags) | |
Pointer definition of Flags. More... | |
const Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (const Flags &Other) |
Flags () | |
Default constructor. More... | |
Flags (Flags const &rOther) | |
Copy constructor. More... | |
virtual | ~Flags () |
Destructor. More... | |
Protected Member Functions | |
Protected Operations | |
void | AddMassStabTerms (MatrixType &rLHSMatrix, const double Density, const array_1d< double, TDim > &rAdvVel, const double TauOne, const array_1d< double, TNumNodes > &rShapeFunc, const BoundedMatrix< double, TNumNodes, TDim > &rShapeDeriv, const double Weight) |
void | AddIntegrationPointVelocityContribution (MatrixType &rDampingMatrix, VectorType &rDampRHS, const double Density, const double Viscosity, const array_1d< double, TDim > &rAdvVel, const array_1d< double, TDim > &rBodyForce, const double TauOne, const double TauTwo, const array_1d< double, TNumNodes > &rShapeFunc, const BoundedMatrix< double, TNumNodes, TDim > &rShapeDeriv, const double Weight) |
void | AuxiliaryCalculateSensitivityMatrix (const Variable< array_1d< double, 3 >> &rSensitivityVariable, BoundedMatrix< double, TCoordLocalSize, TFluidLocalSize > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateVMSMassMatrix (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) const |
Calculate VMS-stabilized (lumped) mass matrix. More... | |
void | AddPrimalGradientOfVMSMassTerm (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rOutputMatrix, const Variable< array_1d< double, 3 >> &rVariable, double alpha, const ProcessInfo &rCurrentProcessInfo) const |
Adds primal gradient of the VMS mass matrix multiplied by a vector. More... | |
void | AddShapeGradientOfVMSMassTerm (BoundedMatrix< double, TCoordLocalSize, TFluidLocalSize > &rOutputMatrix, const Variable< array_1d< double, 3 >> &rVariable, double alpha, const ProcessInfo &rCurrentProcessInfo) const |
Adds shape gradient of the VMS mass matrix multiplied by a vector. More... | |
void | CalculatePrimalGradientOfVMSSteadyTerm (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rAdjointMatrix, const ProcessInfo &rCurrentProcessInfo) const |
Calculates the elemental contribution to the steady adjoint system matrix. More... | |
void | CalculateShapeGradientOfVMSSteadyTerm (BoundedMatrix< double, TCoordLocalSize, TFluidLocalSize > &rShapeDerivativesMatrix, const ProcessInfo &rCurrentProcessInfo) const |
Calculate the partial derivatives of damping term w.r.t. shape parameters. More... | |
void | CalculateVelocityGradient (BoundedMatrix< double, TDim, TDim > &rGradVel, const ShapeFunctionDerivativesType &rDN_DX) const |
Returns the gradient matrix of the velocity. More... | |
void | CalculatePressureGradient (array_1d< double, TDim > &rGradP, const ShapeFunctionDerivativesType &rDN_DX) const |
Returns the pressure gradient. More... | |
double | CalculateElementSize (const double Volume) const |
Returns the element's size. More... | |
void | CalculateDeterminantOfJacobianDerivatives (array_1d< double, TCoordLocalSize > &rDetJDerivatives) const |
Returns derivatives of determinant of Jacobian w.r.t coordinates. More... | |
void | CalculateStabilizationParameters (double &rTauOne, double &rTauTwo, const double VelNorm, const double ElemSize, const double Density, const double Viscosity, const ProcessInfo &rCurrentProcessInfo) const |
Returns the VMS stabilization parameters. More... | |
void | CalculateStabilizationParametersDerivative (double &rTauOneDeriv, double &rTauTwoDeriv, const double TauOne, const double TauTwo, const double VelNorm, const double ElemSize, const double Density, const double Viscosity, const double DetJDeriv) const |
Returns stabilization parameters derived w.r.t a node's coordinate. More... | |
void | AddViscousTerm (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rResult, const ShapeFunctionDerivativesType &rDN_DX, const double Weight) const |
Adds viscous contributions to adjoint system matrix. More... | |
void | AddViscousTermDerivative (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rResult, const ShapeFunctionDerivativesType &rDN_DX, const ShapeFunctionDerivativesType &rDN_DX_Deriv, const double Weight, const double WeightDeriv) const |
Adds derivative of viscous term w.r.t a node's coordinate. More... | |
Serialization | |
class | Serializer |
Specialized implementation for functions that depend on TDim | |
void | GetDofArray (DofsArrayType &rElementalDofList, const ProcessInfo &rProcessInfo) const |
void | GetDofArray (DofsArrayType &rElementalDofList, const ProcessInfo &rProcessInfo) const |
void | EquationIdArray (EquationIdArrayType &rResult, const ProcessInfo &rProcessInfo) const |
void | EquationIdArray (EquationIdArrayType &rResult, const ProcessInfo &rProcessInfo) const |
double | CalculateElementSize (const double Area) const |
double | CalculateElementSize (const double Volume) const |
void | CalculateDeterminantOfJacobianDerivatives (array_1d< double, 6 > &rDetJDerivatives) const |
void | CalculateDeterminantOfJacobianDerivatives (array_1d< double, 12 > &rDetJDerivatives) const |
void | CalculateStabilizationParametersDerivative (double &rTauOneDeriv, double &rTauTwoDeriv, const double TauOne, const double TauTwo, const double VelNorm, const double ElemSize, const double Density, const double Viscosity, const double DetJDeriv) const |
void | CalculateStabilizationParametersDerivative (double &rTauOneDeriv, double &rTauTwoDeriv, const double TauOne, const double TauTwo, const double VelNorm, const double ElemSize, const double Density, const double Viscosity, const double DetJDeriv) const |
void | AddViscousTerm (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rResult, const VMSAdjointElement< 2 >::ShapeFunctionDerivativesType &rDN_DX, const double Weight) const |
void | AddViscousTerm (BoundedMatrix< double, TFluidLocalSize, TFluidLocalSize > &rResult, const VMSAdjointElement< 3 >::ShapeFunctionDerivativesType &rDN_DX, const double Weight) const |
void | AddViscousTermDerivative (BoundedMatrix< double, 9, 9 > &rResult, const VMSAdjointElement< 2 >::ShapeFunctionDerivativesType &rDN_DX, const VMSAdjointElement< 2 >::ShapeFunctionDerivativesType &rDN_DX_Deriv, const double Weight, const double WeightDeriv) const |
void | AddViscousTermDerivative (BoundedMatrix< double, 16, 16 > &rResult, const VMSAdjointElement< 3 >::ShapeFunctionDerivativesType &rDN_DX, const VMSAdjointElement< 3 >::ShapeFunctionDerivativesType &rDN_DX_Deriv, const double Weight, const double WeightDeriv) const |
Additional Inherited Members | |
Public Types inherited from Kratos::Element | |
typedef Element | ElementType |
definition of element type More... | |
typedef GeometricalObject | BaseType |
base type: an GeometricalObject that automatically has a unique number More... | |
typedef Node | NodeType |
definition of node type (default is: Node) More... | |
typedef Properties | PropertiesType |
typedef Geometry< NodeType > | GeometryType |
definition of the geometry type with given NodeType More... | |
typedef Geometry< NodeType >::PointsArrayType | NodesArrayType |
definition of nodes container type, redefined from GeometryType More... | |
typedef Vector | VectorType |
typedef Matrix | MatrixType |
typedef std::size_t | IndexType |
typedef std::size_t | SizeType |
typedef Dof< double > | DofType |
typedef std::vector< std::size_t > | EquationIdVectorType |
typedef std::vector< DofType::Pointer > | DofsVectorType |
typedef PointerVectorSet< DofType > | DofsArrayType |
typedef GeometryData::IntegrationMethod | IntegrationMethod |
Type definition for integration methods. More... | |
typedef GeometryData | GeometryDataType |
Public Types inherited from Kratos::GeometricalObject | |
typedef Node | NodeType |
Definition of the node type. More... | |
typedef Geometry< NodeType > | GeometryType |
The geometry type definition. More... | |
typedef std::size_t | IndexType |
Defines the index type. More... | |
typedef std::size_t | result_type |
Defines the result type. More... | |
Public Types inherited from Kratos::IndexedObject | |
typedef std::size_t | IndexType |
The definition of the index type. More... | |
typedef std::size_t | result_type |
The definition of the result_type. More... | |
Public Types inherited from Kratos::Flags | |
enum | FlagsList { Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 , Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 , Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 , Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 , Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 , Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 , Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 , Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30 } |
typedef int64_t | BlockType |
typedef int64_t | FlagType |
typedef std::size_t | IndexType |
Static Public Member Functions inherited from Kratos::GeometricalObject | |
static bool | HasSameType (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
Checks if two GeometricalObject have the same type. More... | |
static bool | HasSameType (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
Checks if two GeometricalObject have the same type (pointer version) More... | |
static bool | HasSameGeometryType (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
Checks if two GeometricalObject have the same geometry type. More... | |
static bool | HasSameGeometryType (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
Checks if two GeometricalObject have the same geometry type (pointer version) More... | |
static bool | IsSame (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
Checks if two GeometricalObject are the same. More... | |
static bool | IsSame (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
Checks if two GeometricalObject are the same (pointer version) More... | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
An adjoint element for discrete shape sensitivity of VMS fluid element.
typedef std::array<double, TFluidLocalSize> Kratos::VMSAdjointElement< TDim >::ArrayType |
typedef std::array<Dof<double>::Pointer, TFluidLocalSize> Kratos::VMSAdjointElement< TDim >::DofsArrayType |
typedef Element::DofsVectorType Kratos::VMSAdjointElement< TDim >::DofsVectorType |
typedef std::array<std::size_t, TFluidLocalSize> Kratos::VMSAdjointElement< TDim >::EquationIdArrayType |
typedef Element::EquationIdVectorType Kratos::VMSAdjointElement< TDim >::EquationIdVectorType |
typedef Element::GeometryType Kratos::VMSAdjointElement< TDim >::GeometryType |
typedef Element::IndexType Kratos::VMSAdjointElement< TDim >::IndexType |
typedef Element::MatrixType Kratos::VMSAdjointElement< TDim >::MatrixType |
typedef Element::NodesArrayType Kratos::VMSAdjointElement< TDim >::NodesArrayType |
typedef Element::PropertiesType Kratos::VMSAdjointElement< TDim >::PropertiesType |
typedef BoundedMatrix<double, TNumNodes, TDim> Kratos::VMSAdjointElement< TDim >::ShapeFunctionDerivativesType |
typedef Element::SizeType Kratos::VMSAdjointElement< TDim >::SizeType |
typedef Element::VectorType Kratos::VMSAdjointElement< TDim >::VectorType |
|
inline |
|
inline |
|
inline |
|
inlineoverride |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
Adds primal gradient of the VMS mass matrix multiplied by a vector.
Calculates \( \partial_{\mathbf{w}^n} (\mathbf{M}^n\mathbf{x}) \). \(\mathbf{w}^n\) is the vector of primal variables at the current adjoint step. \(\mathbf{M}^n\) is the VMS mass matrix. \(\mathbf{x}\) is a constant vector with zeros for pressure dofs. The variable determines the values for velocity dofs.
|
inlineprotected |
Adds shape gradient of the VMS mass matrix multiplied by a vector.
Calculates \( \partial_{\mathbf{s}} (\mathbf{M}^n\mathbf{x})^T \). \(\mathbf{s}\) is the vector of nodal coordinates. \(\mathbf{M}^n\). is the VMS mass matrix at the current adjoint step. \(\mathbf{x}\) is a constant vector with zeros for pressure dofs. The variable determines the values for velocity dofs.
|
protected |
Adds viscous contributions to adjoint system matrix.
rResult | matrix to add viscous contributions to |
rDN_DX | shape functions' gradients |
Weight | integration weight including dynamic viscosity |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Adds derivative of viscous term w.r.t a node's coordinate.
rResult | matrix to add viscous contributions to |
rDN_DX | shape functions' gradients |
rDN_DX_Deriv | shape functions' gradients derived w.r.t the coordinate |
Weight | integration weight including dynamic viscosity |
WeightDeriv | integration weight derived w.r.t the coordinate |
|
inlineprotected |
|
inlineoverridevirtual |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
this is called during the assembling process in order to calculate the elemental damping matrix
rDampingMatrix | the elemental damping matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protected |
|
protected |
|
protected |
Returns derivatives of determinant of Jacobian w.r.t coordinates.
The derivative of the determinant of the Jacobian w.r.t the jth coordinate of the ith node is stored at the index (i * TDim + j).
This function is only valid when the determinant of the Jacobian is constant over the element.
|
protected |
|
protected |
|
protected |
Returns the element's size.
Volume | the volume (area in 2D) of the element |
|
inline |
|
inline |
this is called during the assembling process in order to calculate the elemental left hand side matrix for the first derivatives contributions
rLeftHandSideMatrix | the elemental left hand side matrix |
rCurrentProcessInfo | the current process info instance |
|
inlineoverridevirtual |
Calculates the adjoint matrix for velocity and pressure.
This function returns the gradient of the elemental residual w.r.t. velocity and pressure transposed:
\[ \partial_{\mathbf{w}^n}\mathbf{f}(\mathbf{w}^n)^T - \partial_{\mathbf{w}^n}(\mathbf{M}^n \dot{\mathbf{w}}^n)^T \]
where \(\mathbf{w}^n\) is the vector of nodal velocities and pressures stored at the current step. For steady problems, the ACCELERATION ( \(\dot{\mathbf{w}}^n\)) must be set to zero on the nodes. For the Bossak method, \(\dot{\mathbf{w}}^{n-\alpha}\) must be stored in ACCELERATION.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
this is called during the assembling process in order to calculate the elemental left hand side matrix only
rLeftHandSideMatrix | the elemental left hand side matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
ELEMENTS inherited from this class have to implement next CalculateLocalSystem, CalculateLeftHandSide and CalculateRightHandSide methods they can be managed internally with a private method to do the same calculations only once: MANDATORY this is called during the assembling process in order to calculate all elemental contributions to the global system matrix and the right hand side
rLeftHandSideMatrix | the elemental left hand side matrix |
rRightHandSideVector | the elemental right hand side |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Calculate Damp matrix and add velocity contribution to RHS
rDampingMatrix | the velocity-proportional "damping" matrix |
rRightHandSideVector | the elemental right hand side matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
ELEMENTS inherited from this class must implement this methods if they need to add dynamic element contributions CalculateMassMatrix, CalculateDampingMatrix and CalculateLumpedMassVector methods are: OPTIONAL this is called during the assembling process in order to calculate the elemental mass matrix
rMassMatrix | the elemental mass matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inlineprotected |
Returns the pressure gradient.
rGradP | pressure gradient |
rDN_DX | shape functions' gradients |
|
inlineprotected |
Calculates the elemental contribution to the steady adjoint system matrix.
This function returns elemental contributions for:
\[ \partial_{\mathbf{w}^n}\mathbf{f}(\mathbf{w}^n) \]
where the current adjoint step is the \(n^{th}\) time step.
|
inlineoverridevirtual |
this is called during the assembling process in order to calculate the elemental right hand side vector only
rRightHandSideVector | the elemental right hand side vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inline |
|
inline |
this is called during the assembling process in order to calculate the elemental left hand side matrix for the second derivatives contributions
rLeftHandSideMatrix | the elemental left hand side matrix |
rCurrentProcessInfo | the current process info instance |
|
inlineoverridevirtual |
Calculates the adjoint matrix for acceleration.
This function returns the gradient of the elemental residual w.r.t. acceleration:
\[ \partial_{\dot{\mathbf{w}}^n}\mathbf{f}(\mathbf{w}^n)^T - \partial_{\dot{\mathbf{w}}^n}(\mathbf{M}^n \dot{\mathbf{w}}^n)^T \]
Reimplemented from Kratos::Element.
|
inlineoverride |
Calculates the sensitivity matrix.
\[ \partial_{\mathbf{s}}\mathbf{f}(\mathbf{w}^n)^T - \partial_{\mathbf{s}}(\mathbf{M}^n \dot{\mathbf{w}}^{n-\alpha})^T \]
|
inlineprotected |
Calculate the partial derivatives of damping term w.r.t. shape parameters.
This function returns elemental contributions for:
\[ \partial_{\mathbf{s}}\mathbf{f}(\mathbf{w}^n)^T \]
\(\mathbf{s}\) are the coordinates of the element's nodes.
This function is only valid when the determinant of the Jacobian is constant over the element.
|
inlineprotected |
Returns the VMS stabilization parameters.
rTauOne | momentum stabilization parameter |
rTauTwo | divergence stabilization parameter |
VelNorm | Euclidean norm of the velocity |
ElemSize | size of this element |
Density | density of the fluid |
Viscosity | dynamic viscosity of the fluid |
|
protected |
|
protected |
|
protected |
Returns stabilization parameters derived w.r.t a node's coordinate.
rTauOneDeriv | derivative of momentum stabilization parameter |
rTauTwoDeriv | derivative of divergence stabilization parameter |
TauOne | momentum stabilization parameter |
TauTwo | divergence stabilization parameter |
VelNorm | Euclidean norm of the velocity |
ElemSize | size of this element |
Density | density of the fluid |
Viscosity | dynamic viscosity of the fluid |
DetJDeriv | derivative of the determinant of the Jacobian |
|
inlineprotected |
Returns the gradient matrix of the velocity.
The row index corresponds to the velocity component and the column index to the derivative.
rGradVel | velocity gradient matrix |
rDN_DX | shape functions' gradients |
|
inlineprotected |
Calculate VMS-stabilized (lumped) mass matrix.
|
inlineoverridevirtual |
Checks for proper element geometry, nodal variables and dofs.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
It creates a new element pointer.
NewId | the ID of the new element |
pGeom | the geometry to be employed |
pProperties | the properties assigned to the new element |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Creates a new element of this type.
Reimplemented from Kratos::Element.
void Kratos::VMSAdjointElement< 2 >::EquationIdArray | ( | EquationIdArrayType & | rResult, |
const ProcessInfo & | rProcessInfo | ||
) | const |
void Kratos::VMSAdjointElement< 3 >::EquationIdArray | ( | EquationIdArrayType & | rResult, |
const ProcessInfo & | rProcessInfo | ||
) | const |
void Kratos::VMSAdjointElement< TDim >::EquationIdArray | ( | EquationIdArrayType & | rResult, |
const ProcessInfo & | rProcessInfo | ||
) | const |
|
inlineoverridevirtual |
ELEMENTS inherited from this class have to implement next EquationIdVector and GetDofList methods: MANDATORY this determines the elemental equation ID vector for all elemental DOFs
rResult | the elemental equation ID vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
void Kratos::VMSAdjointElement< TDim >::GetDofArray | ( | DofsArrayType & | rElementalDofList, |
const ProcessInfo & | rCurrentProcessInfo | ||
) | const |
void Kratos::VMSAdjointElement< 2 >::GetDofArray | ( | DofsArrayType & | rElementalDofList, |
const ProcessInfo & | rProcessInfo | ||
) | const |
void Kratos::VMSAdjointElement< 3 >::GetDofArray | ( | DofsArrayType & | rElementalDofList, |
const ProcessInfo & | rProcessInfo | ||
) | const |
|
inlineoverridevirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inline |
|
inlineoverridevirtual |
Returns the adjoint velocity values stored in this element's nodes.
Reimplemented from Kratos::Element.
|
inline |
|
inlineoverridevirtual |
Returns the adjoint acceleration values stored in this element's nodes.
Reimplemented from Kratos::Element.
|
inline |
|
inlineoverridevirtual |
Returns the adjoint values stored in this element's nodes.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
ELEMENTS inherited from this class must implement next methods Initialize, ResetConstitutiveLaw if the element needs to perform any operation before any calculation is done reset material and constitutive parameters or clean memory deleting obsolete variables these methods are: OPTIONAL is called to initialize the element if the element needs to perform any operation before any calculation is done the elemental variables will be initialized and set using this method
Reimplemented from Kratos::Element.
Kratos::VMSAdjointElement< TDim >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION | ( | VMSAdjointElement< TDim > | ) |
Pointer definition.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Element.
|
friend |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |