MRF: Separate MRF from fvOptions

fvOptions does not have the appropriate structure to support MRF as it
is based on option selection by user-specified fields whereas MRF MUST
be applied to all velocity fields in the particular solver.  A
consequence of the particular design choices in fvOptions made it
difficult to support MRF for multiphase and it is easier to support
frame-related and field related options separately.

Currently the MRF functionality provided supports only rotations but
the structure will be generalized to support other frame motions
including linear acceleration, SRF rotation and 6DoF which will be
run-time selectable.
This commit is contained in:
Henry
2015-05-29 23:35:43 +01:00
parent ec6ad11cbd
commit c3ee2348a6
146 changed files with 443 additions and 882 deletions

View File

@ -80,6 +80,7 @@ int main(int argc, char *argv[])
pisoControl potentialFlow(mesh, "potentialFlow"); pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -90,8 +91,7 @@ int main(int argc, char *argv[])
// function objects so do it ourselves // function objects so do it ourselves
runTime.functionObjects().start(); runTime.functionObjects().start();
fvOptions.makeRelative(phi); MRF.makeRelative(phi);
adjustPhi(phi, U, p); adjustPhi(phi, U, p);
// Non-orthogonal velocity potential corrector loop // Non-orthogonal velocity potential corrector loop
@ -113,7 +113,7 @@ int main(int argc, char *argv[])
} }
} }
fvOptions.makeAbsolute(phi); MRF.makeAbsolute(phi);
Info<< "Continuity error = " Info<< "Continuity error = "
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value() << mag(fvc::div(phi))().weightedAverage(mesh.V()).value()

View File

@ -92,6 +92,7 @@ int main(int argc, char *argv[])
#include "readCombustionProperties.H" #include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
betav*fvm::ddt(rho, U) betav*fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
betav*rho*g betav*rho*g

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho*g rho*g

View File

@ -72,6 +72,7 @@ int main(int argc, char *argv[])
#include "readCombustionProperties.H" #include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -18,7 +18,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -50,7 +50,7 @@ else
) )
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -50,6 +50,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -74,6 +74,7 @@ int main(int argc, char *argv[])
#include "readCombustionProperties.H" #include "readCombustionProperties.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -21,7 +21,7 @@ if (pimple.transonic())
); );
fvc::makeRelative(phid, psi, U); fvc::makeRelative(phid, psi, U);
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -54,7 +54,7 @@ else
); );
fvc::makeRelative(phiHbyA, rho, U); fvc::makeRelative(phiHbyA, rho, U);
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
parcels.SU(U) parcels.SU(U)

View File

@ -55,6 +55,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"
#include "createSurfaceFilmModel.H" #include "createSurfaceFilmModel.H"

View File

@ -18,7 +18,7 @@ surfaceScalarField phiHbyA
+ phig + phig
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -26,7 +26,7 @@ setSnGrad<fixedFluxPressureFvPatchScalarField>
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -50,6 +50,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho*g rho*g

View File

@ -18,7 +18,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -50,7 +50,7 @@ else
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -48,6 +48,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -23,7 +23,7 @@
+ phig + phig
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -31,7 +31,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -49,6 +49,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -22,7 +22,7 @@
) )
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
surfaceScalarField phid("phid", fvc::interpolate(thermo.psi())*phiHbyA); surfaceScalarField phid("phid", fvc::interpolate(thermo.psi())*phiHbyA);
@ -63,7 +63,7 @@
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
fvScalarMatrix pDDtEqn fvScalarMatrix pDDtEqn
( (

View File

@ -49,6 +49,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -26,7 +26,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -58,7 +58,7 @@ else
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -55,6 +55,7 @@ int main(int argc, char *argv[])
#include "setInitialrDeltaT.H" #include "setInitialrDeltaT.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -27,7 +27,7 @@ if (pimple.transonic())
); );
fvc::makeRelative(phid, psi, U); fvc::makeRelative(phid, psi, U);
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -58,7 +58,7 @@ else
); );
fvc::makeRelative(phiHbyA, rho, U); fvc::makeRelative(phiHbyA, rho, U);
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -58,6 +58,7 @@ int main(int argc, char *argv[])
#include "readControls.H" #include "readControls.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "CourantNo.H" #include "CourantNo.H"

View File

@ -51,6 +51,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -26,7 +26,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
surfaceScalarField phic surfaceScalarField phic
( (
@ -69,7 +69,7 @@ else
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf(); phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
HbyA -= (rAU - rAtU)*fvc::grad(p); HbyA -= (rAU - rAtU)*fvc::grad(p);

View File

@ -51,6 +51,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,8 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -16,7 +16,7 @@
*(fvc::interpolate(HbyA) & mesh.Sf()) *(fvc::interpolate(HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (simple.correctNonOrthogonal()) while (simple.correctNonOrthogonal())
{ {
@ -49,7 +49,7 @@
fvc::interpolate(rho*HbyA) & mesh.Sf() fvc::interpolate(rho*HbyA) & mesh.Sf()
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p); closedVolume = adjustPhi(phiHbyA, U, p);

View File

@ -1,8 +1,11 @@
// Construct the Momentum equation // Construct the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -22,7 +22,7 @@
fvc::interpolate(rho*HbyA) & mesh.Sf() fvc::interpolate(rho*HbyA) & mesh.Sf()
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p); closedVolume = adjustPhi(phiHbyA, U, p);

View File

@ -49,6 +49,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createZones.H" #include "createZones.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -47,6 +47,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -17,7 +17,7 @@ if (simple.transonic())
*(fvc::interpolate(HbyA) & mesh.Sf()) *(fvc::interpolate(HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
surfaceScalarField phic surfaceScalarField phic
( (
@ -61,7 +61,7 @@ else
fvc::interpolate(rho*HbyA) & mesh.Sf() fvc::interpolate(rho*HbyA) & mesh.Sf()
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p); closedVolume = adjustPhi(phiHbyA, U, p);

View File

@ -49,6 +49,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -16,7 +16,7 @@ surfaceScalarField phid
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
// Non-orthogonal pressure corrector loop // Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())

View File

@ -17,7 +17,7 @@ surfaceScalarField phid
); );
fvc::makeRelative(phid, psi, U); fvc::makeRelative(phid, psi, U);
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
// Non-orthogonal pressure corrector loop // Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())

View File

@ -54,6 +54,7 @@ int main(int argc, char *argv[])
#include "readControls.H" #include "readControls.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "CourantNo.H" #include "CourantNo.H"

View File

@ -50,6 +50,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,9 +1,11 @@
// Solve the momentum equation // Solve the momentum equation
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(U) fvm::ddt(U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(U)
+ turbulence->divDevReff(U) + turbulence->divDevReff(U)
== ==
fvOptions(U) fvOptions(U)

View File

@ -65,6 +65,7 @@ int main(int argc, char *argv[])
#include "createFields.H" #include "createFields.H"
#include "createIncompressibleRadiationModel.H" #include "createIncompressibleRadiationModel.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -15,7 +15,7 @@
+ phig + phig
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -23,7 +23,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
); );

View File

@ -1,8 +1,11 @@
// Solve the momentum equation // Solve the momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(U)
+ turbulence->divDevReff(U) + turbulence->divDevReff(U)
== ==
fvOptions(U) fvOptions(U)

View File

@ -63,6 +63,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -14,7 +14,7 @@
(fvc::interpolate(HbyA) & mesh.Sf()) (fvc::interpolate(HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
adjustPhi(phiHbyA, U, p_rgh); adjustPhi(phiHbyA, U, p_rgh);
@ -26,7 +26,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
); );

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -53,6 +53,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -23,7 +23,7 @@
+ phig + phig
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -31,7 +31,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
); );

View File

@ -1,8 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -50,6 +50,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -17,7 +17,7 @@
(fvc::interpolate(rho*HbyA) & mesh.Sf()) (fvc::interpolate(rho*HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
bool closedVolume = adjustPhi(phiHbyA, U, p_rgh); bool closedVolume = adjustPhi(phiHbyA, U, p_rgh);
@ -29,7 +29,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -1,7 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turb.divDevRhoReff(U) + turb.divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -18,6 +18,7 @@
PtrList<dimensionedScalar> rhoMax(fluidRegions.size()); PtrList<dimensionedScalar> rhoMax(fluidRegions.size());
PtrList<dimensionedScalar> rhoMin(fluidRegions.size()); PtrList<dimensionedScalar> rhoMin(fluidRegions.size());
PtrList<IOMRFZoneList> MRFfluid(fluidRegions.size());
PtrList<fv::IOoptionList> fluidFvOptions(fluidRegions.size()); PtrList<fv::IOoptionList> fluidFvOptions(fluidRegions.size());
// Populate fluid field pointer lists // Populate fluid field pointer lists
@ -205,6 +206,13 @@
) )
); );
Info<< " Adding MRF\n" << endl;
MRFfluid.set
(
i,
new IOMRFZoneList(fluidRegions[i])
);
Info<< " Adding fvOptions\n" << endl; Info<< " Adding fvOptions\n" << endl;
fluidFvOptions.set fluidFvOptions.set
( (

View File

@ -19,7 +19,7 @@
(fvc::interpolate(rho*HbyA) & mesh.Sf()) (fvc::interpolate(rho*HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
bool closedVolume = adjustPhi(phiHbyA, U, p_rgh); bool closedVolume = adjustPhi(phiHbyA, U, p_rgh);
@ -31,7 +31,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -12,6 +12,7 @@
volScalarField& p = thermo.p(); volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi(); const volScalarField& psi = thermo.psi();
IOMRFZoneList& MRF = MRFfluid[i];
fv::IOoptionList& fvOptions = fluidFvOptions[i]; fv::IOoptionList& fvOptions = fluidFvOptions[i];
const dimensionedScalar initialMass const dimensionedScalar initialMass

View File

@ -1,8 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turb.divDevRhoReff(U) + turb.divDevRhoReff(U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -15,6 +15,7 @@
List<scalar> initialMassFluid(fluidRegions.size()); List<scalar> initialMassFluid(fluidRegions.size());
List<bool> frozenFlowFluid(fluidRegions.size(), false); List<bool> frozenFlowFluid(fluidRegions.size(), false);
PtrList<IOMRFZoneList> MRFfluid(fluidRegions.size());
PtrList<fv::IOoptionList> fluidFvOptions(fluidRegions.size()); PtrList<fv::IOoptionList> fluidFvOptions(fluidRegions.size());
// Populate fluid field pointer lists // Populate fluid field pointer lists
@ -195,6 +196,13 @@
fluidRegions[i].solutionDict().subDict("PIMPLE"); fluidRegions[i].solutionDict().subDict("PIMPLE");
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]); pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
Info<< " Adding MRF\n" << endl;
MRFfluid.set
(
i,
new IOMRFZoneList(fluidRegions[i])
);
Info<< " Adding fvOptions\n" << endl; Info<< " Adding fvOptions\n" << endl;
fluidFvOptions.set fluidFvOptions.set
( (

View File

@ -23,7 +23,7 @@
+ phig + phig
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -31,7 +31,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -20,6 +20,7 @@
radiation::radiationModel& rad = radiation[i]; radiation::radiationModel& rad = radiation[i];
IOMRFZoneList& MRF = MRFfluid[i];
fv::IOoptionList& fvOptions = fluidFvOptions[i]; fv::IOoptionList& fvOptions = fluidFvOptions[i];
const dimensionedScalar initialMass const dimensionedScalar initialMass

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::ddt(U) fvm::ddt(U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(U)
+ turbulence->divDevReff(U) + turbulence->divDevReff(U)
== ==
fvOptions(U) fvOptions(U)

View File

@ -15,7 +15,7 @@ surfaceScalarField phiHbyA
+ rAUf*fvc::ddtCorr(U, phi) + rAUf*fvc::ddtCorr(U, phi)
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
adjustPhi(phiHbyA, U, p); adjustPhi(phiHbyA, U, p);
@ -25,7 +25,7 @@ setSnGrad<fixedFluxPressureFvPatchScalarField>
p.boundaryField(), p.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
); );

View File

@ -15,6 +15,8 @@ surfaceScalarField phiHbyA
+ rAUf*fvc::ddtCorr(U, Uf) + rAUf*fvc::ddtCorr(U, Uf)
); );
MRF.makeRelative(phiHbyA);
if (p.needReference()) if (p.needReference())
{ {
fvc::makeRelative(phiHbyA, U); fvc::makeRelative(phiHbyA, U);
@ -22,6 +24,17 @@ if (p.needReference())
fvc::makeAbsolute(phiHbyA, U); fvc::makeAbsolute(phiHbyA, U);
} }
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn

View File

@ -39,6 +39,7 @@ Description
#include "pimpleControl.H" #include "pimpleControl.H"
#include "CorrectPhi.H" #include "CorrectPhi.H"
#include "fvIOoptionList.H" #include "fvIOoptionList.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -53,6 +54,7 @@ int main(int argc, char *argv[])
#include "createFields.H" #include "createFields.H"
#include "createUf.H" #include "createUf.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "readTimeControls.H" #include "readTimeControls.H"
#include "CourantNo.H" #include "CourantNo.H"

View File

@ -39,8 +39,6 @@ Description
#include "turbulentTransportModel.H" #include "turbulentTransportModel.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "fvIOoptionList.H" #include "fvIOoptionList.H"
#include "IOporosityModelList.H"
#include "IOMRFZoneList.H"
#include "fixedFluxPressureFvPatchScalarField.H" #include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -54,6 +52,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,8 +1,11 @@
// Momentum predictor // Momentum predictor
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(U)
+ turbulence->divDevReff(U) + turbulence->divDevReff(U)
== ==
fvOptions(U) fvOptions(U)

View File

@ -4,7 +4,7 @@
HbyA = rAU*UEqn().H(); HbyA = rAU*UEqn().H();
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf()); surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
adjustPhi(phiHbyA, U, p); adjustPhi(phiHbyA, U, p);
tmp<volScalarField> rAtU(rAU); tmp<volScalarField> rAtU(rAU);

View File

@ -1,5 +1,7 @@
// Construct the Momentum equation // Construct the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)

View File

@ -1,6 +1,3 @@
IOMRFZoneList MRF(mesh);
MRF.correctBoundaryVelocity(U);
IOporosityModelList pZones(mesh); IOporosityModelList pZones(mesh);
Switch pressureImplicitPorosity(false); Switch pressureImplicitPorosity(false);

View File

@ -35,7 +35,6 @@ Description
#include "singlePhaseTransportModel.H" #include "singlePhaseTransportModel.H"
#include "turbulentTransportModel.H" #include "turbulentTransportModel.H"
#include "simpleControl.H" #include "simpleControl.H"
#include "IOMRFZoneList.H"
#include "IOporosityModelList.H" #include "IOporosityModelList.H"
#include "fvIOoptionList.H" #include "fvIOoptionList.H"
@ -50,8 +49,9 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createPorousZones.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createZones.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -46,6 +46,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho.dimensionedInternalField()*g rho.dimensionedInternalField()*g

View File

@ -58,6 +58,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"

View File

@ -18,7 +18,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -51,7 +51,7 @@ else
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
parcels.SU(U) parcels.SU(U)

View File

@ -18,7 +18,7 @@ surfaceScalarField phiHbyA
+ phig + phig
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency // Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField> setSnGrad<fixedFluxPressureFvPatchScalarField>
@ -26,7 +26,7 @@ setSnGrad<fixedFluxPressureFvPatchScalarField>
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField() *rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
); );

View File

@ -53,6 +53,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"

View File

@ -57,6 +57,7 @@ int main(int argc, char *argv[])
#include "readTimeControls.H" #include "readTimeControls.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRDeltaT.H" #include "createRDeltaT.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho.dimensionedInternalField()*g rho.dimensionedInternalField()*g

View File

@ -20,7 +20,7 @@
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
fvScalarMatrix pDDtEqn fvScalarMatrix pDDtEqn
( (

View File

@ -55,6 +55,7 @@ int main(int argc, char *argv[])
#include "createFields.H" #include "createFields.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"
#include "createClouds.H" #include "createClouds.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -1,6 +1,9 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::div(phi, U) fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho.dimensionedInternalField()*g rho.dimensionedInternalField()*g

View File

@ -15,7 +15,7 @@
fvc::interpolate(rho)*(fvc::interpolate(HbyA) & mesh.Sf()) fvc::interpolate(rho)*(fvc::interpolate(HbyA) & mesh.Sf())
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (simple.correctNonOrthogonal()) while (simple.correctNonOrthogonal())
{ {

View File

@ -56,6 +56,7 @@ int main(int argc, char *argv[])
#include "createFields.H" #include "createFields.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"
#include "createClouds.H" #include "createClouds.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn tmp<fvVectorMatrix> UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(phi, U)
+ fvm::div(phi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho.dimensionedInternalField()*g rho.dimensionedInternalField()*g

View File

@ -26,7 +26,7 @@ if (pimple.transonic())
) )
); );
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -59,7 +59,7 @@ else
) )
); );
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -27,7 +27,7 @@ if (pimple.transonic())
); );
fvc::makeRelative(phid, psi, U); fvc::makeRelative(phid, psi, U);
fvOptions.makeRelative(fvc::interpolate(psi), phid); MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
@ -59,7 +59,7 @@ else
); );
fvc::makeRelative(phiHbyA, rho, U); fvc::makeRelative(phiHbyA, rho, U);
fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {

View File

@ -56,6 +56,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"

View File

@ -54,6 +54,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createRhoUf.H" #include "createRhoUf.H"
#include "createClouds.H" #include "createClouds.H"

View File

@ -52,6 +52,7 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"

View File

@ -1,9 +1,11 @@
// Solve the Momentum equation // Solve the Momentum equation
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(rhoPhi, U)
+ fvm::div(rhoPhi, U) + MRF.DDt(rho, U)
+ fvc::div(UdmModel.tauDm()) + fvc::div(UdmModel.tauDm())
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==

View File

@ -58,6 +58,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -11,7 +11,7 @@
(fvc::interpolate(HbyA) & mesh.Sf()) (fvc::interpolate(HbyA) & mesh.Sf())
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi) + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
); );
fvOptions.makeRelative(phiHbyA); MRF.makeRelative(phiHbyA);
adjustPhi(phiHbyA, U, p_rgh); adjustPhi(phiHbyA, U, p_rgh);
surfaceScalarField phig surfaceScalarField phig
@ -29,7 +29,7 @@
p_rgh.boundaryField(), p_rgh.boundaryField(),
( (
phiHbyA.boundaryField() phiHbyA.boundaryField()
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) - MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
); );

View File

@ -63,6 +63,7 @@ int main(int argc, char *argv[])
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "correctPhi.H" #include "correctPhi.H"
#include "CourantNo.H" #include "CourantNo.H"

View File

@ -1,7 +1,9 @@
MRF.correctBoundaryVelocity(U);
fvVectorMatrix UEqn fvVectorMatrix UEqn
( (
fvm::ddt(rho, U) fvm::ddt(rho, U) + fvm::div(rhoPhi, U)
+ fvm::div(rhoPhi, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(rho, U) + turbulence->divDevRhoReff(rho, U)
== ==
fvOptions(rho, U) fvOptions(rho, U)

View File

@ -58,6 +58,7 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -11,6 +11,7 @@
(fvc::interpolate(HbyA) & mesh.Sf()) (fvc::interpolate(HbyA) & mesh.Sf())
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, Uf) + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, Uf)
); );
MRF.makeRelative(phiHbyA);
if (p_rgh.needReference()) if (p_rgh.needReference())
{ {

View File

@ -62,6 +62,7 @@ int main(int argc, char *argv[])
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "readTimeControls.H" #include "readTimeControls.H"
#include "correctPhi.H" #include "correctPhi.H"

Some files were not shown because too many files have changed in this diff Show More