38 #ifndef BezierDesignVariables_H 39 #define BezierDesignVariables_H 88 void decomposeVarID(label& cpI, label& dir,
const label varID)
const;
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix by subtracting the matrix multiplied by the current fi...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual bool globalSum() const
Whether to use global sum when computing matrix-vector products.
virtual scalar computeEta(scalarField &correction)
Compute eta if not set in the first step.
virtual tmp< vectorField > dxdbFace(const label patchI, const label varID) const
Get dxdb for given design variable and patch.
void decomposeVarID(label &cpI, label &dir, const label varID) const
Decompose varID to cpID and direction.
TypeName("Bezier")
Runtime type information.
Bezier design variables for shape optimisation.
virtual ~BezierDesignVariables()=default
Destructor.
pointVectorField dx_
Boundary movement due to the change in Bezier control points.
void setBounds(autoPtr< scalarField > &bounds, const vector &cpBounds)
Set uniform bounds for all control points.
tmp< vectorField > computeBoundaryDisplacement(const scalarField &correction)
Transform the correction of design variables to control points' movement.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
virtual tmp< volVectorField > dCdb(const label varID) const
Get dCdb for given design variable.
virtual void update(scalarField &correction)
Update design variables based on a given correction.
Calculation of adjoint based sensitivities for Bezier control points.
Abstract base class for defining design variables for shape optimisation.
Mesh data needed to do the Finite Volume discretisation.
virtual tmp< vectorField > dndb(const label patchI, const label varID) const
Get dndb for given design variable and patch.
A class for managing temporary objects.
Bezier bezier_
The Bezier control points and auxiliary functions.
void readBounds(autoPtr< scalar > lowerBoundPtr=nullptr, autoPtr< scalar > upperBoundPtr=nullptr)
Read bounds for design variables, if present.
virtual tmp< vectorField > dSdb(const label patchI, const label varID) const
Get dSdb for given design variable and patch.