40namespace incompressible
68 dict_(
dict.subOrEmptyDict(
"adjointMeshMovementSolver")),
70 sensitivityPatchIDs_(sensitivityPatchIDs),
90 fixedValueFvPatchVectorField::typeName
96 "sourceAdjointMeshMovement",
106 adjointEikonalSolverPtr_(adjointEikonalSolverPtr)
146 Info<<
"Adjoint Mesh Movement Iteration: " << iter <<
endl;
167 Info<<
"\n***Reached adjoint mesh movement convergence limit, "
168 "iteration " << iter <<
"***\n\n";
185 Info<<
"Calculating mesh movement sensitivities " <<
endl;
195 return meshMovementSens;
const dimensionSet & dimensions() const
Return dimensions.
Generic GeometricBoundaryField class.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Ostream & printExecutionTime(OSstream &os) const
Print the elapsed ExecutionTime (cpu-time), ClockTime.
Base class for adjoint solvers.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
dictionary subOrEmptyDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX, const bool mandatory=false) const
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
A special matrix type and solver, designed for finite volume solutions of scalar equations....
void boundaryManipulate(typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
Manipulate based on a boundary field.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
Solver of the adjoint to the Laplace grid displacement equation.
autoPtr< boundaryVectorField > meshMovementSensPtr_
Wall face sens w.r.t.(x, y.z) //wall face sens w.r.t. (x,y.z)
Foam::incompressible::adjointSensitivity & adjointSensitivity_
const labelHashSet & sensitivityPatchIDs_
const autoPtr< adjointEikonalSolver > & adjointEikonalSolverPtr_
boundaryVectorField & meshMovementSensitivities()
Return the sensitivity term depending on da.
void read()
Read options each time a new solution is found.
void accumulateIntegrand(const scalar dt)
Accumulate source term.
void reset()
Reset source term.
void solve()
Calculate the adjoint distance field.
const volVectorField & ma()
Return the adjoint distance field.
Abstract base class for adjoint-based sensitivities in incompressible flows.
tmp< volVectorField > adjointMeshMovementSource()
Compute source term for adjoint mesh movement equation.
virtual bool write(const bool valid=true) const
Write using setting from DB.
const dictionary & solverDict(const word &name) const
Return the solver controls dictionary for the given field.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
static constexpr const zero Zero
Global zero (0)
autoPtr< typename GeometricField< Type, fvPatchField, volMesh >::Boundary > createZeroBoundaryPtr(const fvMesh &mesh, bool printAllocation=false)
Type gMax(const FieldField< Field, Type > &f)
SolverPerformance< Type > solve(faMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
A non-counting (dummy) refCount.