33 template <
unsigned int TDim,
unsigned int TNumNodes,
class TAdjo
intElementData>
41 explicit ThisExtensions(
Element* pElement);
46 std::size_t Step)
override;
51 std::size_t Step)
override;
53 void GetAuxiliaryVector(
56 std::size_t Step)
override;
58 void GetFirstDerivativesVariables(std::vector<VariableData const*>& rVariables)
const override;
60 void GetSecondDerivativesVariables(std::vector<VariableData const*>& rVariables)
const override;
62 void GetAuxiliaryVariables(std::vector<VariableData const*>& rVariables)
const override;
108 GeometryType::Pointer pGeometry);
115 GeometryType::Pointer pGeometry,
116 PropertiesType::Pointer pProperties);
142 PropertiesType::Pointer pProperties)
const override;
153 GeometryType::Pointer pGeom,
154 PropertiesType::Pointer pProperties)
const override;
163 Element::Pointer
Clone(
177 const ProcessInfo& rCurrentProcessInfo)
const override;
186 const ProcessInfo& rCurrentProcessInfo)
const override;
191 int Step = 0)
const override;
196 int Step = 0)
const override;
200 int Step)
const override;
253 std::string
Info()
const override;
256 void PrintInfo(std::ostream& rOStream)
const override;
259 void PrintData(std::ostream& rOStream)
const override;
293 const double MassTermsDerivativesWeight = 1.0);
Interface extensions for adjoint elements and conditions.
Definition: adjoint_extensions.h:37
Base class for all Elements.
Definition: element.h:60
Vector VectorType
Definition: element.h:88
Properties PropertiesType
Definition: element.h:80
Element(IndexType NewId=0)
Definition: element.h:121
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
Geometry< NodeType >::PointsArrayType NodesArrayType
definition of nodes container type, redefined from GeometryType
Definition: element.h:86
Matrix MatrixType
Definition: element.h:90
Geometry< NodeType > GeometryType
definition of the geometry type with given NodeType
Definition: element.h:83
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
Definition: fluid_adjoint_element.h:35
void CalculateSensitivityMatrix(const Variable< array_1d< double, 3 >> &rSensitivityVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:475
void AddFluidSecondDerivatives(MatrixType &rDerivativesMatrix, const ProcessInfo &rCurrentProcessInfo)
Adds fluid residual second derivatives w.r.t. state variables.
Definition: fluid_adjoint_element.cpp:653
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: fluid_adjoint_element.cpp:204
void CalculateDampingMatrix(MatrixType &rDampingMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:462
KRATOS_CLASS_POINTER_DEFINITION(FluidAdjointElement)
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:379
void CalculateGeometryData(Vector &rGaussWeights, Matrix &rNContainer, ShapeFunctionDerivativesArrayType &rDN_DX, const GeometryData::IntegrationMethod &rIntegrationMethod) const
Computes shape function data for all the gauss points.
Definition: fluid_adjoint_element.cpp:765
std::size_t IndexType
Definition: fluid_adjoint_element.h:81
void Initialize(const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:333
void GetFirstDerivativesVector(VectorType &rValues, int Step=0) const override
Returns the adjoint velocity values stored in this element's nodes.
Definition: fluid_adjoint_element.cpp:302
void AddFluidResidualsContributions(VectorType &rResidual, const ProcessInfo &rCurrentProcessInfo)
Adds fluid residual contributions.
Definition: fluid_adjoint_element.cpp:551
void CalculateSecondDerivativesLHS(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:439
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:362
std::string Info() const override
Turn back information as a string.
Definition: fluid_adjoint_element.cpp:529
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: fluid_adjoint_element.cpp:543
void AddFluidFirstDerivatives(MatrixType &rDerivativesMatrix, const ProcessInfo &rCurrentProcessInfo, const double MassTermsDerivativesWeight=1.0)
Adds fluid residual derivatives w.r.t. state variables.
Definition: fluid_adjoint_element.cpp:601
void CalculateFirstDerivativesLHS(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:424
~FluidAdjointElement() override
Definition: fluid_adjoint_element.cpp:165
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
Definition: fluid_adjoint_element.cpp:193
constexpr static IndexType TBlockSize
Definition: fluid_adjoint_element.h:85
void CalculateLocalVelocityContribution(MatrixType &rDampMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:404
void AddFluidShapeDerivatives(MatrixType &rDerivativesMatrix, const ProcessInfo &rCurrentProcessInfo)
Adds fluid residual derivatives w.r.t. shape variables (nodal coordinates)
Definition: fluid_adjoint_element.cpp:701
constexpr static IndexType TElementLocalSize
Definition: fluid_adjoint_element.h:87
void EquationIdVector(EquationIdVectorType &rElementalEquationIdList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: fluid_adjoint_element.cpp:229
void GetDofList(DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: fluid_adjoint_element.cpp:255
void GetSecondDerivativesVector(VectorType &rValues, int Step) const override
Definition: fluid_adjoint_element.cpp:313
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: fluid_adjoint_element.cpp:537
constexpr static IndexType TCoordsLocalSize
Definition: fluid_adjoint_element.h:89
ConstitutiveLaw::Pointer mpConstitutiveLaw
Definition: fluid_adjoint_element.h:267
void CalculateMassMatrix(MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:454
void Calculate(const Variable< Vector > &rVariable, Vector &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:498
FluidAdjointElement(IndexType NewId=0)
Definition: fluid_adjoint_element.cpp:142
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: fluid_adjoint_element.cpp:391
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
Definition: fluid_adjoint_element.cpp:170
void GetValuesVector(VectorType &rValues, int Step=0) const override
Returns the adjoint values stored in this element's nodes.
Definition: fluid_adjoint_element.cpp:281
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
IntegrationMethod
Definition: geometry_data.h:76
Geometry base class.
Definition: geometry.h:71
GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: geometry.h:189
Wrapper for a function which behaves like an arithmetic type.
Definition: indirect_scalar.h:45
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21