Loading...
Searching...
No Matches
morphingBoxConstraint Class Referenceabstract

Abstract base class for defining constraints for the control points of volumetric B-Splines morphing boxes. More...

#include <morphingBoxConstraint.H>

Inheritance diagram for morphingBoxConstraint:
Collaboration diagram for morphingBoxConstraint:

Public Member Functions

 TypeName ("morphingBoxConstraint")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, morphingBoxConstraint, dictionary,(const fvMesh &mesh, const dictionary &dict, volumetricBSplinesDesignVariables &designVariables),(mesh, dict, designVariables))
 morphingBoxConstraint (const fvMesh &mesh, const dictionary &dict, volumetricBSplinesDesignVariables &designVariables)
 Construct from components.
virtual ~morphingBoxConstraint ()=default
 Destructor.
virtual labelList computeActiveDesignVariables (const labelList &activeCPCoors)=0
 Compute the active design variables based on the IDs of the active control point coordinates.
virtual void computeBounds (autoPtr< scalarField > &lowerBounds, autoPtr< scalarField > &upperBounds)
 Transform bounds from control points to design variables.
virtual void updateBounds (autoPtr< scalarField > &lowerBounds, autoPtr< scalarField > &upperBounds)
 Update the bounds of the design variables.
virtual tmp< scalarFielddesignVariablesToControlPoints (const scalarField &designVariables)=0
 Convert design variables to control points, stored in a scalarField.
virtual tmp< scalarFieldcontrolPointsToDesignVariables (const scalarField &cps)=0
 Return the design variables corresponding to the given control points.
virtual tmp< scalarFieldcorrectionCPs (const scalarField &correction)=0
 Convert the correction of the design variables to the correction of the control points.
virtual tmp< scalarFieldpostProcessSens (const scalarField &controlPointSens, const word &adjointSolverName)
 Chain rule from control points to design variables.
virtual scalar computeEta (scalarField &correction, const scalar maxInitChange)
 Compute eta if not set in the first step.
bool initialiseVars () const
 Initialise the design variables?
virtual bool writeData (Ostream &os) const
 Append useful information to the design variables IOdictionary.

Static Public Member Functions

static autoPtr< morphingBoxConstraint > New (const fvMesh &mesh, const dictionary &dict, volumetricBSplinesDesignVariables &designVariables)
 Construct and return the selected morphingBoxConstraint.

Protected Member Functions

virtual void computeDVsSensitivities (scalarField &dvSens, const scalarField &cpSens)=0
 Compute sensitivities wrt the design variables (chain rule).
virtual void writeDVSensitivities (const scalarField &sens, const word &name)
 Write sensitivities w.r.t. the design variables.

Protected Attributes

const fvMeshmesh_
 Mesh reference.
const dictionary dict_
 Volumetric B-Splines variables dict.
volumetricBSplinesDesignVariablesdesignVariables_
 Reference to underlaying volumetric B-Splines morpher.
volBSplinesBasevolBSplinesBase_
 Easy access to the volBSplinesBase resting in the designVariables_.
scalarField initialCPs_
 Initial CPs stored in scalarField.
bool initialiseVars_
 Initialise the design variables.
fileName derivativesFolder_
 Folder holding the twist sensitivities.

Detailed Description

Abstract base class for defining constraints for the control points of volumetric B-Splines morphing boxes.

Source files

Definition at line 52 of file morphingBoxConstraint.H.

Constructor & Destructor Documentation

◆ morphingBoxConstraint()

morphingBoxConstraint ( const fvMesh & mesh,
const dictionary & dict,
volumetricBSplinesDesignVariables & designVariables )

Construct from components.

Definition at line 70 of file morphingBoxConstraint.C.

References derivativesFolder_, designVariables_, dict, dict_, initialCPs_, initialiseVars_, mesh, mesh_, Foam::mkDir(), and volBSplinesBase_.

Here is the call graph for this function:

◆ ~morphingBoxConstraint()

virtual ~morphingBoxConstraint ( )
virtualdefault

Destructor.

Member Function Documentation

◆ computeDVsSensitivities()

virtual void computeDVsSensitivities ( scalarField & dvSens,
const scalarField & cpSens )
protectedpure virtual

Compute sensitivities wrt the design variables (chain rule).

Implemented in noConstraint.

References Foam::name().

Referenced by postProcessSens().

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

◆ writeDVSensitivities()

void writeDVSensitivities ( const scalarField & sens,
const word & name )
protectedvirtual

Write sensitivities w.r.t. the design variables.

Definition at line 39 of file morphingBoxConstraint.C.

References IOstream::defaultPrecision(), derivativesFolder_, designVariables_, Foam::endl(), forAll, UPstream::master(), mesh_, and Foam::setw().

Referenced by postProcessSens().

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

◆ TypeName()

TypeName ( "morphingBoxConstraint" )

Runtime type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr ,
morphingBoxConstraint ,
dictionary ,
(const fvMesh &mesh, const dictionary &dict, volumetricBSplinesDesignVariables &designVariables) ,
(mesh, dict, designVariables)  )

References dict, and mesh.

◆ New()

Foam::autoPtr< Foam::morphingBoxConstraint > New ( const fvMesh & mesh,
const dictionary & dict,
volumetricBSplinesDesignVariables & designVariables )
static

Construct and return the selected morphingBoxConstraint.

Definition at line 106 of file morphingBoxConstraint.C.

References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInLookup, Foam::Info, and mesh.

Here is the call graph for this function:

◆ computeActiveDesignVariables()

virtual labelList computeActiveDesignVariables ( const labelList & activeCPCoors)
pure virtual

Compute the active design variables based on the IDs of the active control point coordinates.

Implemented in noConstraint.

◆ computeBounds()

void computeBounds ( autoPtr< scalarField > & lowerBounds,
autoPtr< scalarField > & upperBounds )
virtual

Transform bounds from control points to design variables.

WIP

Reimplemented in noConstraint.

Definition at line 138 of file morphingBoxConstraint.C.

References NotImplemented.

◆ updateBounds()

void updateBounds ( autoPtr< scalarField > & lowerBounds,
autoPtr< scalarField > & upperBounds )
virtual

Update the bounds of the design variables.

WIP

Reimplemented in noConstraint.

Definition at line 151 of file morphingBoxConstraint.C.

References designVariables_, and NotImplemented.

◆ designVariablesToControlPoints()

virtual tmp< scalarField > designVariablesToControlPoints ( const scalarField & designVariables)
pure virtual

Convert design variables to control points, stored in a scalarField.

Implemented in noConstraint.

◆ controlPointsToDesignVariables()

virtual tmp< scalarField > controlPointsToDesignVariables ( const scalarField & cps)
pure virtual

Return the design variables corresponding to the given control points.

Implemented in noConstraint.

◆ correctionCPs()

virtual tmp< scalarField > correctionCPs ( const scalarField & correction)
pure virtual

Convert the correction of the design variables to the correction of the control points.

Implemented in noConstraint.

References Foam::correction().

Here is the call graph for this function:

◆ postProcessSens()

Foam::tmp< Foam::scalarField > postProcessSens ( const scalarField & controlPointSens,
const word & adjointSolverName )
virtual

Chain rule from control points to design variables.

Definition at line 164 of file morphingBoxConstraint.C.

References computeDVsSensitivities(), designVariables_, tmp< T >::New(), writeDVSensitivities(), and Foam::Zero.

Here is the call graph for this function:

◆ computeEta()

Foam::scalar computeEta ( scalarField & correction,
const scalar maxInitChange )
virtual

Compute eta if not set in the first step.

Definition at line 181 of file morphingBoxConstraint.C.

References Foam::correction(), designVariables_, Foam::endl(), Foam::Info, and volBSplinesBase_.

Here is the call graph for this function:

◆ initialiseVars()

bool initialiseVars ( ) const
inline

Initialise the design variables?

Definition at line 266 of file morphingBoxConstraint.H.

References initialiseVars_.

◆ writeData()

bool writeData ( Ostream & os) const
virtual

Append useful information to the design variables IOdictionary.

Definition at line 208 of file morphingBoxConstraint.C.

References os().

Here is the call graph for this function:

Member Data Documentation

◆ mesh_

const fvMesh& mesh_
protected

Mesh reference.

Definition at line 61 of file morphingBoxConstraint.H.

Referenced by morphingBoxConstraint(), and writeDVSensitivities().

◆ dict_

const dictionary dict_
protected

Volumetric B-Splines variables dict.

Definition at line 66 of file morphingBoxConstraint.H.

Referenced by morphingBoxConstraint().

◆ designVariables_

volumetricBSplinesDesignVariables& designVariables_
protected

Reference to underlaying volumetric B-Splines morpher.

Definition at line 71 of file morphingBoxConstraint.H.

Referenced by computeEta(), morphingBoxConstraint(), noConstraint::noConstraint(), postProcessSens(), updateBounds(), noConstraint::updateBounds(), and writeDVSensitivities().

◆ volBSplinesBase_

volBSplinesBase& volBSplinesBase_
protected

Easy access to the volBSplinesBase resting in the designVariables_.

Definition at line 76 of file morphingBoxConstraint.H.

Referenced by computeEta(), morphingBoxConstraint(), noConstraint::noConstraint(), and noConstraint::updateBounds().

◆ initialCPs_

scalarField initialCPs_
protected

Initial CPs stored in scalarField.

Definition at line 81 of file morphingBoxConstraint.H.

Referenced by morphingBoxConstraint().

◆ initialiseVars_

bool initialiseVars_
protected

Initialise the design variables.

Definition at line 86 of file morphingBoxConstraint.H.

Referenced by initialiseVars(), and morphingBoxConstraint().

◆ derivativesFolder_

fileName derivativesFolder_
protected

Folder holding the twist sensitivities.

Definition at line 91 of file morphingBoxConstraint.H.

Referenced by morphingBoxConstraint(), and writeDVSensitivities().


The documentation for this class was generated from the following files:
  • src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/shape/volumetricBSplines/morphingBoxConstraints/morphingBoxConstaint/morphingBoxConstraint.H
  • src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/shape/volumetricBSplines/morphingBoxConstraints/morphingBoxConstaint/morphingBoxConstraint.C