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.
118 lines
3.3 KiB
C
118 lines
3.3 KiB
C
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
|
\\/ M anipulation |
|
|
-------------------------------------------------------------------------------
|
|
License
|
|
This file is part of OpenFOAM.
|
|
|
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
Application
|
|
driftFluxFoam
|
|
|
|
Description
|
|
Solver for 2 incompressible fluids using the mixture approach with the
|
|
drift-flux approximation for relative motion of the phases.
|
|
|
|
Used for simulating the settling of the dispersed phase and other similar
|
|
separation problems.
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#include "fvCFD.H"
|
|
#include "CMULES.H"
|
|
#include "subCycle.H"
|
|
#include "incompressibleTwoPhaseInteractingMixture.H"
|
|
#include "relativeVelocityModel.H"
|
|
#include "turbulenceModel.H"
|
|
#include "CompressibleTurbulenceModel.H"
|
|
#include "pimpleControl.H"
|
|
#include "fvIOoptionList.H"
|
|
#include "fixedFluxPressureFvPatchScalarField.H"
|
|
#include "gaussLaplacianScheme.H"
|
|
#include "uncorrectedSnGrad.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
#include "setRootCase.H"
|
|
|
|
#include "createTime.H"
|
|
#include "createMesh.H"
|
|
|
|
pimpleControl pimple(mesh);
|
|
|
|
#include "createFields.H"
|
|
#include "createMRF.H"
|
|
#include "createFvOptions.H"
|
|
#include "initContinuityErrs.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
Info<< "\nStarting time loop\n" << endl;
|
|
|
|
while (runTime.run())
|
|
{
|
|
#include "readTimeControls.H"
|
|
#include "CourantNo.H"
|
|
#include "setDeltaT.H"
|
|
|
|
runTime++;
|
|
|
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
|
|
|
// --- Pressure-velocity PIMPLE corrector loop
|
|
while (pimple.loop())
|
|
{
|
|
#include "alphaControls.H"
|
|
|
|
UdmModel.correct();
|
|
|
|
#include "alphaEqnSubCycle.H"
|
|
|
|
mixture.correct();
|
|
|
|
#include "UEqn.H"
|
|
|
|
// --- Pressure corrector loop
|
|
while (pimple.correct())
|
|
{
|
|
#include "pEqn.H"
|
|
}
|
|
|
|
if (pimple.turbCorr())
|
|
{
|
|
turbulence->correct();
|
|
}
|
|
}
|
|
|
|
runTime.write();
|
|
|
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
|
<< nl << endl;
|
|
}
|
|
|
|
Info<< "End\n" << endl;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
// ************************************************************************* //
|