mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
more updates...
This commit is contained in:
@ -1,8 +1,8 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 1.5 |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
FoamFile
|
FoamFile
|
||||||
@ -10,6 +10,7 @@ FoamFile
|
|||||||
version 2.0;
|
version 2.0;
|
||||||
format binary;
|
format binary;
|
||||||
class polyBoundaryMesh;
|
class polyBoundaryMesh;
|
||||||
|
location "constant/polyMesh";
|
||||||
object boundary;
|
object boundary;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
transportModel Newtonian;
|
||||||
|
|
||||||
|
nu nu [ 0 2 -1 0 0 0 0 ] 1e-05;
|
||||||
|
|
||||||
|
CrossPowerLawCoeffs
|
||||||
|
{
|
||||||
|
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
|
||||||
|
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
|
||||||
|
m m [ 0 0 1 0 0 0 0 ] 1;
|
||||||
|
n n [ 0 0 0 0 0 0 0 ] 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
BirdCarreauCoeffs
|
||||||
|
{
|
||||||
|
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
|
||||||
|
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
|
||||||
|
k k [ 0 0 1 0 0 0 0 ] 0;
|
||||||
|
n n [ 0 0 0 0 0 0 0 ] 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -8,14 +8,14 @@
|
|||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format binary;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "constant";
|
||||||
object transportProperties;
|
object turbulenceProperties;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
nu nu [ 0 2 -1 0 0 0 0 ] 1e-05;
|
simulationType laminar;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
@ -30,6 +30,7 @@ divSchemes
|
|||||||
{
|
{
|
||||||
default none;
|
default none;
|
||||||
div(phi,U) Gauss linear;
|
div(phi,U) Gauss linear;
|
||||||
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
laplacianSchemes
|
laplacianSchemes
|
||||||
@ -39,6 +40,7 @@ laplacianSchemes
|
|||||||
laplacian(rAU,pcorr) Gauss linear corrected;
|
laplacian(rAU,pcorr) Gauss linear corrected;
|
||||||
laplacian(rAU,p) Gauss linear corrected;
|
laplacian(rAU,p) Gauss linear corrected;
|
||||||
laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
|
laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
|
||||||
|
laplacian(nuEff,U) Gauss linear uncorrected;
|
||||||
}
|
}
|
||||||
|
|
||||||
interpolationSchemes
|
interpolationSchemes
|
||||||
@ -33,12 +33,16 @@ boundaryField
|
|||||||
|
|
||||||
innerWall
|
innerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type epsilonWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 14.855;
|
||||||
}
|
}
|
||||||
|
|
||||||
outerWall
|
outerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type epsilonWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 14.855;
|
||||||
}
|
}
|
||||||
|
|
||||||
cyclic
|
cyclic
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 1.5 |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
FoamFile
|
FoamFile
|
||||||
@ -10,6 +10,7 @@ FoamFile
|
|||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object k;
|
object k;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -25,26 +26,26 @@ boundaryField
|
|||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 0.375;
|
value uniform 0.375;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
innerWall
|
innerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type kQRWallFunction;
|
||||||
|
value uniform 0.375;
|
||||||
}
|
}
|
||||||
|
|
||||||
outerWall
|
outerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type kQRWallFunction;
|
||||||
|
value uniform 0.375;
|
||||||
}
|
}
|
||||||
|
|
||||||
cyclic
|
cyclic
|
||||||
{
|
{
|
||||||
type cyclic;
|
type cyclic;
|
||||||
|
value uniform 0.375;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
54
tutorials/incompressible/simpleSRFFoam/mixer/0/nut
Normal file
54
tutorials/incompressible/simpleSRFFoam/mixer/0/nut
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object nut;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 2 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
innerWall
|
||||||
|
{
|
||||||
|
type nutWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
outerWall
|
||||||
|
{
|
||||||
|
type nutWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
cyclic
|
||||||
|
{
|
||||||
|
type cyclic;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -1,8 +1,8 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 1.5 |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
FoamFile
|
FoamFile
|
||||||
@ -10,6 +10,7 @@ FoamFile
|
|||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
object omega;
|
object omega;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -25,26 +26,28 @@ boundaryField
|
|||||||
type fixedValue;
|
type fixedValue;
|
||||||
value uniform 3.5;
|
value uniform 3.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
innerWall
|
innerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type omegaWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 3.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
outerWall
|
outerWall
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type omegaWallFunction;
|
||||||
|
U Urel;
|
||||||
|
value uniform 3.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
cyclic
|
cyclic
|
||||||
{
|
{
|
||||||
type cyclic;
|
type cyclic;
|
||||||
|
value uniform 3.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
-I$(LIB_SRC)/turbulenceModels \
|
||||||
-I$(LIB_SRC)/transportModels
|
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \
|
||||||
|
-I$(LIB_SRC)/transportModels \
|
||||||
|
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lincompressibleRASModels \
|
-lincompressibleRASModels \
|
||||||
|
|||||||
16
tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/UEqn.H
Normal file
16
tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/UEqn.H
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Momentum predictor
|
||||||
|
tmp<fvVectorMatrix> UrelEqn
|
||||||
|
(
|
||||||
|
fvm::div(phi, Urel)
|
||||||
|
+ turbulence->divDevReff(Urel)
|
||||||
|
+ SRF->Su()
|
||||||
|
);
|
||||||
|
|
||||||
|
UrelEqn().relax();
|
||||||
|
|
||||||
|
eqnResidual = solve
|
||||||
|
(
|
||||||
|
UrelEqn() == -fvc::grad(p)
|
||||||
|
).initialResidual();
|
||||||
|
|
||||||
|
maxResidual = max(eqnResidual, maxResidual);
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
// check convergence
|
||||||
|
|
||||||
|
if (maxResidual < convergenceCriterion)
|
||||||
|
{
|
||||||
|
Info<< "reached convergence criterion: " << convergenceCriterion << endl;
|
||||||
|
runTime.writeAndEnd();
|
||||||
|
Info<< "latestTime = " << runTime.timeName() << endl;
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
// initialize values for convergence checks
|
||||||
|
|
||||||
|
scalar eqnResidual = 1, maxResidual = 0;
|
||||||
|
scalar convergenceCriterion = 0;
|
||||||
|
|
||||||
|
simple.readIfPresent("convergence", convergenceCriterion);
|
||||||
|
|
||||||
34
tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/pEqn.H
Normal file
34
tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/pEqn.H
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
p.boundaryField().updateCoeffs();
|
||||||
|
volScalarField AUrel = UrelEqn().A();
|
||||||
|
Urel = UrelEqn().H()/AUrel;
|
||||||
|
UrelEqn.clear();
|
||||||
|
phi = fvc::interpolate(Urel) & mesh.Sf();
|
||||||
|
adjustPhi(phi, Urel, p);
|
||||||
|
|
||||||
|
// Non-orthogonal pressure corrector loop
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::laplacian(1.0/AUrel, p) == fvc::div(phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi -= pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# include "continuityErrs.H"
|
||||||
|
|
||||||
|
// Explicitly relax pressure for momentum corrector
|
||||||
|
p.relax();
|
||||||
|
|
||||||
|
// Momentum corrector
|
||||||
|
Urel -= fvc::grad(p)/AUrel;
|
||||||
|
Urel.correctBoundaryConditions();
|
||||||
|
}
|
||||||
@ -32,8 +32,8 @@ Description
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "incompressible/RASModel/RASModel.H"
|
#include "RASModel.H"
|
||||||
#include "SRFModel.H"
|
#include "SRFModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -42,7 +42,6 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
|
|
||||||
# include "setRootCase.H"
|
# include "setRootCase.H"
|
||||||
|
|
||||||
# include "createTime.H"
|
# include "createTime.H"
|
||||||
# include "createMesh.H"
|
# include "createMesh.H"
|
||||||
# include "createFields.H"
|
# include "createFields.H"
|
||||||
@ -59,55 +58,14 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
# include "readSIMPLEControls.H"
|
# include "readSIMPLEControls.H"
|
||||||
|
# include "initConvergenceCheck.H"
|
||||||
|
|
||||||
p.storePrevIter();
|
p.storePrevIter();
|
||||||
|
|
||||||
// Pressure-velocity SIMPLE corrector
|
// Pressure-velocity SIMPLE corrector
|
||||||
{
|
{
|
||||||
// Momentum predictor
|
# include "UEqn.H"
|
||||||
tmp<fvVectorMatrix> UrelEqn
|
# include "pEqn.H"
|
||||||
(
|
|
||||||
fvm::div(phi, Urel)
|
|
||||||
+ turbulence->divDevReff(Urel)
|
|
||||||
+ SRF->Su()
|
|
||||||
);
|
|
||||||
|
|
||||||
UrelEqn().relax();
|
|
||||||
|
|
||||||
solve(UrelEqn() == -fvc::grad(p));
|
|
||||||
|
|
||||||
p.boundaryField().updateCoeffs();
|
|
||||||
volScalarField AUrel = UrelEqn().A();
|
|
||||||
Urel = UrelEqn().H()/AUrel;
|
|
||||||
UrelEqn.clear();
|
|
||||||
phi = fvc::interpolate(Urel) & mesh.Sf();
|
|
||||||
adjustPhi(phi, Urel, p);
|
|
||||||
|
|
||||||
// Non-orthogonal pressure corrector loop
|
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
|
||||||
{
|
|
||||||
fvScalarMatrix pEqn
|
|
||||||
(
|
|
||||||
fvm::laplacian(1.0/AUrel, p) == fvc::div(phi)
|
|
||||||
);
|
|
||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
|
||||||
pEqn.solve();
|
|
||||||
|
|
||||||
if (nonOrth == nNonOrthCorr)
|
|
||||||
{
|
|
||||||
phi -= pEqn.flux();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# include "continuityErrs.H"
|
|
||||||
|
|
||||||
// Explicitly relax pressure for momentum corrector
|
|
||||||
p.relax();
|
|
||||||
|
|
||||||
// Momentum corrector
|
|
||||||
Urel -= fvc::grad(p)/AUrel;
|
|
||||||
Urel.correctBoundaryConditions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
turbulence->correct();
|
turbulence->correct();
|
||||||
@ -134,6 +92,8 @@ 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;
|
||||||
|
|||||||
Reference in New Issue
Block a user