61 #ifndef levelSetDesignVariables_H 62 #define levelSetDesignVariables_H tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix by subtracting the matrix multiplied by the current fi...
TypeName("levelSet")
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Abstract base class for adjoint-based sensitivities.
autoPtr< regularisationPDE > regularisation_
Regularisation mechanism.
virtual bool globalSum() const
Whether to use global sum when computing matrix-vector products in update methods.
volScalarField aTilda_
The regularised field.
void updateSignedDistances()
Make aTilda a signed distance field based on the zero iso-surface of the current aTilda field...
void applyFixedPorosityValues()
Apply fixed values in certain zones.
autoPtr< regularisationRadius > radius_
The regularisation radius.
virtual void update(scalarField &correction)
Update design variables based on a given correction.
volScalarField signedDistances_
The signed distances field.
static autoPtr< levelSetDesignVariables > New(fvMesh &mesh, const dictionary &dict)
Return a reference to the selected turbulence model.
autoPtr< topOInterpolationFunction > interpolation_
Function to transorm signed distances to the indicator field beta_.
virtual const volScalarField & beta() const
Const reference to the beta field.
Signed distance field design variables for level-set based topology optimization (topO).
void readField()
Read the design variables field.
labelList changedFaces_
Mesh faces acting as the source of MeshWave.
bool writeAllDistanceFields_
Write all fields related to the distance calculation (debugging)
volScalarField beta_
The indicator field.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual tmp< scalarField > assembleSensitivities(adjointSensitivity &adjointSens)
Add contributions from the adjoint to the regularization PDE, the derivative of the interpolation fun...
Abstract base class for defining design variables.
List< wallPointData< label > > allCellInfo_
Mesh data needed to do the Finite Volume discretisation.
virtual ~levelSetDesignVariables()=default
Destructor.
void updateBeta()
Update the beta field.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual scalar computeEta(scalarField &correction)
Compute eta if not set in the first step.
List< wallPointData< label > > changedFacesInfo_
Seed distances to MeshWave and cell distances.
A class for managing temporary objects.
void setActiveDesignVariables(bool activeIO=false)
Determine which design variables are active.
Base class for all design variables related to topology optimisation (topO). Provides the lookup func...
bool fixATildaValues_
Fix aTilda values in fixed{Zero}PorousZones and IOcells.
virtual void writeDesignVars()
Write useful quantities to files.
virtual bool writeData(Ostream &) const
The writeData function required by the regIOobject write operation.