Go to the documentation of this file.
164 void setObjectiveFilePtr()
const;
167 void setInstantValueFilePtr()
const;
170 void setMeanValueFilePtr()
const;
203 const word& adjointSolverName,
204 const word& primalSolverName
206 (
mesh,
dict, adjointSolverName, primalSolverName)
217 const word& adjointSolverName,
218 const word& primalSolverName
229 const word& objectiveType,
230 const word& adjointSolverName,
231 const word& primalSolverName
244 virtual scalar J() = 0;
248 scalar JCycle()
const;
256 void accumulateJMean();
259 scalar weight()
const;
265 virtual void doNormalization();
268 bool isWithinIntegrationTime()
const;
271 void incrementIntegrationTimes(
const scalar timeSpan);
329 virtual void update() = 0;
332 virtual void nullify();
336 virtual void updateNormalizationFactor();
339 virtual void update_boundarydJdb()
343 virtual void update_dSdbMultiplier()
347 virtual void update_dndbMultiplier()
351 virtual void update_dxdbMultiplier()
356 virtual void update_dxdbDirectMultiplier()
360 virtual void update_boundaryEdgeContribution()
364 virtual void update_dJdStressMultiplier()
368 virtual void update_divDxDbMultiplier()
372 virtual void update_gradDxDbMultiplier()
376 virtual bool write(
const bool valid =
true)
const;
379 virtual void writeInstantaneousValue()
const;
382 virtual void writeInstantaneousSeparator()
const;
385 virtual void writeMeanValue()
const;
388 virtual bool writeData(Ostream& os)
const;
391 inline const word& objectiveName()
const;
392 inline bool hasdJdb()
const;
393 inline bool hasBoundarydJdb()
const;
394 inline bool hasdSdbMult()
const;
395 inline bool hasdndbMult()
const;
396 inline bool hasdxdbMult()
const;
397 inline bool hasdxdbDirectMult()
const;
398 inline bool hasBoundaryEdgeContribution()
const;
399 inline bool hasBoundarydJdStress()
const;
400 inline bool hasDivDxDbMult()
const;
401 inline bool hasGradDxDbMult()
const;
404 inline bool hasIntegrationStartTime()
const;
405 inline bool hasIntegrationEndTime()
const;
autoPtr< scalar > normFactor_
Normalization factor.
autoPtr< scalar > integrationStartTimePtr_
Objective integration start and end times (for unsteady flows)
A class for handling words, derived from Foam::string.
A class for handling file names.
virtual bool writeData(Ostream &) const
The writeData function required by regIOobject write operation.
const word objectiveName_
static autoPtr< dictionary > New(Istream &is)
Construct top-level dictionary on freestore from Istream.
scalar target_
Target value, in case the objective is used as a constraint.
Base class for solver control classes.
const word adjointSolverName_
scalar J_
Objective function value and weight.
volTensorField::Boundary boundaryTensorField
TypeName("dictionary")
Declare type-name, virtual type (with debug switch)
const word primalSolverName_
scalar weight_
Objective weight.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
autoPtr< scalar > integrationEndTimePtr_
Mesh data needed to do the Finite Volume discretisation.
Useful typenames for fields defined only at the boundaries.
Macros to ease declaration of run-time selection tables.
void write(Ostream &os, const bool subDict=true) const
Write dictionary, normally with sub-dictionary formatting.
scalar JMean_
Average objective value.
void operator=(const baseIOdictionary &)
Copy assignment of dictionary entries (leave regIOobject untouched)
Abstract base class for objective functions. No point in making this runTime selectable since its chi...
localIOdictionary is derived from IOdictionary but excludes parallel master reading.
#define declareRunTimeNewSelectionTable( autoPtr, baseType, argNames, argList, parList)
Declare a run-time selection for derived classes.
quaternion normalize(const quaternion &q)
Return the normalized (unit) quaternion of the given quaternion.