41#ifndef regularisationPDE_H
42#define regularisationPDE_H
59class regularisationPDE
67 regularisationPDE(
const regularisationPDE&) =
delete;
70 void operator=(
const regularisationPDE&) =
delete;
95 const bool isTopoField,
96 const scalar minSetValue =
Zero
106 const scalar minSetValue =
Zero
169 const bool isTopoField,
171 const scalar minSetValue =
Zero,
172 const bool fixATildaValues =
true
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
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,...
Mesh data needed to do the Finite Volume discretisation.
bool growFromWalls_
Whether to apply a fixedValue BC or zeroGradient one to alphaTilda, when regularisation is performed.
declareRunTimeSelectionTable(autoPtr, regularisationPDE, dictionary,(const fvMesh &mesh, const dictionary &dict, const topOZones &zones),(mesh, dict, zones))
scalar computeRadius()
Compute smoothing radius, if not directly given.
void setValues(fvScalarMatrix &bTildaEqn, const bool isTopoField, const scalar minSetValue=Zero)
Set fixed bTilda values.
static autoPtr< regularisationPDE > New(const fvMesh &mesh, const dictionary &dict, const topOZones &zones)
Construct and return the selected regularisationPDE.
virtual void regularise(const volScalarField &aTilda, const scalarField &source, scalarField &result, const bool isTopoField, const regularisationRadius &radius, const scalar minSetValue=Zero, const bool fixATildaValues=true)=0
Regularise field (or sensitivities).
virtual ~regularisationPDE()=default
Destructor.
const topOZones & zones_
Cell zones related to topology optimisation.
TypeName("regularisationPDE")
Runtime type information.
Base class for selecting the regulatisation radius.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
fvMatrix< scalar > fvScalarMatrix
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
static constexpr const zero Zero
Global zero (0).
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.