![]() |
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.
|
A scheme for dynamic adjoint equations, using Bossak time integration. More...
#include <residual_based_adjoint_bossak_scheme.h>
Classes | |
struct | BossakConstants |
Public Member Functions | |
Life Cycle | |
ResidualBasedAdjointBossakScheme (Parameters Settings, AdjointResponseFunction::Pointer pResponseFunction) | |
Constructor. More... | |
~ResidualBasedAdjointBossakScheme () override | |
Destructor. More... | |
Operations | |
int | Check (const ModelPart &rModelPart) const override |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors. More... | |
void | Initialize (ModelPart &rModelPart) override |
This is the place to initialize the Scheme. More... | |
void | InitializeSolutionStep (ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override |
Function called once at the beginning of each solution step. More... | |
void | FinalizeSolutionStep (ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override |
Function called once at the end of a solution step, after convergence is reached if an iterative process is needed. More... | |
void | Update (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override |
Performing the update of the solution. More... | |
void | CalculateSystemContributions (Element &rCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More... | |
void | CalculateLHSContribution (Element &rCurrentElement, LocalSystemMatrixType &rLHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
This function is designed to calculate just the LHS contribution. More... | |
void | CalculateSystemContributions (Condition &rCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Condition::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
void | CalculateLHSContribution (Condition &rCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, Condition::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
void | Clear () override |
Liberate internal storage. More... | |
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... | |
![]() | |
Scheme () | |
Default Constructor. More... | |
Scheme (Parameters ThisParameters) | |
Constructor with Parameters. More... | |
Scheme (Scheme &rOther) | |
virtual | ~Scheme () |
KRATOS_CLASS_POINTER_DEFINITION (Scheme) | |
Pointer definition of Scheme. More... | |
virtual ClassType::Pointer | Create (Parameters ThisParameters) const |
Create method. More... | |
virtual Pointer | Clone () |
Clone method. More... | |
bool | SchemeIsInitialized () |
This method returns if the scheme is initialized. More... | |
void | SetSchemeIsInitialized (bool SchemeIsInitializedFlag=true) |
This method sets if the elements have been initialized or not (true by default) More... | |
bool | ElementsAreInitialized () |
This method returns if the elements are initialized. More... | |
void | SetElementsAreInitialized (bool ElementsAreInitializedFlag=true) |
This method sets if the elements have been initialized or not (true by default) More... | |
bool | ConditionsAreInitialized () |
This method returns if the conditions are initialized. More... | |
void | SetConditionsAreInitialized (bool ConditionsAreInitializedFlag=true) |
This method sets if the conditions have been initialized or not (true by default) More... | |
virtual void | InitializeElements (ModelPart &rModelPart) |
This is the place to initialize the elements. More... | |
virtual void | InitializeConditions (ModelPart &rModelPart) |
This is the place to initialize the conditions. More... | |
virtual void | InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
unction to be called when it is needed to initialize an iteration. It is designed to be called at the beginning of each non linear iteration More... | |
virtual void | FinalizeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Function to be called when it is needed to finalize an iteration. It is designed to be called at the end of each non linear iteration. More... | |
virtual void | Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Performing the prediction of the solution. More... | |
virtual void | CalculateOutputData (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Functions to be called to prepare the data needed for the output of results. More... | |
virtual void | CleanOutputData () |
Functions that cleans the results data. More... | |
virtual void | Clean () |
This function is intended to be called at the end of the solution step to clean up memory storage not needed after the end of the solution step. More... | |
virtual int | Check (ModelPart &rModelPart) |
virtual void | CalculateRHSContribution (Element &rElement, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo) |
This function is designed to calculate just the RHS contribution. More... | |
virtual void | CalculateRHSContribution (Condition &rCondition, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo) |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
virtual void | EquationId (const Element &rElement, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) |
This method gets the eqaution id corresponding to the current element. More... | |
virtual void | EquationId (const Condition &rCondition, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
virtual void | GetDofList (const Element &rElement, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) |
Function that returns the list of Degrees of freedom to be assembled in the system for a Given element. More... | |
virtual void | GetDofList (const Condition &rCondition, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) |
Function that returns the list of Degrees of freedom to be assembled in the system for a Given condition. More... | |
virtual Parameters | GetDefaultParameters () const |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
Protected Member Functions | |
Protected Operations | |
virtual void | CalculateGradientContributions (Element &rElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateGradientContributions (Condition &rCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateFirstDerivativeContributions (Element &rElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateFirstDerivativeContributions (Condition &rCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSecondDerivativeContributions (Element &rElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateSecondDerivativeContributions (Condition &rCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateResidualLocalContributions (Element &rCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
Calculates elemental residual. More... | |
virtual void | CalculateResidualLocalContributions (Condition &rCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, const ProcessInfo &rCurrentProcessInfo) |
Calculates condition residual. More... | |
virtual void | CalculateTimeSchemeContributions (Element &rElement, LocalSystemVectorType &rAdjointTimeSchemeValues2, LocalSystemVectorType &rAdjointTimeSchemeValues3, AdjointResponseFunction &rAdjointResponseFunction, const BossakConstants &rBossakConstants, const ProcessInfo &rCurrentProcessInfo) |
Calculate time scheme contributions from elements. More... | |
virtual void | CalculateTimeSchemeContributions (Condition &rCondition, LocalSystemVectorType &rAdjointTimeSchemeValues2, LocalSystemVectorType &rAdjointTimeSchemeValues3, AdjointResponseFunction &rAdjointResponseFunction, const BossakConstants &rBossakConstants, const ProcessInfo &rCurrentProcessInfo) |
Calculates time scheme contributions from conditions. More... | |
virtual void | CalculateAuxiliaryVariableContributions (Element &rElement, LocalSystemVectorType &rAdjointAuxiliaryValues, AdjointResponseFunction &rAdjointResponseFunction, const BossakConstants &rBossakConstants, const ProcessInfo &rCurrentProcessInfo) |
Calculates auxiliary variable contributions from elements. More... | |
virtual void | CalculateAuxiliaryVariableContributions (Condition &rCondition, LocalSystemVectorType &rAdjointAuxiliaryValues, AdjointResponseFunction &rAdjointResponseFunction, const BossakConstants &rBossakConstants, const ProcessInfo &rCurrentProcessInfo) |
Calculates auxiliary contributions from conditions. More... | |
virtual void | CheckAndResizeThreadStorage (unsigned SystemSize) |
![]() | |
virtual Parameters | ValidateAndAssignParameters (Parameters ThisParameters, const Parameters DefaultParameters) const |
This method validate and assign default parameters. More... | |
virtual void | AssignSettings (const Parameters ThisParameters) |
This method assigns settings to member variables. More... | |
Type Definitions | |
typedef Scheme< TSparseSpace, TDenseSpace > | BaseType |
typedef BaseType::TSystemMatrixType | SystemMatrixType |
typedef BaseType::TSystemVectorType | SystemVectorType |
typedef BaseType::LocalSystemVectorType | LocalSystemVectorType |
typedef BaseType::LocalSystemMatrixType | LocalSystemMatrixType |
typedef BaseType::DofsArrayType | DofsArrayType |
KRATOS_CLASS_POINTER_DEFINITION (ResidualBasedAdjointBossakScheme) | |
Additional Inherited Members | |
![]() | |
using | ClassType = Scheme< TSparseSpace, TDenseSpace > |
The definition of the current class. More... | |
using | TDataType = typename TSparseSpace::DataType |
Data type definition. More... | |
using | TSystemMatrixType = typename TSparseSpace::MatrixType |
Matrix type definition. More... | |
using | TSystemVectorType = typename TSparseSpace::VectorType |
Vector type definition. More... | |
using | LocalSystemMatrixType = typename TDenseSpace::MatrixType |
Local system matrix type definition. More... | |
using | LocalSystemVectorType = typename TDenseSpace::VectorType |
Local system vector type definition. More... | |
using | TDofType = Dof< double > |
DoF type definition. More... | |
using | DofsArrayType = ModelPart::DofsArrayType |
DoF array type definition. More... | |
using | ElementsArrayType = ModelPart::ElementsContainerType |
Elements containers definition. More... | |
using | ConditionsArrayType = ModelPart::ConditionsContainerType |
Conditions containers definition. More... | |
![]() | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
A scheme for dynamic adjoint equations, using Bossak time integration.
It can be used for either first- or second-order time derivatives. Elements and conditions must provide a specialization of AdjointExtensions via their data value container, which allows the scheme to operate independently of the variable arrangements in the element or condition.
typedef Scheme<TSparseSpace, TDenseSpace> Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::BaseType |
typedef BaseType::DofsArrayType Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::DofsArrayType |
typedef BaseType::LocalSystemMatrixType Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::LocalSystemMatrixType |
typedef BaseType::LocalSystemVectorType Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType |
typedef BaseType::TSystemMatrixType Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::SystemMatrixType |
typedef BaseType::TSystemVectorType Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::SystemVectorType |
|
inline |
Constructor.
|
inlineoverride |
Destructor.
|
inlineprotectedvirtual |
Calculates auxiliary contributions from conditions.
rCondition | |
rAdjointAuxiliaryValues | |
rCurrentProcessInfo |
|
inlineprotectedvirtual |
Calculates auxiliary variable contributions from elements.
rElement | |
rAdjointAuxiliaryValues | |
rCurrentProcessInfo |
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Functions totally analogous to the precedent but applied to the "condition" objects.
rCondition | The condition to compute |
LHS_Contribution | The RHS vector contribution |
rEquationIdVector | The ID's of the condition degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This function is designed to calculate just the LHS contribution.
rElement | The element to compute |
LHS_Contribution | The RHS vector contribution |
rEquationIdVector | The ID's of the element degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Calculates condition residual.
[ \underline{F} = \underline{F} - \mathbf{\underline{K}}\underline{\lambda}_1 ]
rCurrentCondition | Current condition |
rLHS_Contribution | Left hand side matrix (i.e. $\mathbf{\underline{K}}$) |
rRHS_Contribution | Right hand side vector (i.e. $\underline{F}$) |
rCurrentProcessInfo | Current process info |
|
inlineprotectedvirtual |
Calculates elemental residual.
[ \underline{F} = \underline{F} - \mathbf{\underline{K}}\underline{\lambda}_1 ]
rCurrentElement | Current element |
rLHS_Contribution | Left hand side matrix (i.e. $\mathbf{\underline{K}}$) |
rRHS_Contribution | Right hand side vector (i.e. $\underline{F}$) |
rCurrentProcessInfo | Current process info |
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Functions totally analogous to the precedent but applied to the "condition" objects.
rCondition | The condition to compute |
LHS_Contribution | The LHS matrix contribution |
RHS_Contribution | The RHS vector contribution |
rEquationIdVector | The ID's of the condition degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This function is designed to be called in the builder and solver to introduce the selected time integration scheme.
It "asks" the matrix needed to the element and performs the operations needed to introduce the selected time integration scheme. This function calculates at the same time the contribution to the LHS and to the RHS of the system
rElement | The element to compute |
LHS_Contribution | The LHS matrix contribution |
RHS_Contribution | The RHS vector contribution |
rEquationIdVector | The ID's of the element degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Calculates time scheme contributions from conditions.
rCondition | |
rAdjointTimeSchemeValues2 | |
rAdjointTimeSchemeValues3 | |
rCurrentProcessInfo |
|
inlineprotectedvirtual |
Calculate time scheme contributions from elements.
rElement | |
rAdjointTimeSchemeValues2 | |
rAdjointTimeSchemeValues3 | |
rCurrentProcessInfo |
|
inlineoverridevirtual |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.
Checks can be "expensive" as the function is designed
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Liberate internal storage.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Function called once at the end of a solution step, after convergence is reached if an iterative process is needed.
rModelPart | The model part of the problem to solve |
A | LHS matrix |
Dx | Incremental update of primary variables |
b | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This is the place to initialize the Scheme.
This is intended to be called just once when the strategy is initialized
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::VelocityBossakAdjointScheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Function called once at the beginning of each solution step.
The basic operations to be carried in there are the following:
rModelPart | The model part of the problem to solve |
A | LHS matrix |
Dx | Incremental update of primary variables |
b | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
Kratos::ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | ResidualBasedAdjointBossakScheme< TSparseSpace, TDenseSpace > | ) |
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Performing the update of the solution.
rModelPart | The model part of the problem to solve |
rDofSet | Set of all primary variables |
A | LHS matrix |
Dx | Incremental update of primary variables |
b | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |