Backported heat transfer solvers and tutorials (vanilla OF 3.0.1) (in chtMultiRegionFoam and chtMultiRegionSimpleFoam only added setFluxRequired)

This commit is contained in:
Vanja Skuric 2016-05-27 17:46:05 +02:00
parent 7ffe7f3f46
commit 9811dd7d25
59 changed files with 166 additions and 296 deletions

View file

@ -31,6 +31,7 @@ Description
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "fvCFD.H" #include "fvCFD.H"
#include "pisoControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -41,6 +42,9 @@ int main(int argc, char *argv[])
# include "createTime.H" # include "createTime.H"
# include "createMesh.H" # include "createMesh.H"
pisoControl piso(mesh);
# include "readTransportProperties.H" # include "readTransportProperties.H"
# include "readGravitationalAcceleration.H" # include "readGravitationalAcceleration.H"
# include "createFields.H" # include "createFields.H"
@ -50,11 +54,10 @@ int main(int argc, char *argv[])
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;
for (runTime++; !runTime.end(); runTime++) while (runTime.loop())
{ {
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
# include "readPISOControls.H"
# include "CourantNo.H" # include "CourantNo.H"
fvVectorMatrix UEqn fvVectorMatrix UEqn
@ -70,7 +73,7 @@ int main(int argc, char *argv[])
// --- PISO loop // --- PISO loop
for (int corr = 0; corr < nCorr; corr++) while (piso.correct())
{ {
volScalarField rUA = 1.0/UEqn.A(); volScalarField rUA = 1.0/UEqn.A();
@ -80,7 +83,7 @@ int main(int argc, char *argv[])
adjustPhi(phi, U, p); adjustPhi(phi, U, p);
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) while (piso.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn
( (
@ -90,7 +93,7 @@ int main(int argc, char *argv[])
pEqn.setReference(pRefCell, pRefValue); pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(); pEqn.solve();
if (nonOrth == nNonOrthCorr) if (piso.finalNonOrthogonalIter())
{ {
phi -= pEqn.flux(); phi -= pEqn.flux();
} }

View file

@ -49,6 +49,7 @@
label pRefCell = 0; label pRefCell = 0;
scalar pRefValue = 0.0; scalar pRefValue = 0.0;
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
mesh.schemesDict().setFluxRequired(p.name());
Info<< "Reading/calculating field rho\n" << endl; Info<< "Reading/calculating field rho\n" << endl;
volScalarField rho volScalarField rho

View file

@ -9,7 +9,7 @@
UEqn.relax(); UEqn.relax();
if (momentumPredictor) if (piso.momentumPredictor())
{ {
solve solve
( (

View file

@ -48,6 +48,7 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "singlePhaseTransportModel.H" #include "singlePhaseTransportModel.H"
#include "turbulenceModel.H" #include "turbulenceModel.H"
#include "pisoControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -56,6 +57,9 @@ int main(int argc, char *argv[])
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
# include "createMesh.H" # include "createMesh.H"
pisoControl piso(mesh);
# include "readGravitationalAcceleration.H" # include "readGravitationalAcceleration.H"
# include "createFields.H" # include "createFields.H"
# include "initContinuityErrs.H" # include "initContinuityErrs.H"
@ -72,7 +76,6 @@ int main(int argc, char *argv[])
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
# include "readTimeControls.H" # include "readTimeControls.H"
# include "readPISOControls.H"
# include "CourantNo.H" # include "CourantNo.H"
# include "setDeltaT.H" # include "setDeltaT.H"
@ -80,7 +83,7 @@ int main(int argc, char *argv[])
# include "TEqn.H" # include "TEqn.H"
// --- PISO loop // --- PISO loop
for (int corr = 0; corr < nCorr; corr++) while (piso.correct())
{ {
# include "pEqn.H" # include "pEqn.H"
} }

View file

@ -61,6 +61,7 @@
pRefCell, pRefCell,
pRefValue pRefValue
); );
mesh.schemesDict().setFluxRequired(p.name());
// Kinematic density for buoyancy force // Kinematic density for buoyancy force

View file

@ -12,23 +12,16 @@
phi = phiU + rUAf*fvc::interpolate(rhok)*(g & mesh.Sf()); phi = phiU + rUAf*fvc::interpolate(rhok)*(g & mesh.Sf());
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) while (piso.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn
( (
fvm::laplacian(rUAf, p) == fvc::div(phi) fvm::laplacian(rUAf, p) == fvc::div(phi)
); );
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr) pEqn.solve(mesh.solutionDict().solver(p.select(piso.finalInnerIter())));
{
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
}
else
{
pEqn.solve(mesh.solutionDict().solver(p.name()));
}
if (nonOrth == nNonOrthCorr) if (piso.finalNonOrthogonalIter())
{ {
phi -= pEqn.flux(); phi -= pEqn.flux();
} }

View file

@ -14,8 +14,7 @@
TEqn.relax(); TEqn.relax();
eqnResidual = TEqn.solve().initialResidual(); TEqn.solve();
maxResidual = max(eqnResidual, maxResidual);
rhok = 1.0 - beta*(T - TRef); rhok = 1.0 - beta*(T - TRef);
} }

View file

@ -8,7 +8,7 @@
UEqn().relax(); UEqn().relax();
eqnResidual = solve solve
( (
UEqn() UEqn()
== ==
@ -19,6 +19,4 @@
- fvc::snGrad(p)*mesh.magSf() - fvc::snGrad(p)*mesh.magSf()
) )
) )
).initialResidual(); );
maxResidual = max(eqnResidual, maxResidual);

View file

@ -48,6 +48,7 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "singlePhaseTransportModel.H" #include "singlePhaseTransportModel.H"
#include "RASModel.H" #include "RASModel.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -56,6 +57,9 @@ int main(int argc, char *argv[])
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
simpleControl simple(mesh);
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
@ -64,15 +68,10 @@ int main(int argc, char *argv[])
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;
while (runTime.loop()) while (simple.loop())
{ {
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
#include "readSIMPLEControls.H"
#include "initConvergenceCheck.H"
p.storePrevIter();
// Pressure-velocity SIMPLE corrector // Pressure-velocity SIMPLE corrector
{ {
#include "UEqn.H" #include "UEqn.H"
@ -87,8 +86,6 @@ int main(int argc, char *argv[])
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl; << nl << endl;
#include "convergenceCheck.H"
} }
Info<< "End\n" << endl; Info<< "End\n" << endl;

View file

@ -1,9 +0,0 @@
// check convergence
if (maxResidual < convergenceCriterion)
{
Info<< "reached convergence criterion: " << convergenceCriterion << endl;
runTime.writeAndEnd();
Info<< "latestTime = " << runTime.timeName() << endl;
}

View file

@ -64,7 +64,7 @@
pRefCell, pRefCell,
pRefValue pRefValue
); );
mesh.schemesDict().setFluxRequired(p.name());
// Kinematic density for buoyancy force // Kinematic density for buoyancy force
volScalarField rhok volScalarField rhok

View file

@ -1,7 +0,0 @@
// initialize values for convergence checks
scalar eqnResidual = 1, maxResidual = 0;
scalar convergenceCriterion = 0;
simple.readIfPresent("convergence", convergenceCriterion);

View file

@ -12,7 +12,7 @@
rUAf*fvc::interpolate(rhok)*(g & mesh.Sf()); rUAf*fvc::interpolate(rhok)*(g & mesh.Sf());
phi += buoyancyPhi; phi += buoyancyPhi;
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) while (simple.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn
( (
@ -21,18 +21,9 @@
pEqn.setReference(pRefCell, pRefValue); pEqn.setReference(pRefCell, pRefValue);
// retain the residual from the first iteration
if (nonOrth == 0)
{
eqnResidual = pEqn.solve().initialResidual();
maxResidual = max(eqnResidual, maxResidual);
}
else
{
pEqn.solve(); pEqn.solve();
}
if (nonOrth == nNonOrthCorr) if (simple.finalNonOrthogonalIter())
{ {
// Calculate the conservative fluxes // Calculate the conservative fluxes
phi -= pEqn.flux(); phi -= pEqn.flux();

View file

@ -9,7 +9,7 @@
UEqn.relax(); UEqn.relax();
if (momentumPredictor) if (piso.momentumPredictor())
{ {
solve solve
( (

View file

@ -37,6 +37,7 @@ Description
#include "basicRhoThermo.H" #include "basicRhoThermo.H"
#include "turbulenceModel.H" #include "turbulenceModel.H"
#include "fixedGradientFvPatchFields.H" #include "fixedGradientFvPatchFields.H"
#include "pisoControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -45,6 +46,9 @@ int main(int argc, char *argv[])
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
# include "createMesh.H" # include "createMesh.H"
pisoControl piso(mesh);
# include "readGravitationalAcceleration.H" # include "readGravitationalAcceleration.H"
# include "createFields.H" # include "createFields.H"
# include "initContinuityErrs.H" # include "initContinuityErrs.H"
@ -59,7 +63,6 @@ int main(int argc, char *argv[])
while (runTime.run()) while (runTime.run())
{ {
# include "readTimeControls.H" # include "readTimeControls.H"
# include "readPISOControls.H"
# include "compressibleCourantNo.H" # include "compressibleCourantNo.H"
# include "setDeltaT.H" # include "setDeltaT.H"
@ -75,7 +78,7 @@ int main(int argc, char *argv[])
// --- PISO loop // --- PISO loop
for (int corr = 0; corr < nCorr; corr++) while (piso.correct())
{ {
# include "pEqn.H" # include "pEqn.H"
} }

View file

@ -65,3 +65,5 @@
dimensionedScalar initialMass = fvc::domainIntegrate(rho); dimensionedScalar initialMass = fvc::domainIntegrate(rho);
dimensionedScalar totalVolume = sum(mesh.V()); dimensionedScalar totalVolume = sum(mesh.V());
mesh.schemesDict().setFluxRequired(p.name());

View file

@ -23,7 +23,7 @@
phi = phiU + rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf()); phi = phiU + rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf());
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) while (piso.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn
( (
@ -32,16 +32,9 @@
- fvm::laplacian(rhorUAf, p) - fvm::laplacian(rhorUAf, p)
); );
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr) pEqn.solve(mesh.solutionDict().solver(p.select(piso.finalInnerIter())));
{
pEqn.solve(mesh.solutionDict().solver(p.name() + "Final"));
}
else
{
pEqn.solve(mesh.solutionDict().solver(p.name()));
}
if (nonOrth == nNonOrthCorr) if (piso.finalNonOrthogonalIter())
{ {
phi += pEqn.flux(); phi += pEqn.flux();
} }

View file

@ -8,7 +8,7 @@
UEqn().relax(); UEqn().relax();
eqnResidual = solve solve
( (
UEqn() UEqn()
== ==
@ -17,6 +17,4 @@
fvc::interpolate(rho)*(g & mesh.Sf()) fvc::interpolate(rho)*(g & mesh.Sf())
- fvc::snGrad(p)*mesh.magSf() - fvc::snGrad(p)*mesh.magSf()
) )
).initialResidual(); );
maxResidual = max(eqnResidual, maxResidual);

View file

@ -33,6 +33,7 @@ Description
#include "basicPsiThermo.H" #include "basicPsiThermo.H"
#include "RASModel.H" #include "RASModel.H"
#include "fixedGradientFvPatchFields.H" #include "fixedGradientFvPatchFields.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -41,6 +42,9 @@ int main(int argc, char *argv[])
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
simpleControl simple(mesh);
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
@ -49,16 +53,10 @@ int main(int argc, char *argv[])
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;
while (runTime.loop()) while (simple.loop())
{ {
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
#include "readSIMPLEControls.H"
#include "initConvergenceCheck.H"
p.storePrevIter();
rho.storePrevIter();
// Pressure-velocity SIMPLE corrector // Pressure-velocity SIMPLE corrector
{ {
#include "UEqn.H" #include "UEqn.H"
@ -73,8 +71,6 @@ int main(int argc, char *argv[])
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl; << nl << endl;
#include "convergenceCheck.H"
} }
Info<< "End\n" << endl; Info<< "End\n" << endl;

View file

@ -1,9 +0,0 @@
// check convergence
if (maxResidual < convergenceCriterion)
{
Info<< "reached convergence criterion: " << convergenceCriterion << endl;
runTime.writeAndEnd();
Info<< "latestTime = " << runTime.timeName() << endl;
}

View file

@ -67,3 +67,5 @@
dimensionedScalar initialMass = fvc::domainIntegrate(rho); dimensionedScalar initialMass = fvc::domainIntegrate(rho);
mesh.schemesDict().setFluxRequired(p.name());

View file

@ -11,8 +11,7 @@
hEqn.relax(); hEqn.relax();
eqnResidual = hEqn.solve().initialResidual(); hEqn.solve();
maxResidual = max(eqnResidual, maxResidual);
thermo.correct(); thermo.correct();
} }

View file

@ -1,7 +0,0 @@
// initialize values for convergence checks
scalar eqnResidual = 1, maxResidual = 0;
scalar convergenceCriterion = 0;
simple.readIfPresent("convergence", convergenceCriterion);

View file

@ -14,7 +14,7 @@
rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf()); rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf());
phi += buoyancyPhi; phi += buoyancyPhi;
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) while (simple.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix pEqn
( (
@ -23,18 +23,9 @@
pEqn.setReference(pRefCell, pRefValue); pEqn.setReference(pRefCell, pRefValue);
// retain the residual from the first iteration
if (nonOrth == 0)
{
eqnResidual = pEqn.solve().initialResidual();
maxResidual = max(eqnResidual, maxResidual);
}
else
{
pEqn.solve(); pEqn.solve();
}
if (nonOrth == nNonOrthCorr) if (simple.finalNonOrthogonalIter())
{ {
// For closed-volume cases adjust the pressure and density levels // For closed-volume cases adjust the pressure and density levels
// to obey overall mass continuity // to obey overall mass continuity

View file

@ -35,6 +35,7 @@ Description
#include "RASModel.H" #include "RASModel.H"
#include "fixedGradientFvPatchFields.H" #include "fixedGradientFvPatchFields.H"
#include "radiationModel.H" #include "radiationModel.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -43,6 +44,9 @@ int main(int argc, char *argv[])
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
# include "createMesh.H" # include "createMesh.H"
simpleControl simple(mesh);
# include "readGravitationalAcceleration.H" # include "readGravitationalAcceleration.H"
# include "createFields.H" # include "createFields.H"
# include "createRadiationModel.H" # include "createRadiationModel.H"
@ -52,16 +56,10 @@ int main(int argc, char *argv[])
Info<< "\nStarting time loop\n" << endl; Info<< "\nStarting time loop\n" << endl;
while (runTime.loop()) while (simple.loop())
{ {
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
# include "readSIMPLEControls.H"
# include "initConvergenceCheck.H"
p.storePrevIter();
rho.storePrevIter();
// Pressure-velocity SIMPLE corrector // Pressure-velocity SIMPLE corrector
{ {
# include "UEqn.H" # include "UEqn.H"
@ -76,8 +74,6 @@ int main(int argc, char *argv[])
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl; << nl << endl;
# include "convergenceCheck.H"
} }
Info<< "End\n" << endl; Info<< "End\n" << endl;

View file

@ -12,8 +12,7 @@
hEqn.relax(); hEqn.relax();
eqnResidual = hEqn.solve().initialResidual(); hEqn.solve();
maxResidual = max(eqnResidual, maxResidual);
thermo.correct(); thermo.correct();

View file

@ -15,3 +15,5 @@
volScalarField& h = thermo.h(); volScalarField& h = thermo.h();
const dimensionedScalar massIni("massIni", dimMass, initialMassFluid[i]); const dimensionedScalar massIni("massIni", dimMass, initialMassFluid[i]);
mesh.schemesDict().setFluxRequired(p.name());

View file

@ -22,3 +22,5 @@
const label pRefCell = pRefCellFluid[i]; const label pRefCell = pRefCellFluid[i];
const scalar pRefValue = pRefValueFluid[i]; const scalar pRefValue = pRefValueFluid[i];
mesh.schemesDict().setFluxRequired(p.name());

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -44,7 +44,6 @@ FoamFile
frontAndBack frontAndBack
{ {
type empty; type empty;
physicalType empty;
nFaces 800; nFaces 800;
startFace 840; startFace 840;
} }

View file

@ -52,10 +52,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -16,9 +16,29 @@ FoamFile
solvers solvers
{ {
p ICCG 1e-06 0; p
U BICCG 1e-05 0; {
T BICCG 1e-05 0; solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
T
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
} }
PISO PISO

View file

@ -4,4 +4,5 @@
. $WM_PROJECT_DIR/bin/tools/CleanFunctions . $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase cleanCase
rm -f constant/polyMesh/boundary
cp 0/T.org 0/T cp 0/T.org 0/T

View file

@ -34,7 +34,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear; div((nuEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -58,10 +58,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p ;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -4,4 +4,5 @@
. $WM_PROJECT_DIR/bin/tools/CleanFunctions . $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase cleanCase
rm -f constant/polyMesh/boundary
cp 0/T.org 0/T cp 0/T.org 0/T

View file

@ -34,7 +34,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear; div((nuEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -58,10 +58,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p ;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -15,43 +15,61 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6 9
( (
maxY maxY
{ {
type empty; type empty;
nFaces 400; nFaces 0;
startFace 22800; startFace 59065;
} }
minX minX
{ {
type empty; type empty;
nFaces 400; nFaces 0;
startFace 23200; startFace 59065;
} }
maxX maxX
{ {
type empty; type empty;
nFaces 400; nFaces 0;
startFace 23600; startFace 59065;
} }
minY minY
{ {
type empty; type empty;
nFaces 400; nFaces 0;
startFace 24000; startFace 59065;
} }
ground ground
{ {
type wall; type wall;
nFaces 400; nFaces 590;
startFace 24400; startFace 59065;
} }
maxZ maxZ
{ {
type empty; type empty;
nFaces 400; nFaces 0;
startFace 24800; startFace 59655;
}
igloo_region0
{
type wall;
nFaces 2260;
startFace 59655;
}
twoFridgeFreezers_seal_0
{
type wall;
nFaces 1344;
startFace 61915;
}
twoFridgeFreezers_herring_1
{
type wall;
nFaces 1116;
startFace 63259;
} }
) )

View file

@ -34,7 +34,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear; div((nuEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -58,10 +58,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p ;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -35,7 +35,7 @@ divSchemes
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(phiU,p) Gauss linear; div(phiU,p) Gauss linear;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -59,10 +59,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p ;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -24,27 +24,31 @@ boundaryField
floor floor
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
ceiling ceiling
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
fixedWalls fixedWalls
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
} }
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -38,4 +38,5 @@ boundaryField
} }
} }
// ************************************************************************* // // ************************************************************************* //

View file

@ -33,7 +33,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -57,10 +57,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -24,35 +24,40 @@ boundaryField
box box
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
floor floor
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
ceiling ceiling
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
fixedWalls fixedWalls
{ {
type compressible::epsilonWallFunction; type compressible::epsilonWallFunction;
refValue uniform 0;
value uniform 0.01;
Cmu 0.09; Cmu 0.09;
kappa 0.41; kappa 0.41;
E 9.8; E 9.8;
value uniform 0.01;
} }
} }
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
@ -43,4 +43,5 @@ boundaryField
} }
} }
// ************************************************************************* // // ************************************************************************* //

View file

@ -33,7 +33,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -58,10 +58,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -35,7 +35,7 @@ divSchemes
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div(Ji,Ii_h) Gauss linearUpwind Gauss linear; //Gauss upwind; div(Ji,Ii_h) Gauss linearUpwind Gauss linear; //Gauss upwind;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -60,10 +60,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -35,7 +35,7 @@ divSchemes
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div(Ji,Ii_h) Gauss linearUpwind Gauss linear; //Gauss upwind; div(Ji,Ii_h) Gauss linearUpwind Gauss linear; //Gauss upwind;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -60,10 +60,4 @@ snGradSchemes
default corrected; default corrected;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -36,7 +36,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -61,10 +61,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -36,7 +36,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -60,10 +60,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -45,9 +45,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | foam-extend: Open Source CFD | | \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 | | \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org | | \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | | | \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {

View file

@ -36,7 +36,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -60,10 +60,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -38,8 +38,4 @@ snGradSchemes
{ {
} }
fluxRequired
{
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -45,9 +45,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -45,9 +45,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -45,9 +45,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -36,7 +36,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -60,10 +60,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -38,8 +38,4 @@ snGradSchemes
{ {
} }
fluxRequired
{
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -45,9 +45,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
}
// ************************************************************************* // // ************************************************************************* //

View file

@ -34,7 +34,7 @@ divSchemes
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind; div(phi,R) Gauss upwind;
div(R) Gauss linear; div(R) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear;
} }
laplacianSchemes laplacianSchemes
@ -58,10 +58,4 @@ snGradSchemes
default limited 0.333; default limited 0.333;
} }
fluxRequired
{
default no;
p;
}
// ************************************************************************* // // ************************************************************************* //