From ef95b084edb5ec74cf9e198d3186787f59855c6e Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 29 Nov 2012 16:37:12 +0000 Subject: [PATCH] ENH: Added MRF and porosity functionality to pimpleFoam --- applications/solvers/incompressible/pimpleFoam/UEqn.H | 4 ++++ .../solvers/incompressible/pimpleFoam/createZones.H | 4 ++++ applications/solvers/incompressible/pimpleFoam/pEqn.H | 2 ++ .../solvers/incompressible/pimpleFoam/pimpleFoam.C | 10 ++++++++-- 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 applications/solvers/incompressible/pimpleFoam/createZones.H diff --git a/applications/solvers/incompressible/pimpleFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/UEqn.H index a6aef51daf..c274f6a2e8 100644 --- a/applications/solvers/incompressible/pimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/UEqn.H @@ -7,6 +7,10 @@ tmp UEqn + turbulence->divDevReff(U) ); +mrfZones.addCoriolis(UEqn()); + +pZones.addResistance(UEqn()); + UEqn().relax(); sources.constrain(UEqn()); diff --git a/applications/solvers/incompressible/pimpleFoam/createZones.H b/applications/solvers/incompressible/pimpleFoam/createZones.H new file mode 100644 index 0000000000..fcd02024d5 --- /dev/null +++ b/applications/solvers/incompressible/pimpleFoam/createZones.H @@ -0,0 +1,4 @@ + IOMRFZoneList mrfZones(mesh); + mrfZones.correctBoundaryVelocity(U); + + IOporosityModelList pZones(mesh); diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H index 444ad44503..1eb8590552 100644 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pEqn.H @@ -15,6 +15,8 @@ surfaceScalarField phiHbyA adjustPhi(phiHbyA, U, p); +mrfZones.relativeFlux(phiHbyA); + // Non-orthogonal pressure corrector loop while (pimple.correctNonOrthogonal()) { diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index 8d581934fb..d55af57e34 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -28,7 +28,10 @@ Description Large time-step transient solver for incompressible, flow using the PIMPLE (merged PISO-SIMPLE) algorithm. - Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + Sub-models include: + - turbulence modelling, i.e. laminar, RAS or LES + - porosity (explicit treatment) + - Multiple Reference Frame (MRF) \*---------------------------------------------------------------------------*/ @@ -37,6 +40,8 @@ Description #include "turbulenceModel.H" #include "pimpleControl.H" #include "IObasicSourceList.H" +#include "IOporosityModelList.H" +#include "IOMRFZoneList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,6 +51,7 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" + #include "createZones.H" #include "initContinuityErrs.H" pimpleControl pimple(mesh);