59 return *dJdbFieldPtr_;
104 if (!bdxdbDirectMultPtr_)
107 <<
"Unallocated boundaryEdgeMultiplier field"
110 return bEdgeContribution_()[patchI][edgeI];
147 if (!bdxdbDirectMultPtr_)
150 <<
"Unallocated boundaryEdgeMultiplier field"
154 return *bEdgeContribution_;
172 return bool(dJdbPtr_);
178 return bool(dJdbFieldPtr_);
244 computed_ = isComputed;
bool hasdSdbMult() const noexcept
bool hasIntegrationStartTime() const noexcept
autoPtr< boundaryVectorField > bdJdbPtr_
Contribution to field sensitivity derivatives.
void setComputed(const bool isComputed) noexcept
Set the computed status of the objective.
autoPtr< boundaryVectorField > bdSdbMultPtr_
Term multiplying delta(n dS)/delta b.
const boundaryVectorField & dxdbMultiplier() const
Multiplier of delta(x)/delta b for all patches.
const word objectiveName_
bool hasGradDxDbMult() const noexcept
bool hasBoundarydJdb() const noexcept
bool hasdJdb() const noexcept
const boundaryVectorField & dxdbDirectMultiplier() const
Multiplier of delta(x)/delta b for all patches.
autoPtr< boundaryVectorField > bdxdbDirectMultPtr_
Term multiplying delta(x)/delta b at the boundary for objectives that directly depend on x,...
autoPtr< scalar > integrationStartTimePtr_
Objective integration start and end times (for unsteady flows).
const word & objectiveName() const
Return the objective name.
const scalarField & dJdbField() const
Contribution to sensitivities with a random number of designVars.
bool hasIntegrationEndTime() const noexcept
bool hasdndbMult() const noexcept
const boundaryVectorField & dSdbMultiplier() const
Multiplier of delta(n dS)/delta b for all patches.
autoPtr< scalar > integrationEndTimePtr_
void setWrite(const bool shouldWrite)
Should the objective be written to file upon calling write()?
const volScalarField & divDxDbMultiplier() const
Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.
bool hasdJdbField() const noexcept
autoPtr< volScalarField > divDxDbMultPtr_
Multiplier of d(Volume)/db.
const volScalarField & dJdb() const
Contribution to field sensitivities.
bool hasDivDxDbMult() const noexcept
bool hasBoundaryEdgeContribution() const noexcept
const boundaryVectorField & dndbMultiplier() const
Multiplier of delta(n dS)/delta b for all patches.
bool computed_
Whether the objective is computed or not.
const boundaryVectorField & boundarydJdb() const
Contribution to surface sensitivities for all patches.
autoPtr< boundaryVectorField > bdndbMultPtr_
Term multiplying delta(n)/delta b.
autoPtr< boundaryVectorField > bdxdbMultPtr_
Term multiplying delta(x)/delta b at the boundary.
bool hasdxdbDirectMult() const noexcept
bool shouldWrite() const
Should the objective be written to file upon calling write()?
autoPtr< vectorField3 > bEdgeContribution_
Contribution located in specific parts of a patch. Mainly intended for patch boundary edges contribut...
bool hasdxdbMult() const noexcept
const vectorField3 & boundaryEdgeMultiplier() const
Multiplier located at patch boundary edges.
const volTensorField & gradDxDbMultiplier() const
Multiplier of grad( delta(x)/delta b) for volume-based sensitivities.
autoPtr< volTensorField > gradDxDbMultPtr_
Emerging from volume objectives that include spatial derivatives.
A class for handling words, derived from Foam::string.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Field< Field< vectorField > > vectorField3
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & endl(Ostream &os)
Add newline and flush stream.
GeometricField< tensor, fvPatchField, volMesh > volTensorField
Field< vector > vectorField
Specialisation of Field<T> for vector.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
errorManipArg< error, int > exit(error &err, const int errNo=1)
volVectorField::Boundary boundaryVectorField
fvPatchField< vector > fvPatchVectorField