41 #ifndef adjointSolverManager_H 42 #define adjointSolverManager_H 111 const word& managerType,
113 bool overrideUseSolverName
label nOneSidedConstraints() const
Number of adjoint solvers corresponding to one-sided constraints.
void updatePrimalBasedQuantities(const word &name)
Update fields related to primal solution.
scalar objectiveValue()
Get objective value.
labelList doubleSidedConstraintSolverIDs_
PtrList< scalarField > constraintSensitivities()
Get constraint sensitivities. One scalarField per constraint.
tmp< scalarField > constraintValues()
Get constraint values.
label nObjectives() const
Number of adjoint solvers corresponding to objectives.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
label nAdjointSolvers() const
Total number of adjoint solvers.
const word & name() const noexcept
Return the object name.
scalar operatingPointWeight() const
Const access to adjoint solvers.
bool isMaster() const
Whether the primal solver corresponding to the adjointSolverManager is the master one...
const word primalSolverName_
void clearSensitivities()
Clear sensitivity fields from all adjoint solvers.
tmp< scalarField > aggregateSensitivities()
Aggregate sensitivities from various adjoint solvers.
label nActiveAdjointSolvers_
const word & managerName() const
Const access to the manager name.
labelList oneSidedConstraintSolverIDs_
wordList adjointSolversNames() const
Return the names of all adjointSolvers.
PtrList< adjointSolver > adjointSolvers_
label nConstraints() const
Number of constraints.
void computeAllSensitivities()
Compute sensitivities for all adjoint solvers (both objective- and constraint-related ones) ...
TypeName("adjointSolverManager")
A class for handling words, derived from Foam::string.
label nDoubleSidedConstraints() const
Number of adjoint solvers corresponding to double-sided constraints.
const PtrList< adjointSolver > & adjointSolvers() const
Const access to adjoint solvers.
autoPtr< designVariables > & designVars_
label nActiveAdjointSolvers() const
Return number of active adjoint solvers, either corresponding.
const dictionary & dict() const
Const access to the construction dictionary.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void solveAdjointEquations()
Update objective function-related values and solve adjoint equations.
virtual ~adjointSolverManager()=default
Destructor.
scalar operatingPointWeight_
Class for managing adjoint solvers, which may be more than one per operating point.
bool readDict(const dictionary &dict)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
virtual bool writeData(Ostream &) const
Pure virtual writeData function.
Mesh data needed to do the Finite Volume discretisation.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
A class for managing temporary objects.
const word & primalSolverName() const
Const access to the primal solver name.
labelList objectiveSolverIDs_