1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
Info<< "Reading combustion properties\n" << endl;
IOdictionary engineGeometry
(
IOobject
(
"engineGeometry",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
vector swirlAxis(engineGeometry.get<vector>("swirlAxis"));
vector swirlCenter(engineGeometry.get<vector>("swirlCenter"));
dimensionedScalar swirlRPMRatio("swirlRPMRatio", engineGeometry);
dimensionedScalar swirlProfile("swirlProfile", engineGeometry);
dimensionedScalar bore("bore", dimLength, engineGeometry);
dimensionedScalar rpm("rpm", dimless/dimTime, engineGeometry);
Info<< "Reading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
vector zT = swirlAxis;
vector yT = vector(0, zT.z(), -zT.y());
vector xT = vector
(
zT.y()*zT.y() + zT.z()*zT.z(),
-zT.x()*zT.y(),
-zT.x()*zT.z()
);
// if swirl is around (1, 0, 0) we have to find another transformation
if (mag(yT) < SMALL)
{
yT = vector(zT.y(), -zT.x(), 0);
xT = vector(-zT.x()*zT.z(), -zT.y()*zT.z(), zT.x()*zT.x() + zT.y()*zT.y());
}
//swirlAxis doesn't have to be of unit length.
xT.normalise();
yT.normalise();
zT.normalise();
|