64 for (label iCP = 0; iCP < nBezier; iCP++)
67 if (!confineXmovement[iCP])
72 if (!confineYmovement[iCP])
74 actualMovement[iCP].y() =
correction[iCP + nBezier];
77 if (!confineZmovement[iCP])
79 actualMovement[iCP].z() =
correction[iCP + 2*nBezier];
116 cumulativeChange_(Bezier_.nBezier(),
Zero)
125 computeBoundaryMovement(correction_);
128 displMethodPtr_->setMotionField(dx_);
142 const scalar maxDisplacement =
gMax(
mag(dx_.primitiveField()));
145 Info<<
"maxAllowedDisplacement/maxDisplacement \t"
146 << getMaxAllowedDisplacement() <<
"/" << maxDisplacement <<
endl;
147 const scalar eta = getMaxAllowedDisplacement()/maxDisplacement;
148 Info<<
"Setting eta value to " << eta <<
endl;
156 return Bezier_.getActiveDesignVariables();
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
label nBezier() const
Number of Bezier control points.
const boolList & confineZmovement() const
Confine z movement.
const boolList & confineYmovement() const
Confine y movement.
const boolList & confineXmovement() const
Confine x movement.
PtrList< pointTensorField > & dxidXj()
dx/db tensor for all control points
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
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.
Converts NURBS control points update to actual mesh movement.
void moveMesh()
Calculates surface mesh movement.
virtual labelList getActiveDesignVariables() const
Return active design variables.
void computeBoundaryMovement(const scalarField &correction)
vectorField cumulativeChange_
Cumulative change of control points.
pointVectorField dx_
Boundary movement due to change of NURBS control points.
Bezier Bezier_
Parameterization based on NURBS curves.
virtual scalar computeEta(const scalarField &correction)
Compute eta value based on max displacement.
Abstract base class for translating an update of the design variables into mesh movement.
Mesh representing a set of points created from polyMesh.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const dimensionSet dimless
Dimensionless.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
static constexpr const zero Zero
Global zero (0)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Type gMax(const FieldField< Field, Type > &f)
A non-counting (dummy) refCount.