2const Time& t = mesh.time();
5if (curTimeIndex_ != mesh.time().timeIndex())
8 curTimeIndex_ = mesh.time().timeIndex();
12Foam::dimensionedVector g(
"g", dimAcceleration, Zero);
14if (mesh.time().foundObject<uniformDimensionedVectorField>(
"g"))
16 g = mesh.time().lookupObject<uniformDimensionedVectorField>(
"g");
20 dictCoeffs.readIfPresent(
"g", g);
23const scalar ramp = 1.0;
25forcesDict.add(
"type", functionObjects::forces::typeName);
26forcesDict.add(
"patches", dictCoeffs.get<wordRes>(
"patches"));
27forcesDict.add(
"rhoInf", 1.0);
28forcesDict.add(
"rho", dictCoeffs.getOrDefault<word>(
"rho",
"rho"));
29forcesDict.add(
"CofR", sDRBM.centreOfRotation());
32romforces.calcForcesMoment();
39 ramp * (romforces.forceEff() + sDRBM.mass()*g.value()),
43 + sDRBM.mass() * (sDRBM.momentArm() ^ g.value())
49muEval(0, 0) = sDRBM.centreOfMass().y();
51for (
int i = 0; i < NmodesDproj; i++)
55 pdCoeff(i, 0) = problem->rbfSplines[i]->eval(muEval);
60Dmodes.reconstruct(pointDisplacement, pdCoeff,
"pointDisplacement");
62problem->sDRBMS().pointDisplacement().primitiveFieldRef()
63 = pointDisplacement.primitiveFieldRef();
67 pointDisplacement.mesh()
69).constrainDisplacement(problem->sDRBMS().pointDisplacement());
71mesh.movePoints(problem->sDRBMS().curPoints());