Loading...
Searching...
No Matches
objective Class Referenceabstract

Abstract base class for objective functions. No point in making this runTime selectable since its children will have different constructors. More...

#include <objective.H>

Inheritance diagram for objective:
Collaboration diagram for objective:

Public Member Functions

 TypeName ("objective")
 Runtime type information.
 declareRunTimeNewSelectionTable (autoPtr, objective, objective,(const fvMesh &mesh, const dictionary &dict, const word &adjointSolverName, const word &primalSolverName),(mesh, dict, adjointSolverName, primalSolverName))
 objective (const fvMesh &mesh, const dictionary &dict, const word &adjointSolverName, const word &primalSolverName)
 Construct from components.
virtual ~objective ()=default
 Destructor.
virtual bool readDict (const dictionary &dict)
virtual scalar J ()=0
 Return the instantaneous objective function value.
virtual scalar JCycle (bool negate=false) const
 Return the objective function of the optimisation cycle.
virtual void accumulateJMean (solverControl &solverControl)
 Accumulate contribution for the mean objective value.
virtual void accumulateJMean ()
 Accumulate contribution for the mean objective value.
virtual scalar weight () const
 Return the objective function weight.
virtual bool normalize () const
 Is the objective normalized.
virtual void doNormalization ()
 Normalize all fields allocated by the objective.
virtual bool isWithinIntegrationTime () const
 Check whether this is an objective integration time.
virtual void incrementIntegrationTimes (const scalar timeSpan)
 Increment integration times.
const volScalarFielddJdb () const
 Contribution to field sensitivities.
const scalarFielddJdbField () const
 Contribution to sensitivities with a random number of designVars.
const fvPatchVectorFieldboundarydJdb (const label) const
 Contribution to surface sensitivities for a specific patch.
const fvPatchVectorFielddSdbMultiplier (const label) const
 Multiplier of delta(n dS)/delta b.
const fvPatchVectorFielddndbMultiplier (const label) const
 Multiplier of delta(n dS)/delta b.
const fvPatchVectorFielddxdbMultiplier (const label) const
 Multiplier of delta(x)/delta b.
const fvPatchVectorFielddxdbDirectMultiplier (const label) const
 Multiplier of delta(x)/delta b.
const vectorFieldboundaryEdgeMultiplier (const label patchI, const label edgeI) const
 Multiplier located at patch boundary edges.
const boundaryVectorFieldboundarydJdb () const
 Contribution to surface sensitivities for all patches.
const boundaryVectorFielddSdbMultiplier () const
 Multiplier of delta(n dS)/delta b for all patches.
const boundaryVectorFielddndbMultiplier () const
 Multiplier of delta(n dS)/delta b for all patches.
const boundaryVectorFielddxdbMultiplier () const
 Multiplier of delta(x)/delta b for all patches.
const boundaryVectorFielddxdbDirectMultiplier () const
 Multiplier of delta(x)/delta b for all patches.
const vectorField3boundaryEdgeMultiplier () const
 Multiplier located at patch boundary edges.
const volScalarFielddivDxDbMultiplier () const
 Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.
const volTensorFieldgradDxDbMultiplier () const
 Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.
virtual void update ()=0
 Update objective function derivatives.
virtual void nullify ()
 Nullify adjoint contributions.
virtual void updateNormalizationFactor ()
 Update normalization factors, for objectives in which the factor is not known a priori.
virtual void update_dJdb ()
virtual void update_dJdbField ()
virtual void update_boundarydJdb ()
 Update objective function derivative term.
virtual void update_dSdbMultiplier ()
 Update d (normal dS) / db multiplier. Surface-based sensitivity term.
virtual void update_dndbMultiplier ()
 Update d (normal) / db multiplier. Surface-based sensitivity term.
virtual void update_dxdbMultiplier ()
 Update d (x) / db multiplier. Surface-based sensitivity term.
virtual void update_dxdbDirectMultiplier ()
 Update d (x) / db multiplier. Surface and volume-based sensitivity term.
virtual void update_boundaryEdgeContribution ()
 Update boundary edge contributions.
virtual void update_divDxDbMultiplier ()
 Update div( dx/db multiplier). Volume-based sensitivity term.
virtual void update_gradDxDbMultiplier ()
 Update grad( dx/db multiplier). Volume-based sensitivity term.
virtual void addSource (fvVectorMatrix &matrix)
 Manipulate fvVectorMatrix through the objective.
virtual void addSource (fvScalarMatrix &matrix)
 Manipulate fvVectorMatrix through the objective.
virtual bool write (const bool valid=true) const
 Write objective function history.
virtual void writeInstantaneousValue () const
 Write objective function history at each primal solver iteration.
virtual void writeInstantaneousSeparator () const
 Append a blank line after the end of optimisation cycle to the file holding the instantaneous objective values to facilitate plotting.
virtual void writeMeanValue () const
 Write mean objective function history.
virtual bool writeData (Ostream &os) const
 Write averaged objective for continuation.
virtual void addHeaderInfo () const
 Write any information that needs to go the header of the file.
virtual void addHeaderColumns () const
 Write headers for additional columns.
virtual void addColumnValues () const
 Write information to additional columns.
const wordobjectiveName () const
 Return the objective name.
bool shouldWrite () const
 Should the objective be written to file upon calling write()?
void setWrite (const bool shouldWrite)
 Should the objective be written to file upon calling write()?
bool hasdJdb () const noexcept
bool hasdJdbField () const noexcept
bool hasBoundarydJdb () const noexcept
bool hasdSdbMult () const noexcept
bool hasdndbMult () const noexcept
bool hasdxdbMult () const noexcept
bool hasdxdbDirectMult () const noexcept
bool hasBoundaryEdgeContribution () const noexcept
bool hasDivDxDbMult () const noexcept
bool hasGradDxDbMult () const noexcept
bool hasIntegrationStartTime () const noexcept
bool hasIntegrationEndTime () const noexcept
void setComputed (const bool isComputed) noexcept
 Set the computed status of the objective.
const dictionarydict () const
 Return objective dictionary.
Public Member Functions inherited from localIOdictionary
 localIOdictionary (const IOobject &io, const dictionary *fallback=nullptr)
 Construct given an IOobject and optional fallback dictionary content.
 localIOdictionary (const IOobject &io, const dictionary &dict)
 Construct given an IOobject and fallback dictionary content.
 localIOdictionary (const IOobject &io, const word &wantedType, const dictionary *fallback=nullptr)
 Construct given an IOobject, wanted typeName and optional fallback dictionary content.
 localIOdictionary (const IOobject &io, Istream &is)
 Construct given an IOobject and Istream.
virtual ~localIOdictionary ()=default
 Destructor.
virtual bool global () const
 The object is not global.
virtual fileName filePath () const
 Return complete path + object name if the file exists in the case otherwise null.
Public Member Functions inherited from baseIOdictionary
 TypeName ("dictionary")
 Declare type-name, virtual type (with debug switch).
 baseIOdictionary (const baseIOdictionary &)=default
 Copy construct.
 baseIOdictionary (baseIOdictionary &&)=default
 Move construct.
virtual ~baseIOdictionary ()=default
 Destructor.
 baseIOdictionary (const IOobject &io, const dictionary *fallback=nullptr)
 Construct given an IOobject and optional fallback dictionary content (ununsed).
 baseIOdictionary (const IOobject &io, const dictionary &dict)
 Construct given an IOobject and fallback dictionary content (ununsed).
 baseIOdictionary (const IOobject &io, Istream &is)
 Construct given an IOobject and Istream (ununsed).
const wordname () const
 Name function is needed to disambiguate those inherited from regIOobject and dictionary.
virtual bool readData (Istream &)
 The readData function required by regIOobject read operation.
void operator= (const baseIOdictionary &rhs)
 Copy assignment of dictionary entries.
void operator= (baseIOdictionary &&rhs)
 Move assignment of dictionary entries.
void operator= (const dictionary &rhs)
 Copy assignment of dictionary entries.
Public Member Functions inherited from regIOobject
void operator= (const regIOobject &)=delete
 No copy assignment.
 TypeName ("regIOobject")
 Runtime type information.
 regIOobject (const IOobject &io, const bool isTimeObject=false)
 Construct from IOobject. The optional flag adds special handling if the object is the top-level regIOobject (eg, Time).
 regIOobject (const regIOobject &rio)
 Copy construct.
 regIOobject (const regIOobject &rio, bool registerCopy)
 Copy construct, transferring registry registration to the copy if registerCopy is true.
 regIOobject (const word &newName, const regIOobject &, bool registerCopy)
 Copy construct with new name, transferring registry registration to the copy if registerCopy is true.
 regIOobject (const IOobject &io, const regIOobject &rio)
 Copy construct with new IO parameters.
virtual ~regIOobject ()
 Destructor.
bool checkIn ()
 Add object to registry, if not already registered.
bool checkOut ()
 Remove object from registry, and remove all file watches.
virtual void addWatch ()
 Add file watch on object (if registered and READ_IF_MODIFIED).
bool registered () const noexcept
 Query the registered state (ie, has been checked in). This is not necessarily the same as registerObject(), which is just a stated preference.
bool ownedByRegistry () const noexcept
 Is this object owned by the registry?
bool store ()
 Register object with its registry and transfer ownership to the registry.
void release (const bool unregister=false) noexcept
 Set object as not ownedByRegistry.
label eventNo () const noexcept
 Event number at last update.
label & eventNo () noexcept
 Event number at last update.
bool upToDate (const regIOobject &) const
 Return true if up-to-date with respect to given object.
bool upToDate (const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects.
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects.
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects.
void setUpToDate ()
 Set as up-to-date.
virtual void rename (const word &newName)
 Rename.
const dictionaryfindMetaData () const noexcept
 Return pointer to meta-data or nullptr.
dictionarygetMetaData () noexcept
 Get or create meta-data.
void removeMetaData ()
 Remove meta-data.
virtual void updateMetaData ()
 Update internal meta-data (eg, prior to writing).
bool headerOk ()
 Read and check header info. Does not check the headerClassName.
IstreamreadStream (const word &, const bool readOnProc=true)
 Return Istream and check object type against that given.
void close ()
 Close Istream.
virtual bool read ()
 Read object.
virtual label addWatch (const fileName &)
 Add file watch for fileName on object if not yet watched.
const labelListwatchIndices () const noexcept
 Read access to file-monitoring handles.
labelListwatchIndices () noexcept
 Write access to file-monitoring handles.
virtual bool modified () const
 Return true if the object's file (or files for objectRegistry) have been modified. (modified state is cached by Time).
virtual bool readIfModified ()
 Read object if modified (as set by call to modified).
virtual bool writeObject (IOstreamOption streamOpt, const bool writeOnProc) const
 Write using stream options.
void operator= (const IOobject &io)
 Copy assignment.
virtual bool writeObject (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp, const bool writeOnProc) const
 Write using given format, version and compression.
Public Member Functions inherited from IOobject
 TypeName ("IOobject")
 Declare type-name, virtual type (with debug switch).
 IOobject (const IOobject &)=default
 Copy construct.
virtual ~IOobject ()=default
 Destructor.
 IOobject (const word &name, const fileName &instance, const objectRegistry &registry, IOobjectOption ioOpt=IOobjectOption())
 Construct from name, instance, registry, io options.
 IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry &registry, IOobjectOption ioOpt=IOobjectOption())
 Construct from name, instance, local, registry, io options.
 IOobject (const fileName &path, const objectRegistry &registry, IOobjectOption ioOpt=IOobjectOption())
 Construct from path, registry, io options.
 IOobject (const word &name, const fileName &instance, const objectRegistry &registry, IOobjectOption::readOption rOpt, IOobjectOption::writeOption wOpt=IOobjectOption::NO_WRITE, bool registerObject=true, bool globalObject=false)
 Construct from name, instance, registry, io options.
 IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry &registry, IOobjectOption::readOption rOpt, IOobjectOption::writeOption wOpt=IOobjectOption::NO_WRITE, bool registerObject=true, bool globalObject=false)
 Construct from name, instance, local, registry, io options.
 IOobject (const fileName &path, const objectRegistry &registry, IOobjectOption::readOption rOpt, IOobjectOption::writeOption wOpt=IOobjectOption::NO_WRITE, bool registerObject=true, bool globalObject=false)
 Construct from path, registry, io options.
 IOobject (const IOobject &io, const objectRegistry &registry)
 Copy construct, resetting registry.
 IOobject (const IOobject &io, const word &name)
 Copy construct, resetting name.
 IOobject (const IOobject &io, const word &name, const fileName &local)
 Copy construct, resetting name and local component.
 IOobject (const IOobject &io, IOobjectOption::readOption rOpt, IOobjectOption::writeOption wOpt)
 Copy construct, resetting read/write options.
 IOobject (const IOobject &io, IOobjectOption::registerOption regOpt)
 Copy construct, resetting register option.
autoPtr< IOobject > clone () const
 Clone.
autoPtr< IOobject > clone (const objectRegistry &registry) const
 Clone resetting registry.
const objectRegistrydb () const noexcept
 Return the local objectRegistry.
const Timetime () const noexcept
 Return Time associated with the objectRegistry.
const wordname () const noexcept
 Return the object name.
const wordheaderClassName () const noexcept
 Return name of the class name read from header.
wordheaderClassName () noexcept
 Modifiable access to the class name read from header.
const stringnote () const noexcept
 Return the optional note.
stringnote () noexcept
 Modifiable access to the optional note.
unsigned labelByteSize () const noexcept
 The sizeof (label) in bytes, possibly read from the header.
unsigned scalarByteSize () const noexcept
 The sizeof (scalar) in bytes, possibly read from the header.
void resetHeader (const word &newName=word::null)
 Clear various bits (headerClassName, note, sizeof...) that would be obtained when reading from a file.
bool hasHeaderClass () const noexcept
 True if headerClassName() is non-empty (after reading).
bool isHeaderClass (const word &expectedType) const
 Check if headerClassName() equals the expected type. Always true if the expected type is empty.
template<class Type>
bool isHeaderClass () const
 Check if headerClassName() equals Type::typeName Always true for a void type.
word group () const
 Return group (extension part of name).
word member () const
 Return member (name without the extension).
const fileNamerootPath () const noexcept
 Return the Time::rootPath().
const fileNamecaseName () const noexcept
 Return the Time::caseName().
const fileNameglobalCaseName () const noexcept
 Return the Time::globalCaseName().
const fileNamecaseName (IOobjectOption::Layout) const noexcept
 Return the Time::caseName() - normal or global.
const fileNameinstance () const noexcept
 Read access to instance path component.
fileNameinstance () noexcept
 Modifiable access to instance path component.
scalar instanceValue () const
 Return the scalar value of the instance component (or 0), which often corresponds to a time index/value.
const fileNamelocal () const noexcept
 Read access to local path component.
fileNamelocal () noexcept
 Modifiable access to the local path component.
fileName path () const
 The complete path for the object (with instance, local,...).
fileName globalPath () const
 The complete global path for the object (with instance, local,...).
fileName path (IOobjectOption::Layout) const
 The complete path (normal or global) for the object.
fileName path (const word &instance, const fileName &local=fileName::null) const
 The complete path with alternative instance and local.
fileName globalPath (const word &instance, const fileName &local=fileName::null) const
 The complete global path with alternative instance and local.
fileName path (IOobjectOption::Layout, const word &instance, const fileName &local=fileName::null) const
 The complete path (normal or global) with alternative instance and local.
fileName objectPath () const
 The complete path + object name.
fileName globalObjectPath () const
 The complete global path + object name.
fileName objectPath (IOobjectOption::Layout) const
 The complete path (normal or global) + object name.
fileName objectPath (IOobjectOption::Layout, const word &instance) const
 The complete path (normal or global) + object name with alternative instance.
fileName objectPath (const word &instance) const
 The complete path + object name with alternative instance.
fileName globalObjectPath (const word &instance) const
 The complete global path + object name with alternative instance.
fileName objectRelPath () const
 The object path relative to the case.
fileName localFilePath (const word &typeName, const bool search=true) const
 Redirect to fileHandler filePath, searching locally.
fileName globalFilePath (const word &typeName, const bool search=true) const
 Redirect to fileHandler filePath, searching up if in parallel.
IOstreamOption parseHeader (const dictionary &headerDict)
 Parse 'FoamFile' header contents and set the IOobject characteristics and return the stream characteristics.
bool readHeader (Istream &is)
 Read header ('FoamFile' dictionary) and set the IOobject and stream characteristics.
bool readHeader (dictionary &headerDict, Istream &is)
 Read header (the 'FoamFile' dictionary) and set the IOobject and stream characteristics.
template<class Type>
bool typeHeaderOk (const bool checkType=true, const bool search=true, const bool verbose=true)
 Read header (respects is_globalIOobject trait) and check its info. A void type suppresses trait and type-name checks.
template<class Type, bool Searching>
bool typeHeaderOk (const bool checkType=true, const bool verbose=true)
 Forwards to single-parameter version with the specified search type. A void type suppresses trait and type-name checks.
template<class Type>
fileName typeFilePath (const bool search=true) const
 Call localFilePath or globalFilePath for given type depending on its is_globalIOobject trait.
template<class Type>
void warnNoRereading () const
 Helper: warn that type does not support re-reading.
bool writeHeader (Ostream &os) const
 Write header with current type().
bool writeHeader (Ostream &os, const word &objectType) const
 Write header with override of type.
void writeHeader (dictionary &dict, IOstreamOption streamOpt) const
 Write header into a dictionary with current type() and given output format.
void writeHeader (dictionary &dict, const word &objectType, IOstreamOption streamOpt) const
 Write header into a dictionary with override of type and given output format.
bool good () const noexcept
 Did last readHeader() succeed?
bool bad () const noexcept
 Did last readHeader() fail?
InfoProxy< IOobject > info () const noexcept
 Return info proxy, for printing information to a stream.
void operator= (const IOobject &io)
 Copy assignment, copies all values (except the registry).
template<class Type>
bool isHeaderClassName () const
 Same as isHeaderClass().
template<class StringType>
Foam::word groupName (StringType base, const word &group)
template<class Type>
Foam::fileName typeFilePath (const bool search) const
Public Member Functions inherited from IOobjectOption
constexpr IOobjectOption (readOption rOpt=readOption::NO_READ, writeOption wOpt=writeOption::NO_WRITE, registerOption registerObject=registerOption::REGISTER, bool globalObject=false) noexcept
 Default construct (NO_READ, NO_WRITE, REGISTER, non-global) or construct with specified options.
constexpr IOobjectOption (readOption rOpt, registerOption registerObject=registerOption::REGISTER, bool globalObject=false) noexcept
 Construct NO_WRITE with specified read/register options.
constexpr IOobjectOption (writeOption wOpt, registerOption registerObject=registerOption::REGISTER, bool globalObject=false) noexcept
 Construct NO_READ with specified write/register options.
constexpr IOobjectOption (registerOption registerObject, bool globalObject=false) noexcept
 Construct (NO_READ, NO_WRITE) with specified register option.
constexpr IOobjectOption (readOption rOpt, writeOption wOpt, bool registerObject, bool globalObject=false) noexcept
 Construct from components with specified register option as bool.
constexpr IOobjectOption (bool registerObject, bool globalObject=false) noexcept
 Construct (NO_READ, NO_WRITE) with specified register option as bool.
readOption readOpt () const noexcept
 Get the read option.
readOption readOpt (readOption opt) noexcept
 Set the read option.
writeOption writeOpt () const noexcept
 Get the write option.
writeOption writeOpt (writeOption opt) noexcept
 Set the write option.
bool registerObject () const noexcept
 Should objects created with this IOobject be registered?
bool registerObject (bool on) noexcept
 Change registration preference.
bool globalObject () const noexcept
 True if object is treated the same for all processors.
bool globalObject (bool on) noexcept
 Change global-object status.
bool isAnyRead () const noexcept
 True if any reading may be required (ie, != NO_READ).
bool isReadRequired () const noexcept
 True if (MUST_READ | READ_MODIFIED) bits are set.
bool isReadOptional () const noexcept
 True if (LAZY_READ) bits are set [same as READ_IF_PRESENT].
readOptionreadOpt () noexcept
 Access to the read option.
writeOptionwriteOpt () noexcept
 Access to the write option.
bool & registerObject () noexcept
 Access to the register object option.
bool & globalObject () noexcept
 Access to the global object option.
Public Member Functions inherited from dictionary
 ClassName ("dictionary")
 dictionary ()
 Default construct, a top-level empty dictionary.
 dictionary (const fileName &name)
 Construct top-level empty dictionary with given name.
 dictionary (const fileName &name, const dictionary &parentDict, Istream &is, bool keepHeader=false)
 Construct given the entry name, parent dictionary and Istream, reading entries until EOF, optionally keeping the header.
 dictionary (Istream &is)
 Construct top-level dictionary from Istream (discards the header). Reads entries until EOF or when the first token is a '{' character, it will stop reading at the matching '}' character.
 dictionary (Istream &is, bool keepHeader)
 Construct top-level dictionary from Istream, reading entries until EOF, optionally keeping the header.
 dictionary (const dictionary &parentDict, const dictionary &dict)
 Copy construct given the parent dictionary.
 dictionary (const dictionary &dict)
 Copy construct top-level dictionary.
 dictionary (const dictionary *dict)
 Construct top-level dictionary as copy from pointer to dictionary.
 dictionary (const dictionary &parentDict, dictionary &&dict)
 Move construct for given parent dictionary.
 dictionary (dictionary &&dict)
 Move construct top-level dictionary.
autoPtr< dictionaryclone () const
 Construct and return clone.
virtual ~dictionary ()
 Destructor.
const fileNamename () const noexcept
 The dictionary name.
fileNamename () noexcept
 The dictionary name for modification (use with caution).
word dictName () const
 The local dictionary name (final part of scoped name).
fileName relativeName (const bool caseTag=false) const
 The dictionary name relative to the case.
bool isNullDict () const noexcept
 The dictionary is actually dictionary::null (root dictionary).
const dictionaryparent () const noexcept
 Return the parent dictionary.
const dictionarytopDict () const
 Return the top of the tree.
label startLineNumber () const
 Return line number of first token in dictionary.
label endLineNumber () const
 Return line number of last token in dictionary.
SHA1Digest digest () const
 Return the SHA1 digest of the dictionary contents.
tokenList tokens () const
 Return the dictionary as a list of tokens.
const entryfindEntry (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find an entry (const access) with the given keyword.
entryfindEntry (const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
 Find an entry (non-const access) with the given keyword.
bool found (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find an entry (const access) with the given keyword.
const entryfindScoped (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Search for a scoped entry (const access) with the given keyword.
const dictionaryfindDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a sub-dictionary pointer if present (and it is a dictionary) otherwise return nullptr.
dictionaryfindDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
 Find and return a sub-dictionary pointer if present (and it is a dictionary) otherwise return nullptr.
ITstreamfindStream (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return an entry stream if present (and it is a stream) otherwise return nullptr.
const entrylookupEntry (const word &keyword, enum keyType::option matchOpt) const
 Search for an entry (const access) with the given keyword.
ITstreamlookup (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return an entry data stream. FatalIOError if not found, or not a stream.
template<class T>
T get (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
template<class T>
T getOrDefault (const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T, or return the given default value. FatalIOError if it is found and the number of tokens is incorrect.
template<class T>
T getOrAdd (const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX)
 Find and return a T, or return the given default value and add it to dictionary. FatalIOError if it is found and the number of tokens is incorrect.
template<class T>
bool readEntry (const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) const
 Find entry and assign to T val. FatalIOError if it is found and the number of tokens is incorrect, or it is mandatory and not found.
template<class T>
bool readIfPresent (const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX) const
 Find an entry if present, and assign to T val. FatalIOError if it is found and the number of tokens is incorrect.
template<class T, class Predicate>
T getCheck (const word &keyword, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T with additional checking FatalIOError if not found, or if the number of tokens is incorrect.
template<class T, class Predicate>
T getCheckOrDefault (const word &keyword, const T &deflt, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T, or return the given default value. FatalIOError if it is found and the number of tokens is incorrect.
template<class T, class Predicate>
T getCheckOrAdd (const word &keyword, const T &deflt, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX)
 Find and return a T, or return the given default value and add it to dictionary. FatalIOError if it is found and the number of tokens is incorrect.
template<class T, class Predicate>
bool readCheck (const word &keyword, T &val, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) const
 Find entry and assign to T val. FatalIOError if it is found and the number of tokens is incorrect, or it is mandatory and not found.
template<class T, class Predicate>
bool readCheckIfPresent (const word &keyword, T &val, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX) const
 Find an entry if present, and assign to T val. FatalIOError if it is found and the number of tokens is incorrect.
const dictionarysubDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a sub-dictionary.
dictionarysubDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
 Find and return a sub-dictionary for manipulation.
dictionarysubDictOrAdd (const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
 Find and return a sub-dictionary for manipulation.
dictionary subOrEmptyDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX, const bool mandatory=false) const
 Find and return a sub-dictionary as a copy, otherwise return an empty dictionary.
const dictionaryoptionalSubDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a sub-dictionary, otherwise return this dictionary.
wordList toc () const
 Return the table of contents.
wordList sortedToc () const
 Return the sorted table of contents.
template<class Compare>
wordList sortedToc (const Compare &comp) const
 Return table of contents sorted using the specified comparator.
List< keyTypekeys (bool patterns=false) const
 Return the list of available keys or patterns.
bool substituteKeyword (const word &keyword, bool mergeEntry=false)
 Substitute the given keyword (which is prefixed by '$').
bool substituteScopedKeyword (const word &keyword, bool mergeEntry=false)
 Substitute the given scoped keyword (which is prefixed by '$').
entryadd (entry *entryPtr, bool mergeEntry=false)
 Add a new entry.
entryadd (const entry &e, bool mergeEntry=false)
 Add an entry.
entryadd (const keyType &k, const word &v, bool overwrite=false)
 Add a word entry.
entryadd (const keyType &k, const string &v, bool overwrite=false)
 Add a string entry.
entryadd (const keyType &k, const label v, bool overwrite=false)
 Add a label entry.
entryadd (const keyType &k, const scalar v, bool overwrite=false)
 Add a scalar entry.
entryadd (const keyType &k, const dictionary &d, bool mergeEntry=false)
 Add a dictionary entry.
template<class T>
entryadd (const keyType &k, const T &v, bool overwrite=false)
 Add a T entry.
entryset (entry *entryPtr)
 Assign a new entry, overwriting any existing entry.
entryset (const entry &e)
 Assign a new entry, overwriting any existing entry.
entryset (const keyType &k, const dictionary &v)
 Assign a dictionary entry, overwriting any existing entry.
entryset (const keyType &k, std::nullptr_t)
 Assign an empty primitive entry, overwriting any existing entry.
entryset (const keyType &k, const UList< token > &tokens)
 Assign a primitive entry from a list of tokens, overwriting any existing entry.
entryset (const keyType &k, List< token > &&tokens)
 Assign a primitive entry from a list of tokens, overwriting any existing entry.
template<class T>
entryset (const keyType &k, const T &v)
 Assign a T entry, overwriting any existing entry.
bool remove (const word &keyword)
 Remove an entry specified by keyword.
bool changeKeyword (const keyType &oldKeyword, const keyType &newKeyword, bool overwrite=false)
 Change the keyword for an entry,.
bool merge (const dictionary &dict)
 Merge entries from the given dictionary.
void clear ()
 Clear the dictionary.
void transfer (dictionary &dict)
 Transfer the contents of the argument and annul the argument.
void checkITstream (const ITstream &is, const word &keyword) const
 Check after reading if the input token stream has unconsumed tokens remaining or if there were no tokens in the first place.
bool read (Istream &is)
 Read dictionary from Istream (discards the header). Reads entries until EOF or when the first token is a '{' character, it will stop reading at the matching '}' character.
bool read (Istream &is, bool keepHeader)
 Read dictionary from Istream (optionally keeping the header) Reads entries until EOF or when the first token is a '{' character, it will stop reading at the matching '}' character.
void writeEntry (Ostream &os) const
 Write sub-dictionary with its dictName as its header.
void writeEntry (const keyType &keyword, Ostream &os) const
 Write sub-dictionary with the keyword as its header.
void writeEntries (Ostream &os, const bool extraNewLine=false) const
 Write dictionary entries.
void write (Ostream &os, const bool subDict=true) const
 Write dictionary, normally with sub-dictionary formatting.
const_searcher csearch (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Search dictionary for given keyword.
const_searcher search (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Search dictionary for given keyword.
searcher search (const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
 Search dictionary for given keyword.
const_searcher csearchScoped (const word &keyword, enum keyType::option matchOpt) const
 Search using scoping.
const_searcher searchScoped (const word &keyword, enum keyType::option matchOpt) const
 Search using dot or slash scoping.
searcher searchScoped (const word &keyword, enum keyType::option matchOpt)
 Search using dot or slash scoping.
const dictionarycfindScopedDict (const fileName &dictPath) const
 Locate a sub-dictionary using slash-scoping.
const dictionaryfindScopedDict (const fileName &dictPath) const
 Locate a sub-dictionary using slash-scoping.
dictionaryfindScopedDict (const fileName &dictPath)
 Locate a sub-dictionary using slash-scoping.
dictionarymakeScopedDict (const fileName &dictPath)
 Locate existing or create sub-dictionary using slash-scoping.
const_searcher csearchCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
 Search dictionary for given keyword and any compatibility names.
const entryfindCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt) const
 Find and return an entry pointer if present, or return a nullptr, using any compatibility names if needed.
bool foundCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
 Search dictionary for given keyword and any compatibility names.
const entrylookupEntryCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt) const
 Find and return an entry if present, otherwise FatalIOError, using any compatibility names if needed.
ITstreamlookupCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return an entry data stream, using any compatibility names if needed.
template<class T>
T getCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T using any compatibility names if needed. FatalIOError if not found, or if there are excess tokens.
template<class T>
T getOrDefaultCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
 Find and return a T, or return the given default value using any compatibility names if needed.
template<class T>
bool readCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, T &val, enum keyType::option matchOpt=keyType::REGEX, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) const
 Find entry and assign to T val using any compatibility names if needed. FatalIOError if there are excess tokens.
template<class T>
bool readIfPresentCompat (const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, T &val, enum keyType::option matchOpt=keyType::REGEX) const
 Find an entry if present, and assign to T val using any compatibility names if needed. FatalIOError if it is found and there are excess tokens.
void operator= (const dictionary &rhs)
 Copy assignment.
void operator+= (const dictionary &rhs)
 Include entries from the given dictionary.
void operator|= (const dictionary &rhs)
 Conditionally include entries from the given dictionary.
void operator<<= (const dictionary &rhs)
 Unconditionally include entries from the given dictionary.
bool getBool (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<bool>(const word&, keyType::option).
label getLabel (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<label>(const word&, keyType::option).
scalar getScalar (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<scalar>(const word&, keyType::option).
string getString (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<string>(const word&, keyType::option).
word getWord (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<word>(const word&, keyType::option).
fileName getFileName (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Same as get<fileName>(const word&, keyType::option).
bool isDict (const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
 Check for existence of a sub-dictionary. Generally prefer findDict() for more flexibility.
template<class T>
T lookupOrDefault (const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
 Same as getOrDefault().
template<class T>
T lookupOrAddDefault (const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX)
 Same as getOrAdd().
ITstreamoperator[] (const word &keyword) const
 Deprecated(2018-07) - use lookup() method.
bool found (const word &keyword, bool recursive, bool patternMatch=true) const
 Deprecated(2018-10).
entrylookupEntryPtr (const word &keyword, bool recursive, bool patternMatch)
 Deprecated(2018-10).
const entrylookupEntryPtr (const word &keyword, bool recursive, bool patternMatch) const
 Deprecated(2018-10).
const entrylookupScopedEntryPtr (const word &keyword, bool recursive, bool patternMatch) const
 Deprecated(2018-10).
const dictionarysubDictPtr (const word &keyword) const
 Deprecated(2018-10).
dictionarysubDictPtr (const word &keyword)
 Deprecated(2018-10) Find and return a sub-dictionary pointer if present.
const entrylookupEntry (const word &keyword, bool recursive, bool patternMatch) const
 Deprecated(2018-10).
ITstreamlookup (const word &keyword, bool recursive, bool patternMatch=true) const
 Deprecated(2018-10).
template<class T>
T lookupOrDefault (const word &keyword, const T &deflt, bool recursive, bool patternMatch=true) const
 Deprecated(2018-10).
template<class T>
T lookupOrAddDefault (const word &keyword, const T &deflt, bool recursive, bool patternMatch=true)
 Deprecated(2018-10).
template<class T>
bool readIfPresent (const word &keyword, T &val, bool recursive, bool patternMatch=true) const
 Deprecated(2018-10).
template<class T>
T lookupType (const word &keyword, bool recursive=false, bool patternMatch=true) const
 Deprecated(2018-10) find and return a T.
template<class Compare>
Foam::wordList sortedToc (const Compare &comp) const
template<class T>
Foam::entryadd (const keyType &k, const T &v, bool overwrite)
template<class T>
Foam::entryset (const keyType &k, const T &v)
Public Member Functions inherited from ILList< DLListBase, T >
 ILList ()=default
 Default construct.
 ILList (T *item)
 Construct and add initial item pointer.
 ILList (Istream &is)
 Construct from Istream.
 ILList (const ILList< DLListBase, T > &lst)
 Copy construct using the 'clone()' method for each element.
 ILList (ILList< DLListBase, T > &&lst)
 Move construct.
 ILList (const ILList< DLListBase, T > &lst, const CloneArg &cloneArg)
 Copy constructor with additional argument for clone 'clone()'.
 ILList (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class.
 ~ILList ()
 Destructor. Calls clear().
void clear ()
 Clear the contents of the list.
void pop_front (label n=1)
 Remove first element(s) from the list (deletes pointers).
bool erase (T *item)
 Remove the specified element from the list and delete it.
void transfer (ILList< DLListBase, T > &lst)
 Transfer the contents of the argument into this List and annul the argument list.
void operator= (const ILList< DLListBase, T > &lst)
 Copy assignment using the 'clone()' method for each element.
void operator= (ILList< DLListBase, T > &&lst)
 Move assignment.
Public Member Functions inherited from UILList< DLListBase, T >
 UILList ()=default
 Default construct.
 UILList (T *item)
 Construct and add initial item pointer.
 UILList (const UILList< DLListBase, T > &list)
 Construct as copy.
Tfront ()
 The first entry in the list.
const Tfront () const
 The first entry in the list (const access).
Tback ()
 The last entry in the list.
const Tback () const
 The last entry in the list (const access).
TremoveHead ()
 Remove and return head.
Tremove (T *item)
 Remove and return element.
Tremove (iterator &iter)
 Remove and return item specified by iterator.
void operator= (const UILList< DLListBase, T > &lst)
 Copy assignment.
bool operator== (const UILList< DLListBase, T > &lst) const
 Equality. True both lists are element-wise equal.
bool operator!= (const UILList< DLListBase, T > &lst) const
 The opposite of the equality operation. Takes linear time.
OstreamwriteList (Ostream &os, const label shortLen=0) const
 Write UILList with line-breaks when length exceeds shortLen.
iterator begin ()
 Iterator to first item in list with non-const access.
const_iterator cbegin () const
 Iterator to first item in list with const access.
reverse_iterator rbegin ()
 Iterator to last item in list with non-const access.
const_reverse_iterator crbegin () const
 Iterator to last item in list with const access.
const_iterator begin () const
 Iterator to first item in list with const access.
const_reverse_iterator rbegin () const
 Iterator to last item in list with const access.
const iterator & end ()
 End of list for forward iterators.
const const_iterator & cend () const
 End of list for forward iterators.
const reverse_iterator & rend ()
 End of list for reverse iterators.
const const_reverse_iterator & crend () const
 End of list for reverse iterators.
const const_iterator & end () const
 End of list for forward iterators.
const const_reverse_iterator & rend () const
 End of list for reverse iterators.
Tfirst ()
 The first entry in the list.
const Tfirst () const
 The first entry in the list (const access).
Tlast ()
 The last entry in the list.
const Tlast () const
 The last entry in the list (const access).
Public Member Functions inherited from DLListBase
 DLListBase ()=default
 Default construct.
 DLListBase (const DLListBase &)=delete
 No copy construct.
void operator= (const DLListBase &)=delete
 No copy assignment.
 ~DLListBase ()=default
 Destructor.
bool empty () const noexcept
 True if the list is empty.
label size () const noexcept
 The number of elements in list.
linkfront ()
 Return first entry.
const linkfront () const
 Return const access to first entry.
linkback ()
 Return last entry.
const linkback () const
 Return const access to last entry.
void push_front (link *item)
 Add at front of list.
void push_back (link *item)
 Add at back of list.
bool swapUp (link *item)
 Swap this element with the one above unless it is at the top.
bool swapDown (link *item)
 Swap this element with the one below unless it is at the bottom.
linkremoveHead ()
 Remove and return first entry.
linkremove (link *item)
 Remove and return element.
linkremove (iterator &iter)
 Remove and return element specified by iterator.
linkreplace (link *oldLink, link *newLink)
 Replace oldLink with newLink and return element.
linkreplace (iterator &oldIter, link *newitem)
 Replace oldIter with newItem and return element.
void clear ()
 Clear the list.
void swap (DLListBase &lst)
 Swap the contents of the list.
void transfer (DLListBase &lst)
 Transfer the contents of the argument into this list and annul the argument list.
iterator begin ()
 Iterator to first item in list with non-const access.
const_iterator cbegin () const
 Iterator to first item in list with const access.
const_iterator crbegin () const
 Iterator to last item in list with const access.
const iteratorend ()
 End of list for iterators.
const const_iteratorcend () const
 End of list for iterators.
const const_iteratorcrend () const
 End of list for reverse iterators.
linkfirst ()
 Return first entry.
const linkfirst () const
 Return const access to first entry.
linklast ()
 Return last entry.
const linklast () const
 Return const access to last entry.
void prepend (link *item)
 Add at front of list.
void append (link *item)
 Add at back of list.

Static Public Member Functions

static autoPtr< objective > New (const fvMesh &mesh, const dictionary &dict, const word &objectiveType, const word &adjointSolverName, const word &primalSolverName)
 Return a reference to the selected turbulence model.
Static Public Member Functions inherited from localIOdictionary
static dictionary readContents (const IOobject &io)
 Read and return contents, testing for "dictionary" type. The IOobject will not be registered.
static dictionary readContents (const IOobject &io, const word &wantedType)
 Read and return contents, testing for expected type. The IOobject will not be registered.
Static Public Member Functions inherited from regIOobject
template<class Type>
static Type & store (Type *p)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (std::unique_ptr< Type > &&ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (autoPtr< Type > &ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (autoPtr< Type > &&ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (refPtr< Type > &ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (refPtr< Type > &&ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (tmp< Type > &ptr)
 Transfer pointer ownership to its registry.
template<class Type>
static Type & store (tmp< Type > &&ptr)
 Transfer pointer ownership to its registry.
Static Public Member Functions inherited from IOobject
static bool bannerEnabled () noexcept
 Status of output file banner.
static bool bannerEnabled (bool on) noexcept
 Enable/disable output file banner.
static bool fileModificationChecking_masterOnly () noexcept
 Test fileModificationChecking for master-only.
static bool fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name)
 Split path into instance, local, name components.
template<class StringType>
static word groupName (StringType base, const word &group)
 Create dot-delimited name.group string.
static word group (const word &name)
 Return group (extension part of name).
static word member (const word &name)
 Return member (name without the extension).
static word scopedName (const std::string &scope, const word &name)
 Create scope:name or scope_name string.
static word scopedName (const std::string &scope, const word &name1, const word &name2)
 Create scope:name1:name2 or scope_name1_name2 string.
static IOobject selectIO (const IOobject &io, const fileName &altFile, const word &ioName="")
 Return the IOobject, but also consider an alternative file name.
static OstreamwriteBanner (Ostream &os, const bool noSyntaxHint=false)
 Write the standard OpenFOAM file/dictionary banner.
static OstreamwriteDivider (Ostream &os)
 Write the standard file section divider.
static OstreamwriteEndDivider (Ostream &os)
 Write the standard end file divider.
Static Public Member Functions inherited from IOobjectOption
static bool isAnyRead (readOption opt) noexcept
 True if any reading may be required (ie, != NO_READ).
static bool isReadRequired (readOption opt) noexcept
 True if (MUST_READ | READ_MODIFIED) bits are set.
static bool isReadOptional (readOption opt) noexcept
 True if (LAZY_READ) bits are set [same as READ_IF_PRESENT].
static readOption lazierRead (readOption opt) noexcept
 Downgrade readOption optional (LAZY_READ), leaves NO_READ intact.
Static Public Member Functions inherited from dictionary
static int reportOptional () noexcept
 Return the state of reporting optional (default) entries.
static int reportOptional (const int level) noexcept
 Change the state of reporting optional (default) entries.
static autoPtr< dictionaryNew (Istream &is)
 Construct top-level dictionary on freestore from Istream.

Protected Member Functions

void setObjectiveFilePtr () const
 Set the output file ptr.
void setInstantValueFilePtr () const
 Set the output file ptr for the instantaneous value.
void setMeanValueFilePtr () const
 Set the output file ptr for the mean value.
Protected Member Functions inherited from regIOobject
bool readHeaderOk (const IOstreamOption::streamFormat fmt, const word &typeName)
 Helper: check readOpt flags and read if necessary.
Protected Member Functions inherited from IOobject
void setBad (const string &s)
 Set the object state to bad.
Protected Member Functions inherited from DLListBase
template<class IteratorType>
IteratorType iterator_first () const
 Return iterator to first item or end-iterator if list is empty.
template<class IteratorType>
IteratorType iterator_last () const
 Return iterator to last item or end-iterator if list is empty.

Protected Attributes

const fvMeshmesh_
dictionary dict_
const word adjointSolverName_
const word primalSolverName_
const word objectiveName_
bool computeMeanFields_
bool nullified_
bool normalize_
bool shouldWrite_
scalar J_
 Objective function value and weight.
scalar JMean_
 Average objective value.
scalar weight_
 Objective weight.
bool computed_
 Whether the objective is computed or not.
autoPtr< scalar > normFactor_
 Normalization factor.
autoPtr< scalar > target_
 Target value, in case the objective is used as a constraint.
autoPtr< scalar > targetLeft_
 Target on the left hand-side of a double inequality, for double sided constraints.
autoPtr< scalar > integrationStartTimePtr_
 Objective integration start and end times (for unsteady flows).
autoPtr< scalar > integrationEndTimePtr_
wordList fieldNames_
 List of adjoint fields for which this objective will contribute sources to their equations.
autoPtr< boundaryVectorFieldbdJdbPtr_
 Contribution to field sensitivity derivatives.
autoPtr< boundaryVectorFieldbdSdbMultPtr_
 Term multiplying delta(n dS)/delta b.
autoPtr< boundaryVectorFieldbdndbMultPtr_
 Term multiplying delta(n)/delta b.
autoPtr< boundaryVectorFieldbdxdbMultPtr_
 Term multiplying delta(x)/delta b at the boundary.
autoPtr< boundaryVectorFieldbdxdbDirectMultPtr_
 Term multiplying delta(x)/delta b at the boundary for objectives that directly depend on x, e.g. moment Needed in both FI and SI computations.
autoPtr< vectorField3bEdgeContribution_
 Contribution located in specific parts of a patch. Mainly intended for patch boundary edges contributions, e.g. NURBS surfaces G1 continuity.
autoPtr< volScalarFielddivDxDbMultPtr_
 Multiplier of d(Volume)/db.
autoPtr< volTensorFieldgradDxDbMultPtr_
 Emerging from volume objectives that include spatial derivatives.
fileName objFunctionFolder_
 Output file variables.
autoPtr< OFstreamobjFunctionFilePtr_
 File to keep the objective values after the end of the primal solver.
autoPtr< OFstreaminstantValueFilePtr_
 File to keep the objective values at each iteration of the primal solver.
autoPtr< OFstreammeanValueFilePtr_
 File to keep the average objective values after the end of the primal solver.
unsigned int width_
 Default width of entries when writing in the objective files.

Additional Inherited Members

Public Types inherited from IOobject
enum  objectState : char { GOOD , BAD }
 Enumeration defining the valid states of an IOobject. More...
enum  fileCheckTypes : char { timeStamp = 1 , timeStampMaster = 3 , inotify = 4 , inotifyMaster = 6 }
 Enumeration defining the file checking options (time-stamp | inotify) | (all | masterOnly). More...
Public Types inherited from IOobjectOption
enum  readOption : unsigned char {
  NO_READ = 0 , MUST_READ = 0x1 , READ_MODIFIED = 0x3 , MUST_READ_IF_MODIFIED = 0x3 ,
  LAZY_READ = 0x4 , READ_IF_PRESENT = 0x4
}
 Enumeration defining read preferences. More...
enum  writeOption : unsigned char { NO_WRITE = 0 , AUTO_WRITE = 0x10 }
 Enumeration defining write preferences. More...
enum  registerOption : unsigned char { NO_REGISTER = 0 , REGISTER = 1 , LEGACY_REGISTER = 2 }
 Enumeration for use with registerObject(). Values map to bool (false/true). More...
enum class  Layout : unsigned char { regular , global }
 The layout of the case structure. More...
Public Types inherited from dictionary
typedef Searcher< true > const_searcher
 Searcher with const access.
typedef Searcher< false > searcher
 Searcher with non-const access.
Public Types inherited from UILList< DLListBase, T >
typedef T value_type
 Type of values stored.
typedef Tpointer
 Pointer for value_type.
typedef const Tconst_pointer
 Const pointer for value_type.
typedef Treference
 Reference for value_type.
typedef const Tconst_reference
 Const reference for value_type.
typedef label size_type
 The type that can represent the container size.
typedef label difference_type
 The difference between iterator objects.
using base_iterator
using const_base_iterator
Public Attributes inherited from dictionary
friend const_searcher
 Declare friendship with the searcher classes.
friend searcher
Static Public Attributes inherited from IOobject
static const Enum< fileCheckTypesfileCheckTypesNames
 Names for the fileCheckTypes.
static char scopeSeparator
 Character for scoping object names (':' or '_').
static fileCheckTypes fileModificationChecking
 Type of file modification checking.
static float fileModificationSkew
 Time skew (seconds) for file modification checks.
static int maxFileModificationPolls
 Max number of times to poll for file modification changes.
Static Public Attributes inherited from dictionary
static int writeOptionalEntries
 Report optional keywords and values if not present in dictionary.
static const dictionary null
 An empty dictionary, which is also the parent for all dictionaries.
static refPtr< OSstreamreportingOutput
 Output location when reporting default values.
Static Protected Member Functions inherited from IOobject
static void writeHeaderContent (Ostream &os, const IOobject &io, const word &objectType, const dictionary *metaDataDict=nullptr)
 Helper: write content for FoamFile IOobject header with optional meta information.
static void writeHeaderContent (dictionary &dict, const IOobject &io, const word &objectType, IOstreamOption streamOpt, const dictionary *metaDataDict=nullptr)
 Helper: write dictionary content for FoamFile header with optional meta information.
Static Protected Member Functions inherited from DLListBase
template<class IteratorType>
static const IteratorType & iterator_end ()
 Factory method to return an iterator end.
template<class IteratorType>
static const IteratorType & iterator_rend ()
 Factory method to return an iterator reverse end.
Static Protected Attributes inherited from regIOobject
static bool masterOnlyReading = false
 To flag master-only reading of objects.

Detailed Description

Abstract base class for objective functions. No point in making this runTime selectable since its children will have different constructors.

Source files

Definition at line 55 of file objective.H.

Constructor & Destructor Documentation

◆ objective()

objective ( const fvMesh & mesh,
const dictionary & dict,
const word & adjointSolverName,
const word & primalSolverName )

◆ ~objective()

virtual ~objective ( )
virtualdefault

Destructor.

References dict().

Here is the call graph for this function:

Member Function Documentation

◆ setObjectiveFilePtr()

void setObjectiveFilePtr ( ) const
protected

Set the output file ptr.

Definition at line 56 of file objective.C.

References adjointSolverName_, objectiveName_, objFunctionFilePtr_, and objFunctionFolder_.

Referenced by write().

Here is the caller graph for this function:

◆ setInstantValueFilePtr()

void setInstantValueFilePtr ( ) const
protected

Set the output file ptr for the instantaneous value.

Definition at line 65 of file objective.C.

References adjointSolverName_, instantValueFilePtr_, objectiveName_, and objFunctionFolder_.

Referenced by writeInstantaneousValue().

Here is the caller graph for this function:

◆ setMeanValueFilePtr()

void setMeanValueFilePtr ( ) const
protected

Set the output file ptr for the mean value.

Definition at line 77 of file objective.C.

References adjointSolverName_, meanValueFilePtr_, objectiveName_, and objFunctionFolder_.

Referenced by writeMeanValue().

Here is the caller graph for this function:

◆ TypeName()

TypeName ( "objective" )

Runtime type information.

◆ declareRunTimeNewSelectionTable()

declareRunTimeNewSelectionTable ( autoPtr ,
objective ,
objective ,
(const fvMesh &mesh, const dictionary &dict, const word &adjointSolverName, const word &primalSolverName) ,
(mesh, dict, adjointSolverName, primalSolverName)  )

References dict(), and mesh.

Here is the call graph for this function:

◆ New()

autoPtr< objective > New ( const fvMesh & mesh,
const dictionary & dict,
const word & objectiveType,
const word & adjointSolverName,
const word & primalSolverName )
static

Return a reference to the selected turbulence model.

Definition at line 220 of file objective.C.

References dict(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, and mesh.

Referenced by objectiveManager::objectiveManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readDict()

bool readDict ( const dictionary & dict)
virtual

Definition at line 257 of file objective.C.

References dict(), and dict_.

Here is the call graph for this function:

◆ J()

virtual scalar J ( )
pure virtual

◆ JCycle()

scalar JCycle ( bool negate = false) const
virtual

Return the objective function of the optimisation cycle.

This corresponds to the mean value, if it exists, or the instantaneous value otherwise

Definition at line 264 of file objective.C.

References computeMeanFields_, hasIntegrationEndTime(), hasIntegrationStartTime(), J(), J_, JMean_, Foam::negate(), normalize_, normFactor_, target_, targetLeft_, and weight_.

Referenced by updateNormalizationFactor(), and write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ accumulateJMean() [1/2]

void accumulateJMean ( solverControl & solverControl)
virtual

Accumulate contribution for the mean objective value.

For steady-state runs

Definition at line 314 of file objective.C.

References solverControl::averageIter(), solverControl::doAverageIter(), J_, JMean_, and Foam::Zero.

Here is the call graph for this function:

◆ accumulateJMean() [2/2]

void accumulateJMean ( )
virtual

Accumulate contribution for the mean objective value.

For unsteady runs

Definition at line 331 of file objective.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, hasIntegrationEndTime(), hasIntegrationStartTime(), integrationStartTimePtr_, isWithinIntegrationTime(), J_, JMean_, mesh_, and IOobject::time().

Here is the call graph for this function:

◆ weight()

scalar weight ( ) const
virtual

Return the objective function weight.

Definition at line 353 of file objective.C.

References weight_.

Referenced by objectiveIncompressible::addSource(), objectiveNutSqr::addSource(), and objectivePowerDissipation::addSource().

Here is the caller graph for this function:

◆ normalize()

bool normalize ( ) const
virtual

Is the objective normalized.

Definition at line 359 of file objective.C.

References normalize_.

◆ doNormalization()

void doNormalization ( )
virtual

◆ isWithinIntegrationTime()

bool isWithinIntegrationTime ( ) const
virtual

Check whether this is an objective integration time.

Definition at line 415 of file objective.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, hasIntegrationEndTime(), hasIntegrationStartTime(), integrationEndTimePtr_, integrationStartTimePtr_, mesh_, objectiveName_, and IOobject::time().

Referenced by accumulateJMean().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incrementIntegrationTimes()

void incrementIntegrationTimes ( const scalar timeSpan)
virtual

Increment integration times.

Definition at line 437 of file objective.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, hasIntegrationEndTime(), hasIntegrationStartTime(), integrationEndTimePtr_, and integrationStartTimePtr_.

Here is the call graph for this function:

◆ dJdb()

const Foam::volScalarField & dJdb ( ) const
inline

Contribution to field sensitivities.

Definition at line 44 of file objectiveI.H.

Referenced by objectivePowerDissipation::update_dJdb().

Here is the caller graph for this function:

◆ dJdbField()

const Foam::scalarField & dJdbField ( ) const
inline

Contribution to sensitivities with a random number of designVars.

Definition at line 50 of file objectiveI.H.

◆ boundarydJdb() [1/2]

const Foam::fvPatchVectorField & boundarydJdb ( const label patchI) const
inline

Contribution to surface sensitivities for a specific patch.

Definition at line 57 of file objectiveI.H.

References bdJdbPtr_.

◆ dSdbMultiplier() [1/2]

const Foam::fvPatchVectorField & dSdbMultiplier ( const label patchI) const
inline

Multiplier of delta(n dS)/delta b.

Definition at line 64 of file objectiveI.H.

References bdSdbMultPtr_.

◆ dndbMultiplier() [1/2]

const Foam::fvPatchVectorField & dndbMultiplier ( const label patchI) const
inline

Multiplier of delta(n dS)/delta b.

Definition at line 71 of file objectiveI.H.

References bdndbMultPtr_.

◆ dxdbMultiplier() [1/2]

const Foam::fvPatchVectorField & dxdbMultiplier ( const label patchI) const
inline

Multiplier of delta(x)/delta b.

Definition at line 78 of file objectiveI.H.

References bdxdbMultPtr_.

◆ dxdbDirectMultiplier() [1/2]

const Foam::fvPatchVectorField & dxdbDirectMultiplier ( const label patchI) const
inline

Multiplier of delta(x)/delta b.

Definition at line 85 of file objectiveI.H.

References bdxdbDirectMultPtr_.

◆ boundaryEdgeMultiplier() [1/2]

const Foam::vectorField & boundaryEdgeMultiplier ( const label patchI,
const label edgeI ) const
inline

Multiplier located at patch boundary edges.

Definition at line 91 of file objectiveI.H.

References bdxdbDirectMultPtr_, bEdgeContribution_, Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ boundarydJdb() [2/2]

const Foam::boundaryVectorField & boundarydJdb ( ) const
inline

Contribution to surface sensitivities for all patches.

Definition at line 107 of file objectiveI.H.

References bdJdbPtr_.

◆ dSdbMultiplier() [2/2]

const Foam::boundaryVectorField & dSdbMultiplier ( ) const
inline

Multiplier of delta(n dS)/delta b for all patches.

Definition at line 113 of file objectiveI.H.

References bdSdbMultPtr_.

◆ dndbMultiplier() [2/2]

const Foam::boundaryVectorField & dndbMultiplier ( ) const
inline

Multiplier of delta(n dS)/delta b for all patches.

Definition at line 119 of file objectiveI.H.

References bdndbMultPtr_.

◆ dxdbMultiplier() [2/2]

const Foam::boundaryVectorField & dxdbMultiplier ( ) const
inline

Multiplier of delta(x)/delta b for all patches.

Definition at line 125 of file objectiveI.H.

References bdxdbMultPtr_.

◆ dxdbDirectMultiplier() [2/2]

const Foam::boundaryVectorField & dxdbDirectMultiplier ( ) const
inline

Multiplier of delta(x)/delta b for all patches.

Definition at line 132 of file objectiveI.H.

References bdxdbDirectMultPtr_.

◆ boundaryEdgeMultiplier() [2/2]

const Foam::vectorField3 & boundaryEdgeMultiplier ( ) const
inline

Multiplier located at patch boundary edges.

Definition at line 138 of file objectiveI.H.

References bdxdbDirectMultPtr_, bEdgeContribution_, Foam::endl(), Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ divDxDbMultiplier()

const Foam::volScalarField & divDxDbMultiplier ( ) const
inline

Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.

Definition at line 151 of file objectiveI.H.

References divDxDbMultPtr_.

◆ gradDxDbMultiplier()

const Foam::volTensorField & gradDxDbMultiplier ( ) const
inline

Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.

Definition at line 157 of file objectiveI.H.

References gradDxDbMultPtr_.

◆ update()

void update ( )
pure virtual

Update objective function derivatives.

Implemented in objectiveGeometric, and objectiveIncompressible.

Definition at line 453 of file objective.C.

References J(), update_boundarydJdb(), update_boundaryEdgeContribution(), update_divDxDbMultiplier(), update_dJdb(), update_dJdbField(), update_dndbMultiplier(), update_dSdbMultiplier(), update_dxdbDirectMultiplier(), update_dxdbMultiplier(), and update_gradDxDbMultiplier().

Referenced by objectiveGeometric::update(), and objectiveIncompressible::update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nullify()

void nullify ( )
virtual

◆ updateNormalizationFactor()

void updateNormalizationFactor ( )
virtual

Update normalization factors, for objectives in which the factor is not known a priori.

Definition at line 300 of file objective.C.

References DebugInfo, Foam::endl(), J(), JCycle(), mesh_, baseIOdictionary::name(), normalize_, normFactor_, and weight_.

Here is the call graph for this function:

◆ update_dJdb()

virtual void update_dJdb ( )
inlinevirtual

Reimplemented in objectiveIncompressible, objectivePowerDissipation, objectiveTopOSolidVolume, and objectiveTopOVolume.

Definition at line 488 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_dJdbField()

virtual void update_dJdbField ( )
inlinevirtual

Reimplemented in objectiveIncompressible.

Definition at line 491 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_boundarydJdb()

virtual void update_boundarydJdb ( )
inlinevirtual

Update objective function derivative term.

Definition at line 497 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_dSdbMultiplier()

virtual void update_dSdbMultiplier ( )
inlinevirtual

Update d (normal dS) / db multiplier. Surface-based sensitivity term.

Reimplemented in objectiveForce, objectiveMoment, and objectivePartialVolume.

Definition at line 503 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_dndbMultiplier()

virtual void update_dndbMultiplier ( )
inlinevirtual

Update d (normal) / db multiplier. Surface-based sensitivity term.

Definition at line 509 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_dxdbMultiplier()

virtual void update_dxdbMultiplier ( )
inlinevirtual

Update d (x) / db multiplier. Surface-based sensitivity term.

Reimplemented in objectiveForce, and objectiveMoment.

Definition at line 515 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_dxdbDirectMultiplier()

virtual void update_dxdbDirectMultiplier ( )
inlinevirtual

Update d (x) / db multiplier. Surface and volume-based sensitivity term.

Reimplemented in objectiveMoment, and objectivePartialVolume.

Definition at line 522 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_boundaryEdgeContribution()

virtual void update_boundaryEdgeContribution ( )
inlinevirtual

Update boundary edge contributions.

Definition at line 528 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_divDxDbMultiplier()

virtual void update_divDxDbMultiplier ( )
inlinevirtual

Update div( dx/db multiplier). Volume-based sensitivity term.

Reimplemented in objectiveIncompressible, objectiveNutSqr, objectivePowerDissipation, and objectiveUniformityCellZone.

Definition at line 534 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ update_gradDxDbMultiplier()

virtual void update_gradDxDbMultiplier ( )
inlinevirtual

Update grad( dx/db multiplier). Volume-based sensitivity term.

Reimplemented in objectiveIncompressible, and objectivePowerDissipation.

Definition at line 540 of file objective.H.

Referenced by update().

Here is the caller graph for this function:

◆ addSource() [1/2]

virtual void addSource ( fvVectorMatrix & matrix)
inlinevirtual

Manipulate fvVectorMatrix through the objective.

Reimplemented in objectiveIncompressible.

Definition at line 547 of file objective.H.

◆ addSource() [2/2]

virtual void addSource ( fvScalarMatrix & matrix)
inlinevirtual

Manipulate fvVectorMatrix through the objective.

Reimplemented in objectiveIncompressible, objectiveNutSqr, and objectivePowerDissipation.

Definition at line 553 of file objective.H.

◆ write()

bool write ( const bool valid = true) const
virtual

Write objective function history.

Reimplemented from regIOobject.

Reimplemented in objectiveIncompressible.

Definition at line 527 of file objective.C.

References addColumnValues(), addHeaderColumns(), addHeaderInfo(), Foam::endl(), J_, JCycle(), UPstream::master(), mesh_, normalize_, normFactor_, objFunctionFilePtr_, IOstream::setf(), setObjectiveFilePtr(), Foam::setw(), target_, targetLeft_, and width_.

Referenced by objectiveIncompressible::write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeInstantaneousValue()

void writeInstantaneousValue ( ) const
virtual

Write objective function history at each primal solver iteration.

Definition at line 583 of file objective.C.

References IOstream::defaultPrecision(), Foam::endl(), instantValueFilePtr_, J_, UPstream::master(), mesh_, setInstantValueFilePtr(), Foam::setw(), and Foam::tab.

Here is the call graph for this function:

◆ writeInstantaneousSeparator()

void writeInstantaneousSeparator ( ) const
virtual

Append a blank line after the end of optimisation cycle to the file holding the instantaneous objective values to facilitate plotting.

Definition at line 602 of file objective.C.

References Foam::endl(), instantValueFilePtr_, and UPstream::master().

Here is the call graph for this function:

◆ writeMeanValue()

void writeMeanValue ( ) const
virtual

Write mean objective function history.

Definition at line 614 of file objective.C.

References computeMeanFields_, Foam::endl(), hasIntegrationEndTime(), hasIntegrationStartTime(), JMean_, UPstream::master(), meanValueFilePtr_, mesh_, setMeanValueFilePtr(), and Foam::tab.

Here is the call graph for this function:

◆ writeData()

bool writeData ( Ostream & os) const
virtual

Write averaged objective for continuation.

Reimplemented from baseIOdictionary.

Reimplemented in objectivePartialVolume.

Definition at line 641 of file objective.C.

References JMean_, normFactor_, os(), and weight_.

Referenced by objectivePartialVolume::writeData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addHeaderInfo()

void addHeaderInfo ( ) const
virtual

Write any information that needs to go the header of the file.

(e.g. targets, directions, etc)

Reimplemented in objectiveFlowRatePartition, and objectivePartialVolume.

Definition at line 653 of file objective.C.

Referenced by write().

Here is the caller graph for this function:

◆ addHeaderColumns()

void addHeaderColumns ( ) const
virtual

Write headers for additional columns.

Reimplemented in objectiveFlowRate, objectiveFlowRatePartition, objectivePtLosses, objectiveTopOSolidVolume, objectiveTopOVolume, objectiveUniformityCellZone, and objectiveUniformityPatch.

Definition at line 659 of file objective.C.

Referenced by write().

Here is the caller graph for this function:

◆ addColumnValues()

void addColumnValues ( ) const
virtual

Write information to additional columns.

Reimplemented in objectiveFlowRate, objectiveFlowRatePartition, objectivePtLosses, objectiveTopOSolidVolume, objectiveTopOVolume, objectiveUniformityCellZone, and objectiveUniformityPatch.

Definition at line 665 of file objective.C.

Referenced by write().

Here is the caller graph for this function:

◆ objectiveName()

const Foam::word & objectiveName ( ) const
inline

Return the objective name.

Definition at line 26 of file objectiveI.H.

References objectiveName_.

◆ shouldWrite()

bool shouldWrite ( ) const
inline

Should the objective be written to file upon calling write()?

Definition at line 32 of file objectiveI.H.

References shouldWrite_.

Referenced by setWrite().

Here is the caller graph for this function:

◆ setWrite()

void setWrite ( const bool shouldWrite)
inline

Should the objective be written to file upon calling write()?

Definition at line 38 of file objectiveI.H.

References shouldWrite(), and shouldWrite_.

Here is the call graph for this function:

◆ hasdJdb()

bool hasdJdb ( ) const
inlinenoexcept

Definition at line 163 of file objectiveI.H.

References Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasdJdbField()

bool hasdJdbField ( ) const
inlinenoexcept

Definition at line 169 of file objectiveI.H.

References Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasBoundarydJdb()

bool hasBoundarydJdb ( ) const
inlinenoexcept

Definition at line 175 of file objectiveI.H.

References bdJdbPtr_, and Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasdSdbMult()

bool hasdSdbMult ( ) const
inlinenoexcept

Definition at line 181 of file objectiveI.H.

References bdSdbMultPtr_, and Foam::noexcept.

Referenced by ShapeSensitivitiesBase::allocateMultipliers(), doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasdndbMult()

bool hasdndbMult ( ) const
inlinenoexcept

Definition at line 187 of file objectiveI.H.

References bdndbMultPtr_, and Foam::noexcept.

Referenced by ShapeSensitivitiesBase::allocateMultipliers(), doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasdxdbMult()

bool hasdxdbMult ( ) const
inlinenoexcept

Definition at line 193 of file objectiveI.H.

References bdxdbMultPtr_, and Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasdxdbDirectMult()

bool hasdxdbDirectMult ( ) const
inlinenoexcept

Definition at line 199 of file objectiveI.H.

References bdxdbDirectMultPtr_, and Foam::noexcept.

Referenced by ShapeSensitivitiesBase::allocateMultipliers(), doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasBoundaryEdgeContribution()

bool hasBoundaryEdgeContribution ( ) const
inlinenoexcept

Definition at line 205 of file objectiveI.H.

References bEdgeContribution_, and Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasDivDxDbMult()

bool hasDivDxDbMult ( ) const
inlinenoexcept

Definition at line 211 of file objectiveI.H.

References divDxDbMultPtr_, and Foam::noexcept.

Referenced by ShapeSensitivitiesBase::allocateMultipliers(), doNormalization(), nullify(), and sensitivityShapeESI::sensitivityShapeESI().

Here is the caller graph for this function:

◆ hasGradDxDbMult()

bool hasGradDxDbMult ( ) const
inlinenoexcept

Definition at line 217 of file objectiveI.H.

References gradDxDbMultPtr_, and Foam::noexcept.

Referenced by doNormalization(), and nullify().

Here is the caller graph for this function:

◆ hasIntegrationStartTime()

bool hasIntegrationStartTime ( ) const
inlinenoexcept

Definition at line 223 of file objectiveI.H.

References integrationStartTimePtr_, and Foam::noexcept.

Referenced by accumulateJMean(), incrementIntegrationTimes(), isWithinIntegrationTime(), JCycle(), and writeMeanValue().

Here is the caller graph for this function:

◆ hasIntegrationEndTime()

bool hasIntegrationEndTime ( ) const
inlinenoexcept

Definition at line 229 of file objectiveI.H.

References integrationEndTimePtr_, and Foam::noexcept.

Referenced by accumulateJMean(), incrementIntegrationTimes(), isWithinIntegrationTime(), JCycle(), and writeMeanValue().

Here is the caller graph for this function:

◆ setComputed()

void setComputed ( const bool isComputed)
inlinenoexcept

Set the computed status of the objective.

Definition at line 235 of file objectiveI.H.

References computed_.

◆ dict()

const dictionary & dict ( ) const

Member Data Documentation

◆ mesh_

const fvMesh& mesh_
protected

Definition at line 63 of file objective.H.

Referenced by accumulateJMean(), objectiveTopOSolidVolume::addColumnValues(), objectiveTopOVolume::addColumnValues(), objectiveFlowRate::addHeaderColumns(), objectiveFlowRatePartition::addHeaderColumns(), objectivePtLosses::addHeaderColumns(), objectiveUniformityCellZone::addHeaderColumns(), objectiveUniformityPatch::addHeaderColumns(), objectiveFlowRatePartition::addHeaderInfo(), objectiveIncompressible::allocatedJdTurbulence(), objectiveIncompressible::checkCellZonesSize(), isWithinIntegrationTime(), objectiveForce::J(), objectiveMoment::J(), objectiveNutSqr::J(), objectivePartialVolume::J(), objectivePowerDissipation::J(), objectivePtLosses::J(), objectiveTopOSolidVolume::J(), objectiveTopOVolume::J(), objectiveUniformityCellZone::J(), objectiveUniformityPatch::J(), objective(), objectiveFlowRate::objectiveFlowRate(), objectiveFlowRatePartition::objectiveFlowRatePartition(), objectiveForce::objectiveForce(), objectiveMoment::objectiveMoment(), objectiveNutSqr::objectiveNutSqr(), objectivePartialVolume::objectivePartialVolume(), objectivePowerDissipation::objectivePowerDissipation(), objectivePtLosses::objectivePtLosses(), objectiveTopOSolidVolume::objectiveTopOSolidVolume(), objectiveTopOVolume::objectiveTopOVolume(), objectiveUniformityCellZone::objectiveUniformityCellZone(), objectiveUniformityPatch::objectiveUniformityPatch(), objectiveForce::update_boundarydJdGradU(), objectiveForce::update_boundarydJdnut(), objectiveMoment::update_boundarydJdnut(), objectiveMoment::update_boundarydJdp(), objectivePtLosses::update_boundarydJdp(), objectiveFlowRate::update_boundarydJdv(), objectiveFlowRatePartition::update_boundarydJdv(), objectivePtLosses::update_boundarydJdv(), objectiveUniformityPatch::update_boundarydJdv(), objectivePtLosses::update_boundarydJdvn(), objectiveUniformityPatch::update_boundarydJdvn(), objectivePtLosses::update_boundarydJdvt(), objectiveUniformityPatch::update_boundarydJdvt(), objectiveNutSqr::update_divDxDbMultiplier(), objectivePowerDissipation::update_divDxDbMultiplier(), objectiveUniformityCellZone::update_divDxDbMultiplier(), objectivePowerDissipation::update_dJdb(), objectiveTopOSolidVolume::update_dJdb(), objectiveTopOVolume::update_dJdb(), objectiveIncompressible::update_dJdTMvar(), objectiveNutSqr::update_dJdv(), objectivePowerDissipation::update_dJdv(), objectiveUniformityCellZone::update_dJdv(), objectiveMoment::update_dSdbMultiplier(), objectivePartialVolume::update_dSdbMultiplier(), objectiveMoment::update_dxdbDirectMultiplier(), objectivePartialVolume::update_dxdbDirectMultiplier(), objectiveForce::update_dxdbMultiplier(), objectiveMoment::update_dxdbMultiplier(), objectivePowerDissipation::update_gradDxDbMultiplier(), updateNormalizationFactor(), write(), writeInstantaneousValue(), and writeMeanValue().

◆ dict_

dictionary dict_
protected

Definition at line 64 of file objective.H.

Referenced by dict(), objective(), and readDict().

◆ adjointSolverName_

◆ primalSolverName_

const word primalSolverName_
protected

Definition at line 66 of file objective.H.

Referenced by objectiveIncompressible::allocatedJdTurbulence(), and objective().

◆ objectiveName_

◆ computeMeanFields_

bool computeMeanFields_
protected

◆ nullified_

bool nullified_
protected

Definition at line 69 of file objective.H.

Referenced by nullify(), objectiveIncompressible::nullify(), and objective().

◆ normalize_

◆ shouldWrite_

bool shouldWrite_
protected

Definition at line 71 of file objective.H.

Referenced by setWrite(), and shouldWrite().

◆ J_

◆ JMean_

scalar JMean_
protected

Average objective value.

Definition at line 81 of file objective.H.

Referenced by accumulateJMean(), accumulateJMean(), JCycle(), writeData(), and writeMeanValue().

◆ weight_

scalar weight_
protected

Objective weight.

Definition at line 86 of file objective.H.

Referenced by JCycle(), objectiveGeometric::objectiveGeometric(), updateNormalizationFactor(), weight(), and writeData().

◆ computed_

bool computed_
protected

Whether the objective is computed or not.

Some objective (e.g. geometric ones) might not change from one iteration of the primal solver to the next and might be expensive to evaluate. This can be used to compute them only once per optimisation cycle

Definition at line 96 of file objective.H.

Referenced by setComputed(), objectiveGeometric::update(), and objectiveIncompressible::update().

◆ normFactor_

autoPtr<scalar> normFactor_
protected

◆ target_

autoPtr<scalar> target_
protected

Target value, in case the objective is used as a constraint.

Should be used with caution and with updateMethods than get affected by the target value, without requiring a sqr (e.g. SQP, MMA)

Definition at line 110 of file objective.H.

Referenced by JCycle(), and write().

◆ targetLeft_

autoPtr<scalar> targetLeft_
protected

Target on the left hand-side of a double inequality, for double sided constraints.

Definition at line 116 of file objective.H.

Referenced by JCycle(), and write().

◆ integrationStartTimePtr_

autoPtr<scalar> integrationStartTimePtr_
protected

Objective integration start and end times (for unsteady flows).

Definition at line 121 of file objective.H.

Referenced by accumulateJMean(), hasIntegrationStartTime(), incrementIntegrationTimes(), and isWithinIntegrationTime().

◆ integrationEndTimePtr_

autoPtr<scalar> integrationEndTimePtr_
protected

◆ fieldNames_

wordList fieldNames_
protected

List of adjoint fields for which this objective will contribute sources to their equations.

Only for volume-based objectives for the moment

Definition at line 130 of file objective.H.

Referenced by objectiveIncompressible::addSource(), objectiveNutSqr::addSource(), objectivePowerDissipation::addSource(), objectivePowerDissipation::objectivePowerDissipation(), objectiveUniformityCellZone::objectiveUniformityCellZone(), and objectiveNutSqr::update_dJdv().

◆ bdJdbPtr_

autoPtr<boundaryVectorField> bdJdbPtr_
protected

Contribution to field sensitivity derivatives.

Topology optimisation or other variants with as many design variables as the mesh cells ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ autoPtr<volScalarField> dJdbPtr_;

/*!

Contribution to sensitivity derivatives with a random number of design variables (neither surface, nor volume based)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ autoPtr<scalarField> dJdbFieldPtr_;

Contribution to surface sensitivity derivatives ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/*!

Term from material derivative

Definition at line 156 of file objective.H.

Referenced by boundarydJdb(), boundarydJdb(), doNormalization(), hasBoundarydJdb(), and nullify().

◆ bdSdbMultPtr_

◆ bdndbMultPtr_

autoPtr<boundaryVectorField> bdndbMultPtr_
protected

Term multiplying delta(n)/delta b.

Definition at line 166 of file objective.H.

Referenced by dndbMultiplier(), dndbMultiplier(), doNormalization(), hasdndbMult(), and nullify().

◆ bdxdbMultPtr_

◆ bdxdbDirectMultPtr_

autoPtr<boundaryVectorField> bdxdbDirectMultPtr_
protected

Term multiplying delta(x)/delta b at the boundary for objectives that directly depend on x, e.g. moment Needed in both FI and SI computations.

Definition at line 178 of file objective.H.

Referenced by boundaryEdgeMultiplier(), boundaryEdgeMultiplier(), doNormalization(), dxdbDirectMultiplier(), dxdbDirectMultiplier(), hasdxdbDirectMult(), nullify(), objectiveMoment::objectiveMoment(), objectiveMoment::update_dxdbDirectMultiplier(), and objectivePartialVolume::update_dxdbDirectMultiplier().

◆ bEdgeContribution_

autoPtr<vectorField3> bEdgeContribution_
protected

Contribution located in specific parts of a patch. Mainly intended for patch boundary edges contributions, e.g. NURBS surfaces G1 continuity.

Definition at line 185 of file objective.H.

Referenced by boundaryEdgeMultiplier(), boundaryEdgeMultiplier(), doNormalization(), hasBoundaryEdgeContribution(), and nullify().

◆ divDxDbMultPtr_

◆ gradDxDbMultPtr_

autoPtr<volTensorField> gradDxDbMultPtr_
protected

Emerging from volume objectives that include spatial derivatives.

Definition at line 199 of file objective.H.

Referenced by doNormalization(), gradDxDbMultiplier(), hasGradDxDbMult(), nullify(), objectivePowerDissipation::objectivePowerDissipation(), and objectivePowerDissipation::update_gradDxDbMultiplier().

◆ objFunctionFolder_

fileName objFunctionFolder_
protected

Output file variables.

Definition at line 204 of file objective.H.

Referenced by setInstantValueFilePtr(), setMeanValueFilePtr(), and setObjectiveFilePtr().

◆ objFunctionFilePtr_

◆ instantValueFilePtr_

autoPtr<OFstream> instantValueFilePtr_
mutableprotected

File to keep the objective values at each iteration of the primal solver.

Definition at line 215 of file objective.H.

Referenced by setInstantValueFilePtr(), writeInstantaneousSeparator(), and writeInstantaneousValue().

◆ meanValueFilePtr_

autoPtr<OFstream> meanValueFilePtr_
mutableprotected

File to keep the average objective values after the end of the primal solver.

Definition at line 221 of file objective.H.

Referenced by setMeanValueFilePtr(), and writeMeanValue().

◆ width_


The documentation for this class was generated from the following files:
  • src/optimisation/adjointOptimisation/adjoint/objectives/objective/objective.H
  • src/optimisation/adjointOptimisation/adjoint/objectives/objective/objective.C
  • src/optimisation/adjointOptimisation/adjoint/objectives/objective/objectiveI.H