// Motion is a vectorField of all moving boundary points vectorField motion(ms.movingPoints().size(), vector::zero); vectorField oldPoints=ms.movingPoints(); scalar oldTime = time_.value() - time_.deltaT().value(); scalar curTime = time_.value(); scalar alphaOld = 0.0; scalar alphaCur = 0.0; /* scalar rotationAmplitude_(0.707); scalar rotationFrequency_(0.0); vector translationFrequency_(0.0,0.25,0.0); vector translationAmplitude_(0.0,5.0,0.0); vector initialRotationOrigin_(0.0,0.0,0.0);*/ scalar pi=3.141592; alphaOld = rotationAmplitude_*Foam::sin(2*pi*rotationFrequency_*oldTime); alphaCur = rotationAmplitude_*Foam::sin(2*pi*rotationFrequency_*curTime); vector translationVector(0.0,0.0,0.0); translationVector.x()=translationAmplitude_[0] *( Foam::sin(2*pi*translationFrequency_[0]*curTime) -Foam::sin(2*pi*translationFrequency_[0]*oldTime) ); translationVector.y()=translationAmplitude_[1] *( Foam::sin(2*pi*translationFrequency_[1]*curTime) -Foam::sin(2*pi*translationFrequency_[1]*oldTime) ); translationVector.z()=0.0; tensor RzOld(Foam::cos(alphaOld), -Foam::sin(alphaOld), 0, Foam::sin(alphaOld), Foam::cos(alphaOld), 0, 0, 0, 1); tensor RzCur(Foam::cos(alphaCur), -Foam::sin(alphaCur), 0, Foam::sin(alphaCur), Foam::cos(alphaCur), 0, 0, 0, 1); //vectorField rotationField = ( (RzCur & (statPoints_ - initialRotationOrigin_)) - (oldPoints - initialRotationOrigin_) ); vectorField rotationField = ( RzCur - RzOld ) & ( statPoints_ - initialRotationOrigin_ ); motion = translationVector + rotationField;