Go to the documentation of this file.
38 namespace incompressible
102 mesh_.time().timeName(),
110 divDxDbMult_(mesh_.nCells(),
Zero),
111 optionsDxDbMult_(mesh_.nCells(),
Zero),
112 dSfdbMult_(createZeroBoundaryPtr<vector>(mesh_)),
113 dnfdbMult_(createZeroBoundaryPtr<vector>(mesh_)),
114 dxdbDirectMult_(createZeroBoundaryPtr<vector>(mesh_)),
116 includeDistance_(
false),
117 eikonalSolver_(
nullptr)
151 func.weight()*
func.divDxDbMultiplier().primitiveField()*dt;
168 for (
const label patchI : sensitivityPatchIDs_)
173 const scalar wei =
func.weight();
177 wei*
func.dxdbDirectMultiplier(patchI)*magSfDt;
const dictionary & dict() const
Return the construction dictionary.
vectorField optionsDxDbMult_
dx/db multiplier coming from fvOptions
class for managing incompressible objective functions.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A class for handling words, derived from Foam::string.
virtual void write(const word &baseName=word::null)
Write sensitivity fields.
virtual void clearSensitivities()
Zero sensitivity fields and their constituents.
fv::optionAdjointList & fvOptionsAdjoint_
defineTypeNameAndDebug(adjointEikonalSolver, 0)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
static constexpr const zero Zero
Global zero.
bool read(const char *buf, int32_t &val)
Same as readInt32.
volTensorField gradDxDbMult_
grad(dx/db) multiplier
void read()
Read options and update solver pointers if necessary.
scalarField divDxDbMult_
div(dx/db) multiplier
autoPtr< boundaryVectorField > dSfdbMult_
Fields related to direct sensitivities.
T lookupOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
Class including all adjoint fields for incompressible flows.
const autoPtr< incompressible::RASModelVariables > & RASModelVariables() const
Return const reference to the turbulence model variables.
autoPtr< adjointEikonalSolver > eikonalSolver_
Adjoint eikonal equation solver.
Solver of the adjoint to the eikonal PDE.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
void write()
Write sensitivity fields.
Abstract base class for adjoint-based sensitivities in incompressible flows.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
autoPtr< boundaryVectorField > dnfdbMult_
dimensionedScalar pow3(const dimensionedScalar &ds)
virtual bool readDict(const dictionary &dict)
Read dictionary if changed.
Similar to fv::option but with additional functionality to contribute to the sensitivity deriavtives.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
virtual bool readDict(const dictionary &dict)
Read dict if changed.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
virtual void clearSensitivities()
Zero sensitivity fields and their constituents.
void func(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
void clear()
Zero sensitivity fields and their constituents.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
incompressibleAdjointVars & adjointVars_
Mesh data needed to do the Finite Volume discretisation.
autoPtr< boundaryVectorField > dxdbDirectMult_
incompressibleVars & primalVars_
const fvBoundaryMesh & boundary() const
Return reference to boundary mesh.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
bool includeDistance_
Include distance variation in sens computation.
const autoPtr< incompressibleAdjoint::adjointRASModel > & adjointTurbulence() const
Return const reference to the adjointRASModel.
virtual void accumulateIntegrand(const scalar dt)
Accumulate sensitivity integrands.
static const Vector< scalar > zero
fv::IOoptionListAdjoint fvOptionsAdjoint(mesh)
Abstract base class for objective functions. No point in making this runTime selectable since its chi...
dimensioned< tensor > dimensionedTensor
Dimensioned tensor obtained from generic dimensioned type.
tmp< volTensorField > computeGradDxDbMultiplier()
Base class for solution control classes.
virtual void write(const word &baseName=word::null)
Write sensitivity fields.
PtrList< objective > & getObjectiveFunctions()
Return reference to objective functions.
objectiveManager & objectiveManager_