Go to the documentation of this file.
42 optMeshMovementVolumetricBSplines,
55 const label nControlPoints(
correction.size()/3);
58 for (label iCP = 0; iCP < nControlPoints; ++iCP)
72 Foam::optMeshMovementVolumetricBSplines::optMeshMovementVolumetricBSplines
84 cpsInit_(volBSplinesBase_.getNumberOfBoxes())
92 boxes[boxI].getControlPoints().size()
94 cpsInit_[boxI] = boxes[boxI].getControlPoints();
104 vectorField cpMovement = controlPointMovement(correction_);
107 displMethodPtr_->setControlField(cpMovement);
120 cpsInit_[boxI] = boxes[boxI].getControlPoints();
131 <<
"optMeshMovementVolumetricBSplines:: resetting control points"
134 PtrList<NURBS3DVolume>& boxes = volBSplinesBase_.boxesRef();
137 boxes[boxI].setControlPoints(cpsInit_[boxI]);
148 const scalar maxDisplacement
150 volBSplinesBase_.computeMaxBoundaryDisplacement
157 Info<<
"maxAllowedDisplacement/maxDisplacement of boundary\t"
158 << getMaxAllowedDisplacement() <<
"/" << maxDisplacement <<
endl;
159 scalar eta = getMaxAllowedDisplacement() / maxDisplacement;
169 return volBSplinesBase_.getActiveDesignVariables();
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
autoPtr< displacementMethod > displMethodPtr_
virtual scalar computeEta(const scalarField &correction)
virtual void resetDesignVariables()
Class constructing a number of volumetric B-Splines boxes, read from dynamicMeshDict....
static constexpr const zero Zero
virtual void storeDesignVariables()
virtual void storeDesignVariables()
Ostream & endl(Ostream &os)
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
List< vectorField > cpsInit_
Field< vector > vectorField
Specialisation of Field<T> for vector.
Generic templated field type.
void setSize(const label n)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
PtrList< NURBS3DVolume > & boxesRef()
volBSplinesBase & volBSplinesBase_
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
Mesh data needed to do the Finite Volume discretisation.
vectorField controlPointMovement(const scalarField &correction)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
virtual labelList getActiveDesignVariables() const
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Abstract base class for translating an update of the design variables into mesh movement.
defineTypeNameAndDebug(combustionModel, 0)
virtual void resetDesignVariables()