BUG: rotorDiskSource - local force was not transformed into global frame correctly - mantis #1290

This commit is contained in:
andy
2014-05-13 16:18:15 +01:00
committed by Andrew Heather
parent d58d7a9814
commit 0946ba7427

View File

@ -234,6 +234,29 @@ void Foam::fv::rotorDiskSource::setFaceArea(vector& axis, const bool correct)
reduce(n, sumOp<vector>());
axis = n/mag(n);
}
if (debug)
{
volScalarField area
(
IOobject
(
name_ + ":area",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("0", dimArea, 0)
);
UIndirectList<scalar>(area.internalField(), cells_) = area_;
Info<< type() << ": " << name_ << " writing field " << area.name()
<< endl;
area.write();
}
}
@ -317,7 +340,8 @@ void Foam::fv::rotorDiskSource::createCoordinateSystem()
(
mesh_,
axis,
origin
origin,
cells_
)
);
@ -339,7 +363,8 @@ void Foam::fv::rotorDiskSource::createCoordinateSystem()
(
mesh_,
axis,
origin
origin,
cells_
)
);
@ -503,10 +528,6 @@ void Foam::fv::rotorDiskSource::calculate
scalar AOAmin = GREAT;
scalar AOAmax = -GREAT;
tmp<vectorField> tUcf(localAxesRotation_->transform(U));
vectorField& Ucf = tUcf();
forAll(cells_, i)
{
if (area_[i] > ROOTVSMALL)
@ -516,7 +537,7 @@ void Foam::fv::rotorDiskSource::calculate
const scalar radius = x_[i].x();
// velocity in local cylindrical reference frame
vector Uc = Ucf[i];
vector Uc = localAxesRotation_->transform(U[cellI], i);
// transform from rotor cylindrical into local coning system
Uc = R_[i] & Uc;
@ -581,7 +602,7 @@ void Foam::fv::rotorDiskSource::calculate
localForce = invR_[i] & localForce;
// convert force to global cartesian co-ordinate system
force[cellI] = coordSys_.globalVector(localForce);
force[cellI] = localAxesRotation_->invTransform(localForce, i);
if (divideVolume)
{