v0.16.3
Loading...
Searching...
No Matches
Public Member Functions | List of all members
EshelbianPlasticity::IncrementalOptimizationProblem Struct Referenceabstract

#include "users_modules/eshelbian_plasticity/src/IncrementalOptimization.hpp"

Inheritance diagram for EshelbianPlasticity::IncrementalOptimizationProblem:
[legend]

Public Member Functions

virtual ~IncrementalOptimizationProblem ()=default
 
virtual std::string getName () const =0
 
virtual MoFEMErrorCode validate ()=0
 
virtual DM getControlDM () const =0
 
virtual MoFEMErrorCode createControlData (SmartPetscObj< Vec > &committed_control, SmartPetscObj< Vec > &candidate_control)=0
 
virtual MoFEMErrorCode configureConstraintDM (DM constraint_dm)=0
 
virtual MoFEMErrorCode initialiseInequalityMultipliers (DM constraint_dm, Vec multipliers)=0
 
virtual MoFEMErrorCode initialiseReferenceControl (Vec committed_control, Vec reference_control)=0
 
virtual MoFEMErrorCode solveState (Vec state, EquilibriumSolveReport &report)=0
 
virtual MoFEMErrorCode restoreState (Vec state)=0
 
virtual MoFEMErrorCode evaluateConservativeValue (double &value)=0
 
virtual MoFEMErrorCode assembleConservativeGradient (Vec smooth_gradient)=0
 
virtual MoFEMErrorCode evaluateDissipation (Vec control, double &value)=0
 
virtual MoFEMErrorCode assembleObjectiveGradient (Vec control, Vec smooth_gradient, Vec objective_gradient)=0
 
virtual MoFEMErrorCode evaluateInequalityConstraints (Vec control, Vec constraints)=0
 
virtual MoFEMErrorCode assembleInequalityJacobian (Vec control, Vec smooth_gradient, Mat jacobian)=0
 
virtual MoFEMErrorCode assembleInequalityJacobianWithoutSmoothGradient (Vec control, Mat jacobian)=0
 
virtual MoFEMErrorCode validateSolution (DM constraint_dm, Vec control, Vec smooth_gradient, Vec inequality_multipliers, PetscReal gradient_tolerance, PetscReal constraint_tolerance, std::string &diagnostics)=0
 
virtual MoFEMErrorCode commit (Vec solution, Vec equilibrated_state, Vec committed_control, Vec candidate_control, Vec reference_control)=0
 

Detailed Description

Physics contract consumed by the generic incremental optimizer.

Plasticity, cohesive fracture, and contact/friction implement this interface without adding their variables or constitutive assumptions to IncrementalOptimizationContext.

Definition at line 58 of file IncrementalOptimization.hpp.

Constructor & Destructor Documentation

◆ ~IncrementalOptimizationProblem()

virtual EshelbianPlasticity::IncrementalOptimizationProblem::~IncrementalOptimizationProblem ( )
virtualdefault

Member Function Documentation

◆ assembleConservativeGradient()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::assembleConservativeGradient ( Vec  smooth_gradient)
pure virtual

Assemble the reduced conservative gradient.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ assembleInequalityJacobian()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::assembleInequalityJacobian ( Vec  control,
Vec  smooth_gradient,
Mat  jacobian 
)
pure virtual

◆ assembleInequalityJacobianWithoutSmoothGradient()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::assembleInequalityJacobianWithoutSmoothGradient ( Vec  control,
Mat  jacobian 
)
pure virtual

Assemble a finite generalized row without a usable smooth gradient.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ assembleObjectiveGradient()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::assembleObjectiveGradient ( Vec  control,
Vec  smooth_gradient,
Vec  objective_gradient 
)
pure virtual

◆ commit()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::commit ( Vec  solution,
Vec  equilibrated_state,
Vec  committed_control,
Vec  candidate_control,
Vec  reference_control 
)
pure virtual

Commit physics history and all next-step control vectors atomically. solution and equilibrated_state are read-only accepted inputs; a successful implementation may modify only physics history and the three control outputs.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ configureConstraintDM()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::configureConstraintDM ( DM  constraint_dm)
pure virtual

Add physics-specific rows, columns, and elements to constraintDM.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ createControlData()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::createControlData ( SmartPetscObj< Vec > &  committed_control,
SmartPetscObj< Vec > &  candidate_control 
)
pure virtual

Create the problem's committed and candidate control vectors.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ evaluateConservativeValue()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::evaluateConservativeValue ( double value)
pure virtual

◆ evaluateDissipation()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::evaluateDissipation ( Vec  control,
double value 
)
pure virtual

◆ evaluateInequalityConstraints()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::evaluateInequalityConstraints ( Vec  control,
Vec  constraints 
)
pure virtual

◆ getControlDM()

virtual DM EshelbianPlasticity::IncrementalOptimizationProblem::getControlDM ( ) const
pure virtual

Parent DM containing every optimization-control field.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ getName()

virtual std::string EshelbianPlasticity::IncrementalOptimizationProblem::getName ( ) const
pure virtual

◆ initialiseInequalityMultipliers()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::initialiseInequalityMultipliers ( DM  constraint_dm,
Vec  multipliers 
)
pure virtual

Set initial multipliers using constraint-DM row numbering.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ initialiseReferenceControl()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::initialiseReferenceControl ( Vec  committed_control,
Vec  reference_control 
)
pure virtual

Define the zero-increment/reference point for a new load step.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.

◆ restoreState()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::restoreState ( Vec  state)
pure virtual

◆ solveState()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::solveState ( Vec  state,
EquilibriumSolveReport report 
)
pure virtual

◆ validate()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::validate ( )
pure virtual

◆ validateSolution()

virtual MoFEMErrorCode EshelbianPlasticity::IncrementalOptimizationProblem::validateSolution ( DM  constraint_dm,
Vec  control,
Vec  smooth_gradient,
Vec  inequality_multipliers,
PetscReal  gradient_tolerance,
PetscReal  constraint_tolerance,
std::string &  diagnostics 
)
pure virtual

Physics-specific primal/dual checks using both DM layouts.

Implemented in EshelbianPlasticity::PlasticIncrementalOptimizationProblem.


The documentation for this struct was generated from the following file: