mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merged reactingParcelFilmFoam into reactingParcelFoam
The combined solver includes the most advanced and general functionality from
each solver including:
Continuous phase
Lagrangian multiphase parcels
Optional film
Continuous and Lagrangian phase reactions
Radiation
Strong buoyancy force support by solving for p_rgh
The reactingParcelFoam and reactingParcelFilmFoam tutorials have been combined
and updated.
This commit is contained in:
committed by
Andrew Heather
parent
5cb3bb7bc6
commit
791e1ca2d2
@ -1,4 +1,4 @@
|
||||
const volScalarField& psi = thermo.psi();
|
||||
const volScalarField& T = thermo.T();
|
||||
filmModelType& surfaceFilm = tsurfaceFilm();
|
||||
regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
|
||||
const label inertIndex(composition.species()[inertSpecie]);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
Info<< "\nConstructing surface film model" << endl;
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
|
||||
|
||||
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
|
||||
autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
|
||||
(
|
||||
regionModels::surfaceFilmModel::New(mesh, g)
|
||||
);
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
reactingParcelFilmFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/reactingParcelFilmFoam
|
||||
@ -1,47 +0,0 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I../reactingParcelFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I${LIB_SRC}/sampling/lnInclude \
|
||||
-I${LIB_SRC}/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
||||
-I$(LIB_SRC)/ODE/lnInclude \
|
||||
-I$(LIB_SRC)/combustionModels/lnInclude \
|
||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lsampling \
|
||||
-lmeshTools \
|
||||
-lturbulenceModels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lspecie \
|
||||
-lcompressibleTransportModels \
|
||||
-lfluidThermophysicalModels \
|
||||
-lreactionThermophysicalModels \
|
||||
-lSLGThermo \
|
||||
-lchemistryModel \
|
||||
-lregionModels \
|
||||
-lradiationModels \
|
||||
-lsurfaceFilmModels \
|
||||
-lsurfaceFilmDerivedFvPatchFields \
|
||||
-llagrangianIntermediate \
|
||||
-llagrangianTurbulence \
|
||||
-lODE \
|
||||
-lcombustionModels
|
||||
@ -1,34 +0,0 @@
|
||||
MRF.correctBoundaryVelocity(U);
|
||||
|
||||
fvVectorMatrix UEqn
|
||||
(
|
||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||
+ MRF.DDt(rho, U)
|
||||
+ turbulence->divDevRhoReff(U)
|
||||
==
|
||||
parcels.SU(U)
|
||||
+ fvOptions(rho, U)
|
||||
);
|
||||
|
||||
UEqn.relax();
|
||||
|
||||
fvOptions.constrain(UEqn);
|
||||
|
||||
if (pimple.momentumPredictor())
|
||||
{
|
||||
solve
|
||||
(
|
||||
UEqn
|
||||
==
|
||||
fvc::reconstruct
|
||||
(
|
||||
(
|
||||
- ghf*fvc::snGrad(rho)
|
||||
- fvc::snGrad(p_rgh)
|
||||
)*mesh.magSf()
|
||||
)
|
||||
);
|
||||
|
||||
fvOptions.correct(U);
|
||||
K = 0.5*magSqr(U);
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
Info<< "\nConstructing reacting cloud" << endl;
|
||||
basicReactingCloud parcels
|
||||
(
|
||||
"reactingCloud1",
|
||||
rho,
|
||||
U,
|
||||
g,
|
||||
slgThermo
|
||||
);
|
||||
@ -1,143 +0,0 @@
|
||||
#include "createRDeltaT.H"
|
||||
|
||||
Info<< "Creating combustion model\n" << endl;
|
||||
|
||||
autoPtr<combustionModels::psiCombustionModel> combustion
|
||||
(
|
||||
combustionModels::psiCombustionModel::New(mesh)
|
||||
);
|
||||
|
||||
psiReactionThermo& thermo = combustion->thermo();
|
||||
thermo.validate(args.executable(), "h", "e");
|
||||
|
||||
SLGThermo slgThermo(mesh, thermo);
|
||||
|
||||
basicSpecieMixture& composition = thermo.composition();
|
||||
PtrList<volScalarField>& Y = composition.Y();
|
||||
|
||||
const word inertSpecie(thermo.lookup("inertSpecie"));
|
||||
if (!composition.species().found(inertSpecie))
|
||||
{
|
||||
FatalIOErrorIn(args.executable().c_str(), thermo)
|
||||
<< "Inert specie " << inertSpecie << " not found in available species "
|
||||
<< composition.species()
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
|
||||
Info<< "Creating field rho\n" << endl;
|
||||
volScalarField rho
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rho",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
thermo.rho()
|
||||
);
|
||||
|
||||
volScalarField& p = thermo.p();
|
||||
|
||||
Info<< "\nReading field U\n" << endl;
|
||||
volVectorField U
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"U",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
);
|
||||
|
||||
#include "compressibleCreatePhi.H"
|
||||
|
||||
Info<< "Creating turbulence model\n" << endl;
|
||||
autoPtr<compressible::turbulenceModel> turbulence
|
||||
(
|
||||
compressible::turbulenceModel::New
|
||||
(
|
||||
rho,
|
||||
U,
|
||||
phi,
|
||||
thermo
|
||||
)
|
||||
);
|
||||
|
||||
// Set the turbulence into the combustion model
|
||||
combustion->setTurbulence(turbulence());
|
||||
|
||||
#include "readGravitationalAcceleration.H"
|
||||
#include "readhRef.H"
|
||||
#include "gh.H"
|
||||
|
||||
|
||||
volScalarField p_rgh
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"p_rgh",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
);
|
||||
|
||||
// Force p_rgh to be consistent with p
|
||||
p_rgh = p - rho*gh;
|
||||
|
||||
mesh.setFluxRequired(p_rgh.name());
|
||||
|
||||
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
|
||||
|
||||
forAll(Y, i)
|
||||
{
|
||||
fields.add(Y[i]);
|
||||
}
|
||||
fields.add(thermo.he());
|
||||
|
||||
IOdictionary additionalControlsDict
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"additionalControls",
|
||||
runTime.constant(),
|
||||
mesh,
|
||||
IOobject::MUST_READ_IF_MODIFIED,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
|
||||
Switch solvePrimaryRegion
|
||||
(
|
||||
additionalControlsDict.lookup("solvePrimaryRegion")
|
||||
);
|
||||
|
||||
volScalarField Qdot
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Qdot",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
|
||||
);
|
||||
|
||||
#include "createDpdt.H"
|
||||
|
||||
#include "createK.H"
|
||||
|
||||
#include "createMRF.H"
|
||||
#include "createClouds.H"
|
||||
#include "createRadiationModel.H"
|
||||
#include "createSurfaceFilmModel.H"
|
||||
@ -1,5 +0,0 @@
|
||||
Info<< "\nConstructing surface film model" << endl;
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
|
||||
|
||||
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
|
||||
@ -1,59 +0,0 @@
|
||||
rho = thermo.rho();
|
||||
|
||||
volScalarField rAU(1.0/UEqn.A());
|
||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||
|
||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||
|
||||
surfaceScalarField phiHbyA
|
||||
(
|
||||
"phiHbyA",
|
||||
(
|
||||
fvc::flux(rho*HbyA)
|
||||
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
|
||||
)
|
||||
+ phig
|
||||
);
|
||||
|
||||
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
|
||||
|
||||
// Update the pressure BCs to ensure flux consistency
|
||||
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
||||
|
||||
while (pimple.correctNonOrthogonal())
|
||||
{
|
||||
fvScalarMatrix p_rghEqn
|
||||
(
|
||||
fvc::ddt(psi, rho)*gh
|
||||
+ fvc::div(phiHbyA)
|
||||
+ fvm::ddt(psi, p_rgh)
|
||||
- fvm::laplacian(rhorAUf, p_rgh)
|
||||
==
|
||||
parcels.Srho()
|
||||
+ surfaceFilm.Srho()
|
||||
+ fvOptions(psi, p_rgh, rho.name())
|
||||
);
|
||||
|
||||
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||
|
||||
if (pimple.finalNonOrthogonalIter())
|
||||
{
|
||||
phi = phiHbyA + p_rghEqn.flux();
|
||||
U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf);
|
||||
U.correctBoundaryConditions();
|
||||
fvOptions.correct(U);
|
||||
}
|
||||
}
|
||||
|
||||
p = p_rgh + rho*gh;
|
||||
|
||||
#include "rhoEqn.H"
|
||||
#include "compressibleContinuityErrs.H"
|
||||
|
||||
K = 0.5*magSqr(U);
|
||||
|
||||
if (thermo.dpdt())
|
||||
{
|
||||
dpdt = fvc::ddt(p);
|
||||
}
|
||||
@ -1,138 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2017 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
|
||||
reactingParcelFilmFoam
|
||||
|
||||
Group
|
||||
grpLagrangianSolvers
|
||||
|
||||
Description
|
||||
Transient solver for compressible, turbulent flow with a reacting,
|
||||
multiphase particle cloud, and surface film modelling.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "turbulentFluidThermoModel.H"
|
||||
#include "basicReactingCloud.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "psiCombustionModel.H"
|
||||
#include "radiationModel.H"
|
||||
#include "SLGThermo.H"
|
||||
#include "fvOptions.H"
|
||||
#include "pimpleControl.H"
|
||||
#include "localEulerDdtScheme.H"
|
||||
#include "fvcSmooth.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#include "postProcess.H"
|
||||
|
||||
#include "setRootCase.H"
|
||||
#include "createTime.H"
|
||||
#include "createMesh.H"
|
||||
#include "createControl.H"
|
||||
#include "createTimeControls.H"
|
||||
#include "createFields.H"
|
||||
#include "createFieldRefs.H"
|
||||
#include "createFvOptions.H"
|
||||
#include "initContinuityErrs.H"
|
||||
|
||||
turbulence->validate();
|
||||
|
||||
if (!LTS)
|
||||
{
|
||||
#include "compressibleCourantNo.H"
|
||||
#include "setInitialDeltaT.H"
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
|
||||
while (runTime.run())
|
||||
{
|
||||
#include "readTimeControls.H"
|
||||
|
||||
if (!LTS)
|
||||
{
|
||||
#include "compressibleCourantNo.H"
|
||||
#include "setMultiRegionDeltaT.H"
|
||||
#include "setDeltaT.H"
|
||||
}
|
||||
|
||||
runTime++;
|
||||
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
|
||||
parcels.evolve();
|
||||
surfaceFilm.evolve();
|
||||
|
||||
if (LTS)
|
||||
{
|
||||
#include "setRDeltaT.H"
|
||||
}
|
||||
|
||||
if (solvePrimaryRegion)
|
||||
{
|
||||
#include "rhoEqn.H"
|
||||
|
||||
// --- PIMPLE loop
|
||||
while (pimple.loop())
|
||||
{
|
||||
#include "UEqn.H"
|
||||
#include "YEqn.H"
|
||||
#include "EEqn.H"
|
||||
|
||||
// --- Pressure corrector loop
|
||||
while (pimple.correct())
|
||||
{
|
||||
#include "pEqn.H"
|
||||
}
|
||||
|
||||
if (pimple.turbCorr())
|
||||
{
|
||||
turbulence->correct();
|
||||
}
|
||||
}
|
||||
|
||||
rho = thermo.rho();
|
||||
}
|
||||
|
||||
runTime.write();
|
||||
|
||||
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
Info<< "End" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,48 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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/>.
|
||||
|
||||
Global
|
||||
rhoEqn
|
||||
|
||||
Description
|
||||
Solve the continuity for density.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
fvScalarMatrix rhoEqn
|
||||
(
|
||||
fvm::ddt(rho)
|
||||
+ fvc::div(phi)
|
||||
==
|
||||
parcels.Srho(rho)
|
||||
+ surfaceFilm.Srho()
|
||||
+ fvOptions(rho)
|
||||
);
|
||||
|
||||
rhoEqn.solve();
|
||||
|
||||
fvOptions.correct(rho);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -19,6 +19,7 @@
|
||||
==
|
||||
rho*(U&g)
|
||||
+ parcels.Sh(he)
|
||||
+ surfaceFilm.Sh()
|
||||
+ radiation->Sh(thermo, he)
|
||||
+ Qdot
|
||||
+ fvOptions(rho, he)
|
||||
@ -35,6 +36,6 @@
|
||||
thermo.correct();
|
||||
radiation->correct();
|
||||
|
||||
Info<< "T gas min/max " << min(T).value() << ", "
|
||||
Info<< "T gas min/max = " << min(T).value() << ", "
|
||||
<< max(T).value() << endl;
|
||||
}
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
EXE_INC = \
|
||||
-I. \
|
||||
-I../reactingParcelFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I${LIB_SRC}/sampling/lnInclude \
|
||||
-I${LIB_SRC}/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
@ -17,33 +16,33 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
-I$(LIB_SRC)/ODE/lnInclude \
|
||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
||||
-I$(LIB_SRC)/ODE/lnInclude \
|
||||
-I$(LIB_SRC)/combustionModels/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(FOAM_SOLVERS)/combustion/reactingFoam
|
||||
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lsampling \
|
||||
-lmeshTools \
|
||||
-lturbulenceModels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-llagrangian \
|
||||
-llagrangianIntermediate \
|
||||
-llagrangianTurbulence \
|
||||
-lspecie \
|
||||
-lcompressibleTransportModels \
|
||||
-lfluidThermophysicalModels \
|
||||
-lthermophysicalProperties \
|
||||
-lreactionThermophysicalModels \
|
||||
-lSLGThermo \
|
||||
-lchemistryModel \
|
||||
-lradiationModels \
|
||||
-lODE \
|
||||
-lregionModels \
|
||||
-lradiationModels \
|
||||
-lsurfaceFilmModels \
|
||||
-lcombustionModels \
|
||||
-lfvOptions \
|
||||
-lsampling
|
||||
-lsurfaceFilmDerivedFvPatchFields \
|
||||
-llagrangian \
|
||||
-llagrangianIntermediate \
|
||||
-llagrangianTurbulence \
|
||||
-lODE \
|
||||
-lcombustionModels
|
||||
|
||||
@ -6,8 +6,7 @@
|
||||
+ MRF.DDt(rho, U)
|
||||
+ turbulence->divDevRhoReff(U)
|
||||
==
|
||||
rho()*g
|
||||
+ parcels.SU(U)
|
||||
parcels.SU(U)
|
||||
+ fvOptions(rho, U)
|
||||
);
|
||||
|
||||
@ -17,7 +16,18 @@
|
||||
|
||||
if (pimple.momentumPredictor())
|
||||
{
|
||||
solve(UEqn == -fvc::grad(p));
|
||||
solve
|
||||
(
|
||||
UEqn
|
||||
==
|
||||
fvc::reconstruct
|
||||
(
|
||||
(
|
||||
- ghf*fvc::snGrad(rho)
|
||||
- fvc::snGrad(p_rgh)
|
||||
)*mesh.magSf()
|
||||
)
|
||||
);
|
||||
|
||||
fvOptions.correct(U);
|
||||
K = 0.5*magSqr(U);
|
||||
|
||||
@ -9,6 +9,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
{
|
||||
combustion->correct();
|
||||
Qdot = combustion->Qdot();
|
||||
@ -24,11 +25,12 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
||||
(
|
||||
fvm::ddt(rho, Yi)
|
||||
+ mvConvection->fvmDiv(phi, Yi)
|
||||
- fvm::laplacian(turbulence->muEff(), Yi)
|
||||
==
|
||||
- fvm::laplacian(turbulence->alphaEff(), Yi)
|
||||
==
|
||||
parcels.SYi(i, Yi)
|
||||
+ combustion->R(Yi)
|
||||
+ fvOptions(rho, Yi)
|
||||
+ combustion->R(Yi)
|
||||
+ surfaceFilm.Srho(i)
|
||||
);
|
||||
|
||||
YEqn.relax();
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
const label inertIndex(composition.species()[inertSpecie]);
|
||||
|
||||
const volScalarField& T = thermo.T();
|
||||
const volScalarField& psi = thermo.psi();
|
||||
const label inertIndex(composition.species()[inertSpecie]);
|
||||
regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
#include "createRDeltaT.H"
|
||||
|
||||
#include "readGravitationalAcceleration.H"
|
||||
|
||||
Info<< "Creating combustion model\n" << endl;
|
||||
|
||||
autoPtr<combustionModels::rhoCombustionModel> combustion
|
||||
@ -26,8 +24,7 @@ if (!composition.species().found(inertSpecie))
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
|
||||
volScalarField& p = thermo.p();
|
||||
|
||||
Info<< "Creating field rho\n" << endl;
|
||||
volScalarField rho
|
||||
(
|
||||
IOobject
|
||||
@ -41,6 +38,8 @@ volScalarField rho
|
||||
thermo.rho()
|
||||
);
|
||||
|
||||
volScalarField& p = thermo.p();
|
||||
|
||||
Info<< "\nReading field U\n" << endl;
|
||||
volVectorField U
|
||||
(
|
||||
@ -57,30 +56,6 @@ volVectorField U
|
||||
|
||||
#include "compressibleCreatePhi.H"
|
||||
|
||||
mesh.setFluxRequired(p.name());
|
||||
|
||||
dimensionedScalar rhoMax
|
||||
(
|
||||
dimensionedScalar::lookupOrDefault
|
||||
(
|
||||
"rhoMax",
|
||||
pimple.dict(),
|
||||
dimDensity,
|
||||
GREAT
|
||||
)
|
||||
);
|
||||
|
||||
dimensionedScalar rhoMin
|
||||
(
|
||||
dimensionedScalar::lookupOrDefault
|
||||
(
|
||||
"rhoMin",
|
||||
pimple.dict(),
|
||||
dimDensity,
|
||||
0
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating turbulence model\n" << endl;
|
||||
autoPtr<compressible::turbulenceModel> turbulence
|
||||
(
|
||||
@ -96,6 +71,31 @@ autoPtr<compressible::turbulenceModel> turbulence
|
||||
// Set the turbulence into the combustion model
|
||||
combustion->setTurbulence(turbulence());
|
||||
|
||||
#include "readGravitationalAcceleration.H"
|
||||
#include "readhRef.H"
|
||||
#include "gh.H"
|
||||
|
||||
|
||||
volScalarField p_rgh
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"p_rgh",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
);
|
||||
|
||||
// Force p_rgh to be consistent with p
|
||||
p_rgh = p - rho*gh;
|
||||
|
||||
pressureControl pressureControl(p, rho, pimple.dict(), false);
|
||||
|
||||
mesh.setFluxRequired(p_rgh.name());
|
||||
|
||||
Info<< "Creating multi-variate interpolation scheme\n" << endl;
|
||||
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
|
||||
|
||||
@ -105,6 +105,11 @@ forAll(Y, i)
|
||||
}
|
||||
fields.add(thermo.he());
|
||||
|
||||
Switch solvePrimaryRegion
|
||||
(
|
||||
pimple.dict().lookupOrDefault<Switch>("solvePrimaryRegion", true)
|
||||
);
|
||||
|
||||
volScalarField Qdot
|
||||
(
|
||||
IOobject
|
||||
@ -126,3 +131,4 @@ volScalarField Qdot
|
||||
#include "createMRF.H"
|
||||
#include "createRadiationModel.H"
|
||||
#include "createClouds.H"
|
||||
#include "createSurfaceFilmModel.H"
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
Info<< "\nConstructing surface film model" << endl;
|
||||
|
||||
autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
|
||||
(
|
||||
regionModels::surfaceFilmModel::New(mesh, g)
|
||||
);
|
||||
@ -1,4 +1,7 @@
|
||||
rho = thermo.rho();
|
||||
if (!pimple.SIMPLErho())
|
||||
{
|
||||
rho = thermo.rho();
|
||||
}
|
||||
|
||||
// Thermodynamic density needs to be updated by psi*d(p) after the
|
||||
// pressure solution
|
||||
@ -7,6 +10,9 @@ const volScalarField psip0(psi*p);
|
||||
volScalarField rAU(1.0/UEqn.A());
|
||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||
|
||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||
|
||||
surfaceScalarField phiHbyA
|
||||
(
|
||||
"phiHbyA",
|
||||
@ -14,58 +20,68 @@ surfaceScalarField phiHbyA
|
||||
fvc::flux(rho*HbyA)
|
||||
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
|
||||
)
|
||||
+ phig
|
||||
);
|
||||
|
||||
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
|
||||
|
||||
// Update the pressure BCs to ensure flux consistency
|
||||
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
|
||||
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
||||
|
||||
fvScalarMatrix pDDtEqn
|
||||
fvScalarMatrix p_rghDDtEqn
|
||||
(
|
||||
fvc::ddt(rho) + psi*correction(fvm::ddt(p))
|
||||
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
|
||||
+ fvc::div(phiHbyA)
|
||||
==
|
||||
parcels.Srho()
|
||||
+ fvOptions(psi, p, rho.name())
|
||||
+ surfaceFilm.Srho()
|
||||
+ fvOptions(psi, p_rgh, rho.name())
|
||||
);
|
||||
|
||||
while (pimple.correctNonOrthogonal())
|
||||
{
|
||||
fvScalarMatrix pEqn
|
||||
fvScalarMatrix p_rghEqn
|
||||
(
|
||||
pDDtEqn
|
||||
- fvm::laplacian(rhorAUf, p)
|
||||
p_rghDDtEqn
|
||||
- fvm::laplacian(rhorAUf, p_rgh)
|
||||
);
|
||||
|
||||
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||
|
||||
if (pimple.finalNonOrthogonalIter())
|
||||
{
|
||||
phi = phiHbyA + pEqn.flux();
|
||||
phi = phiHbyA + p_rghEqn.flux();
|
||||
|
||||
// Explicitly relax pressure for momentum corrector
|
||||
p_rgh.relax();
|
||||
|
||||
U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf);
|
||||
U.correctBoundaryConditions();
|
||||
fvOptions.correct(U);
|
||||
K = 0.5*magSqr(U);
|
||||
}
|
||||
}
|
||||
|
||||
p.relax();
|
||||
p = p_rgh + rho*gh;
|
||||
|
||||
// Thermodynamic density update
|
||||
thermo.correctRho(psi*p - psip0);
|
||||
|
||||
#include "rhoEqn.H" // NOTE: flux and time scales now inconsistent
|
||||
#include "rhoEqn.H"
|
||||
#include "compressibleContinuityErrs.H"
|
||||
|
||||
U = HbyA - rAU*fvc::grad(p);
|
||||
U.correctBoundaryConditions();
|
||||
fvOptions.correct(U);
|
||||
K = 0.5*magSqr(U);
|
||||
if (pressureControl.limit(p))
|
||||
{
|
||||
p.correctBoundaryConditions();
|
||||
rho = thermo.rho();
|
||||
p_rgh = p - rho*gh;
|
||||
}
|
||||
else if (pimple.SIMPLErho())
|
||||
{
|
||||
rho = thermo.rho();
|
||||
}
|
||||
|
||||
if (thermo.dpdt())
|
||||
{
|
||||
dpdt = fvc::ddt(p);
|
||||
}
|
||||
|
||||
rho = thermo.rho();
|
||||
rho = max(rho, rhoMin);
|
||||
rho = min(rho, rhoMax);
|
||||
|
||||
Info<< "p min/max = " << min(p).value() << ", " << max(p).value() << endl;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -29,18 +29,20 @@ Group
|
||||
|
||||
Description
|
||||
Transient solver for compressible, turbulent flow with a reacting,
|
||||
multiphase particle cloud, and optional sources/constraints.
|
||||
multiphase particle cloud, and surface film modelling.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "turbulentFluidThermoModel.H"
|
||||
#include "basicReactingMultiphaseCloud.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "rhoCombustionModel.H"
|
||||
#include "radiationModel.H"
|
||||
#include "fvOptions.H"
|
||||
#include "SLGThermo.H"
|
||||
#include "fvOptions.H"
|
||||
#include "pimpleControl.H"
|
||||
#include "pressureControl.H"
|
||||
#include "localEulerDdtScheme.H"
|
||||
#include "fvcSmooth.H"
|
||||
|
||||
@ -76,10 +78,14 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
#include "readTimeControls.H"
|
||||
|
||||
if (!LTS)
|
||||
if (LTS)
|
||||
{
|
||||
#include "setRDeltaT.H"
|
||||
}
|
||||
else
|
||||
{
|
||||
#include "compressibleCourantNo.H"
|
||||
#include "setDeltaT.H"
|
||||
#include "setMultiRegionDeltaT.H"
|
||||
}
|
||||
|
||||
runTime++;
|
||||
@ -87,34 +93,36 @@ int main(int argc, char *argv[])
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
|
||||
parcels.evolve();
|
||||
surfaceFilm.evolve();
|
||||
|
||||
if (LTS)
|
||||
if (solvePrimaryRegion)
|
||||
{
|
||||
#include "setRDeltaT.H"
|
||||
}
|
||||
|
||||
#include "rhoEqn.H"
|
||||
|
||||
// --- Pressure-velocity PIMPLE corrector loop
|
||||
while (pimple.loop())
|
||||
{
|
||||
#include "UEqn.H"
|
||||
#include "YEqn.H"
|
||||
#include "EEqn.H"
|
||||
|
||||
// --- Pressure corrector loop
|
||||
while (pimple.correct())
|
||||
if (pimple.nCorrPIMPLE() <= 1)
|
||||
{
|
||||
#include "pEqn.H"
|
||||
#include "rhoEqn.H"
|
||||
}
|
||||
|
||||
if (pimple.turbCorr())
|
||||
// --- PIMPLE loop
|
||||
while (pimple.loop())
|
||||
{
|
||||
turbulence->correct();
|
||||
}
|
||||
}
|
||||
#include "UEqn.H"
|
||||
#include "YEqn.H"
|
||||
#include "EEqn.H"
|
||||
|
||||
rho = thermo.rho();
|
||||
// --- Pressure corrector loop
|
||||
while (pimple.correct())
|
||||
{
|
||||
#include "pEqn.H"
|
||||
}
|
||||
|
||||
if (pimple.turbCorr())
|
||||
{
|
||||
turbulence->correct();
|
||||
}
|
||||
}
|
||||
|
||||
rho = thermo.rho();
|
||||
}
|
||||
|
||||
runTime.write();
|
||||
|
||||
@ -123,7 +131,7 @@ int main(int argc, char *argv[])
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
Info<< "End" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,15 +36,13 @@ Description
|
||||
+ fvc::div(phi)
|
||||
==
|
||||
parcels.Srho(rho)
|
||||
+ surfaceFilm.Srho()
|
||||
+ fvOptions(rho)
|
||||
);
|
||||
|
||||
rhoEqn.solve();
|
||||
|
||||
fvOptions.correct(rho);
|
||||
|
||||
Info<< "rho min/max = " << min(rho).value() << ", " << max(rho).value()
|
||||
<< endl;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -33,25 +33,21 @@ Description
|
||||
|
||||
if (adjustTimeStep)
|
||||
{
|
||||
if (CoNum == -GREAT)
|
||||
{
|
||||
CoNum = SMALL;
|
||||
}
|
||||
|
||||
const scalar TFactorFluid = maxCo/(CoNum + SMALL);
|
||||
const scalar TFactorFilm = maxCo/(surfaceFilm.CourantNumber() + SMALL);
|
||||
|
||||
const scalar dt0 = runTime.deltaTValue();
|
||||
const scalar maxDeltaTFact =
|
||||
min(maxCo/(CoNum + SMALL), maxCo/(surfaceFilm.CourantNumber() + SMALL));
|
||||
const scalar deltaTFact =
|
||||
min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2);
|
||||
|
||||
runTime.setDeltaT
|
||||
(
|
||||
min
|
||||
(
|
||||
dt0*min(min(TFactorFluid, TFactorFilm), 1.2),
|
||||
deltaTFact*runTime.deltaTValue(),
|
||||
maxDeltaT
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,9 +24,6 @@ License
|
||||
Application
|
||||
simpleReactingParcelFoam
|
||||
|
||||
Group
|
||||
grpLagrangianSolvers
|
||||
|
||||
Description
|
||||
Steady state solver for compressible, turbulent flow with reacting,
|
||||
multiphase particle clouds and optional sources/constraints.
|
||||
@ -38,6 +35,7 @@ Description
|
||||
#include "basicReactingMultiphaseCloud.H"
|
||||
#include "rhoCombustionModel.H"
|
||||
#include "radiationModel.H"
|
||||
#include "IOporosityModelList.H"
|
||||
#include "fvOptions.H"
|
||||
#include "SLGThermo.H"
|
||||
#include "simpleControl.H"
|
||||
|
||||
@ -19,7 +19,6 @@
|
||||
==
|
||||
rho*(U&g)
|
||||
+ parcels.Sh(he)
|
||||
+ surfaceFilm.Sh()
|
||||
+ radiation->Sh(thermo, he)
|
||||
+ Qdot
|
||||
+ fvOptions(rho, he)
|
||||
@ -36,6 +35,6 @@
|
||||
thermo.correct();
|
||||
radiation->correct();
|
||||
|
||||
Info<< "T gas min/max = " << min(T).value() << ", "
|
||||
Info<< "T gas min/max " << min(T).value() << ", "
|
||||
<< max(T).value() << endl;
|
||||
}
|
||||
@ -9,7 +9,6 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
{
|
||||
combustion->correct();
|
||||
Qdot = combustion->Qdot();
|
||||
@ -25,12 +24,11 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
||||
(
|
||||
fvm::ddt(rho, Yi)
|
||||
+ mvConvection->fvmDiv(phi, Yi)
|
||||
- fvm::laplacian(turbulence->alphaEff(), Yi)
|
||||
==
|
||||
- fvm::laplacian(turbulence->muEff(), Yi)
|
||||
==
|
||||
parcels.SYi(i, Yi)
|
||||
+ fvOptions(rho, Yi)
|
||||
+ combustion->R(Yi)
|
||||
+ surfaceFilm.Srho(i)
|
||||
+ fvOptions(rho, Yi)
|
||||
);
|
||||
|
||||
YEqn.relax();
|
||||
@ -1,5 +1,3 @@
|
||||
const label inertIndex(composition.species()[inertSpecie]);
|
||||
|
||||
const volScalarField& T = thermo.T();
|
||||
const volScalarField& psi = thermo.psi();
|
||||
filmModelType& surfaceFilm = tsurfaceFilm();
|
||||
const label inertIndex(composition.species()[inertSpecie]);
|
||||
@ -45,7 +45,7 @@ addToRunTimeSelectionTable(transferModel, VoFPatchTransfer, dictionary);
|
||||
|
||||
VoFPatchTransfer::VoFPatchTransfer
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -98,7 +98,7 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct from surface film model
|
||||
VoFPatchTransfer(surfaceFilmModel& film, const dictionary& dict);
|
||||
VoFPatchTransfer(surfaceFilmRegionModel& film, const dictionary& dict);
|
||||
|
||||
|
||||
//- Destructor
|
||||
|
||||
@ -72,7 +72,7 @@ int main(int argc, char *argv[])
|
||||
const volScalarField& psi1 = mixture.thermo1().psi();
|
||||
const volScalarField& psi2 = mixture.thermo2().psi();
|
||||
|
||||
filmModelType& surfaceFilm = tsurfaceFilm();
|
||||
regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
|
||||
|
||||
turbulence->validate();
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
Info<< "\nConstructing surface film model" << endl;
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
|
||||
|
||||
SLGThermo slgThermo(mesh, mixture.thermo1());
|
||||
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
|
||||
autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
|
||||
(
|
||||
regionModels::surfaceFilmModel::New(mesh, g)
|
||||
);
|
||||
|
||||
@ -24,7 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "SurfaceFilmModel.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
#include "mathematicalConstants.H"
|
||||
|
||||
using namespace Foam::constant;
|
||||
@ -109,9 +109,9 @@ void Foam::SurfaceFilmModel<CloudType>::inject(TrackData& td)
|
||||
}
|
||||
|
||||
// Retrieve the film model from the owner database
|
||||
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel =
|
||||
const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel =
|
||||
this->owner().mesh().time().objectRegistry::template lookupObject
|
||||
<regionModels::surfaceFilmModels::surfaceFilmModel>
|
||||
<regionModels::surfaceFilmModels::surfaceFilmRegionModel>
|
||||
(
|
||||
"surfaceFilmProperties"
|
||||
);
|
||||
@ -190,7 +190,7 @@ void Foam::SurfaceFilmModel<CloudType>::cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
|
||||
const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
|
||||
)
|
||||
{
|
||||
massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchi];
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -54,7 +54,7 @@ namespace regionModels
|
||||
{
|
||||
namespace surfaceFilmModels
|
||||
{
|
||||
class surfaceFilmModel;
|
||||
class surfaceFilmRegionModel;
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ protected:
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
|
||||
const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
|
||||
);
|
||||
|
||||
//- Set the individual parcel properties
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
/*---------------------------------------------------------------------------* \
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
@ -128,7 +128,7 @@ Foam::vector Foam::ThermoSurfaceFilm<CloudType>::splashDirection
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::absorbInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -205,7 +205,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::bounceInteraction
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -261,7 +261,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
|
||||
parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -338,7 +338,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -556,11 +556,12 @@ bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
|
||||
)
|
||||
{
|
||||
// Retrieve the film model from the owner database
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel =
|
||||
const_cast<regionModels::surfaceFilmModels::surfaceFilmModel&>
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel =
|
||||
const_cast<regionModels::surfaceFilmModels::surfaceFilmRegionModel&>
|
||||
(
|
||||
this->owner().db().time().objectRegistry::template
|
||||
lookupObject<regionModels::surfaceFilmModels::surfaceFilmModel>
|
||||
lookupObject
|
||||
<regionModels::surfaceFilmModels::surfaceFilmRegionModel>
|
||||
(
|
||||
"surfaceFilmProperties"
|
||||
)
|
||||
@ -624,7 +625,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
|
||||
const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
|
||||
)
|
||||
{
|
||||
SurfaceFilmModel<CloudType>::cacheFilmFields
|
||||
|
||||
@ -171,7 +171,7 @@ protected:
|
||||
//- Absorb parcel into film
|
||||
void absorbInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -191,7 +191,7 @@ protected:
|
||||
//- Parcel interaction with dry surface
|
||||
void drySplashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -201,7 +201,7 @@ protected:
|
||||
//- Parcel interaction with wetted surface
|
||||
void wetSplashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
|
||||
parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -211,7 +211,7 @@ protected:
|
||||
//- Bai parcel splash interaction model
|
||||
void splashInteraction
|
||||
(
|
||||
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
|
||||
regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
@ -230,7 +230,7 @@ protected:
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const regionModels::surfaceFilmModels::surfaceFilmModel&
|
||||
const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
|
||||
filmModel
|
||||
);
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ License
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "pyrolysisModel.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -123,7 +123,9 @@ void Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField::updateCoeffs()
|
||||
return;
|
||||
}
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
|
||||
filmModelType;
|
||||
|
||||
typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
|
||||
|
||||
// Since we're inside initEvaluate/evaluate there might be processor
|
||||
|
||||
@ -27,7 +27,7 @@ License
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "pyrolysisModel.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -123,7 +123,9 @@ void Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::updateCoeffs()
|
||||
return;
|
||||
}
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
|
||||
filmModelType;
|
||||
|
||||
typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
|
||||
|
||||
// Since we're inside initEvaluate/evaluate there might be processor
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
/* Surface film models */
|
||||
surfaceFilmModel/surfaceFilmModel.C
|
||||
surfaceFilmModel/surfaceFilmModelNew.C
|
||||
surfaceFilmRegionModel/surfaceFilmRegionModel.C
|
||||
noFilm/noFilm.C
|
||||
kinematicSingleLayer/kinematicSingleLayer.C
|
||||
thermoSingleLayer/thermoSingleLayer.C
|
||||
|
||||
@ -25,7 +25,7 @@ License
|
||||
|
||||
#include "alphatFilmWallFunctionFvPatchScalarField.H"
|
||||
#include "turbulentFluidThermoModel.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
#include "fvPatchFieldMapper.H"
|
||||
#include "volFields.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
@ -142,7 +142,7 @@ void alphatFilmWallFunctionFvPatchScalarField::updateCoeffs()
|
||||
return;
|
||||
}
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType;
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
|
||||
|
||||
// Since we're inside initEvaluate/evaluate there might be processor
|
||||
// comms underway. Change the tag we use.
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
#include "volFields.H"
|
||||
#include "turbulentFluidThermoModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
#include "mappedWallPolyPatch.H"
|
||||
#include "mapDistribute.H"
|
||||
|
||||
@ -51,7 +51,7 @@ tmp<scalarField> nutkFilmWallFunctionFvPatchScalarField::calcUTau
|
||||
tmp<scalarField> tuTau(new scalarField(patch().size(), 0.0));
|
||||
scalarField& uTau = tuTau.ref();
|
||||
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType;
|
||||
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
|
||||
|
||||
bool foundFilm = db().time().foundObject<modelType>(filmRegionName_);
|
||||
|
||||
|
||||
@ -49,13 +49,13 @@ namespace surfaceFilmModels
|
||||
|
||||
defineTypeNameAndDebug(kinematicSingleLayer, 0);
|
||||
|
||||
addToRunTimeSelectionTable(surfaceFilmModel, kinematicSingleLayer, mesh);
|
||||
addToRunTimeSelectionTable(surfaceFilmRegionModel, kinematicSingleLayer, mesh);
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
bool kinematicSingleLayer::read()
|
||||
{
|
||||
if (surfaceFilmModel::read())
|
||||
if (surfaceFilmRegionModel::read())
|
||||
{
|
||||
const dictionary& solution = this->solution().subDict("PISO");
|
||||
solution.lookup("momentumPredictor") >> momentumPredictor_;
|
||||
@ -458,7 +458,7 @@ kinematicSingleLayer::kinematicSingleLayer
|
||||
const bool readFields
|
||||
)
|
||||
:
|
||||
surfaceFilmModel(modelType, mesh, g, regionType),
|
||||
surfaceFilmRegionModel(modelType, mesh, g, regionType),
|
||||
|
||||
momentumPredictor_(solution().subDict("PISO").lookup("momentumPredictor")),
|
||||
nOuterCorr_(solution().subDict("PISO").lookupOrDefault("nOuterCorr", 1)),
|
||||
@ -880,7 +880,7 @@ void kinematicSingleLayer::preEvolveRegion()
|
||||
InfoInFunction << endl;
|
||||
}
|
||||
|
||||
surfaceFilmModel::preEvolveRegion();
|
||||
surfaceFilmRegionModel::preEvolveRegion();
|
||||
|
||||
transferPrimaryRegionThermoFields();
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ SourceFiles
|
||||
#ifndef kinematicSingleLayer_H
|
||||
#define kinematicSingleLayer_H
|
||||
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
#include "fvMesh.H"
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
@ -64,7 +64,7 @@ class filmThermoModel;
|
||||
|
||||
class kinematicSingleLayer
|
||||
:
|
||||
public surfaceFilmModel
|
||||
public surfaceFilmRegionModel
|
||||
{
|
||||
private:
|
||||
|
||||
|
||||
@ -41,23 +41,6 @@ namespace surfaceFilmModels
|
||||
defineTypeNameAndDebug(noFilm, 0);
|
||||
addToRunTimeSelectionTable(surfaceFilmModel, noFilm, mesh);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
bool noFilm::read()
|
||||
{
|
||||
if (surfaceFilmModel::read())
|
||||
{
|
||||
// no additional info to read
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
noFilm::noFilm
|
||||
@ -68,7 +51,8 @@ noFilm::noFilm
|
||||
const word& regionType
|
||||
)
|
||||
:
|
||||
surfaceFilmModel(modelType, mesh, g, regionType)
|
||||
surfaceFilmModel(),
|
||||
mesh_(mesh)
|
||||
{}
|
||||
|
||||
|
||||
@ -80,174 +64,9 @@ noFilm::~noFilm()
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void noFilm::addSources
|
||||
(
|
||||
const label,
|
||||
const label,
|
||||
const scalar,
|
||||
const vector&,
|
||||
const scalar,
|
||||
const scalar
|
||||
)
|
||||
{}
|
||||
|
||||
|
||||
const volScalarField& noFilm::delta() const
|
||||
Foam::scalar noFilm::CourantNumber() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "delta field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::alpha() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "alpha field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volVectorField& noFilm::U() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "U field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volVectorField::null();
|
||||
}
|
||||
|
||||
|
||||
const volVectorField& noFilm::Us() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Us field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volVectorField::null();
|
||||
}
|
||||
|
||||
|
||||
const volVectorField& noFilm::Uw() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Uw field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volVectorField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::rho() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "rho field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::T() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "T field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::Ts() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Ts field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::Tw() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Tw field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::hs() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "hs field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::Cp() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Cp field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::kappa() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "kappa field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::sigma() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "sigma field not available for " << type() << abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> noFilm::primaryMassTrans() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"noFilm::primaryMassTrans",
|
||||
time().timeName(),
|
||||
primaryMesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
primaryMesh(),
|
||||
dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::cloudMassTrans() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "cloudMassTrans field not available for " << type()
|
||||
<< abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
}
|
||||
|
||||
|
||||
const volScalarField& noFilm::cloudDiameterTrans() const
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "cloudDiameterTrans field not available for " << type()
|
||||
<< abort(FatalError);
|
||||
|
||||
return volScalarField::null();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -260,13 +79,13 @@ tmp<volScalarField::Internal> noFilm::Srho() const
|
||||
IOobject
|
||||
(
|
||||
"noFilm::Srho",
|
||||
time().timeName(),
|
||||
primaryMesh(),
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
primaryMesh(),
|
||||
mesh_,
|
||||
dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
|
||||
)
|
||||
);
|
||||
@ -282,13 +101,13 @@ tmp<volScalarField::Internal> noFilm::Srho(const label i) const
|
||||
IOobject
|
||||
(
|
||||
"noFilm::Srho(" + Foam::name(i) + ")",
|
||||
time().timeName(),
|
||||
primaryMesh(),
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
primaryMesh(),
|
||||
mesh_,
|
||||
dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
|
||||
)
|
||||
);
|
||||
@ -304,19 +123,23 @@ tmp<volScalarField::Internal> noFilm::Sh() const
|
||||
IOobject
|
||||
(
|
||||
"noFilm::Sh",
|
||||
time().timeName(),
|
||||
primaryMesh(),
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
primaryMesh(),
|
||||
mesh_,
|
||||
dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
void noFilm::evolve()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace surfaceFilmModels
|
||||
|
||||
@ -25,7 +25,8 @@ Class
|
||||
Foam::regionModels::surfaceFilmModels::noFilm
|
||||
|
||||
Description
|
||||
Dummy surface film model for 'none'
|
||||
Dummy surfaceFilmModel to allow solvers supporting film simulations to be
|
||||
run without a film region.
|
||||
|
||||
SourceFiles
|
||||
noFilm.C
|
||||
@ -54,7 +55,11 @@ class noFilm
|
||||
:
|
||||
public surfaceFilmModel
|
||||
{
|
||||
private:
|
||||
// Private member data
|
||||
|
||||
//- Reference to the mesh
|
||||
const fvMesh& mesh_;
|
||||
|
||||
|
||||
// Private member functions
|
||||
|
||||
@ -65,14 +70,6 @@ private:
|
||||
void operator=(const noFilm&);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Protected member functions
|
||||
|
||||
//- Read control parameters from dictionary
|
||||
virtual bool read();
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
@ -97,89 +94,31 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Access
|
||||
// Solution parameters
|
||||
|
||||
//- External hook to add sources to the film
|
||||
virtual void addSources
|
||||
//- Courant number evaluation
|
||||
virtual scalar CourantNumber() const;
|
||||
|
||||
|
||||
// Primary region source fields
|
||||
|
||||
//- Return total mass source - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Srho() const;
|
||||
|
||||
//- Return mass source for specie i - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Srho
|
||||
(
|
||||
const label patchi,
|
||||
const label facei,
|
||||
const scalar massSource,
|
||||
const vector& momentumSource,
|
||||
const scalar pressureSource,
|
||||
const scalar energySource
|
||||
);
|
||||
const label i
|
||||
) const;
|
||||
|
||||
//- Return enthalpy source - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Sh() const;
|
||||
|
||||
|
||||
// Fields
|
||||
// Evolution
|
||||
|
||||
//- Return the film thickness [m]
|
||||
virtual const volScalarField& delta() const;
|
||||
|
||||
//- Return the film coverage, 1 = covered, 0 = uncovered / []
|
||||
virtual const volScalarField& alpha() const;
|
||||
|
||||
//- Return the film velocity [m/s]
|
||||
virtual const volVectorField& U() const;
|
||||
|
||||
//- Return the film density [kg/m3]
|
||||
virtual const volScalarField& rho() const;
|
||||
|
||||
//- Return the film surface velocity [m/s]
|
||||
virtual const volVectorField& Us() const;
|
||||
|
||||
//- Return the film wall velocity [m/s]
|
||||
virtual const volVectorField& Uw() const;
|
||||
|
||||
//- Return the film mean temperature [K]
|
||||
virtual const volScalarField& T() const;
|
||||
|
||||
//- Return the film surface temperature [K]
|
||||
virtual const volScalarField& Ts() const;
|
||||
|
||||
//- Return the film wall temperature [K]
|
||||
virtual const volScalarField& Tw() const;
|
||||
|
||||
//- Return the film surface enthalpy [J/kg]
|
||||
virtual const volScalarField& hs() const;
|
||||
|
||||
//- Return the film specific heat capacity [J/kg/K]
|
||||
virtual const volScalarField& Cp() const;
|
||||
|
||||
//- Return the film thermal conductivity [W/m/K]
|
||||
virtual const volScalarField& kappa() const;
|
||||
|
||||
//- Return const access to the surface tension / [m/s2]
|
||||
inline const volScalarField& sigma() const;
|
||||
|
||||
|
||||
// Transfer fields - to the primary region
|
||||
|
||||
//- Return mass transfer source - Eulerian phase only
|
||||
virtual tmp<volScalarField> primaryMassTrans() const;
|
||||
|
||||
//- Return the film mass available for transfer
|
||||
virtual const volScalarField& cloudMassTrans() const;
|
||||
|
||||
//- Return the parcel diameters originating from film
|
||||
virtual const volScalarField& cloudDiameterTrans() const;
|
||||
|
||||
|
||||
// Source fields
|
||||
|
||||
// Mapped into primary region
|
||||
|
||||
//- Return total mass source - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Srho() const;
|
||||
|
||||
//- Return mass source for specie i - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Srho
|
||||
(
|
||||
const label i
|
||||
) const;
|
||||
|
||||
//- Return enthalpy source - Eulerian phase only
|
||||
virtual tmp<volScalarField::Internal> Sh() const;
|
||||
//- Main driver routing to evolve the region - calls other evolves
|
||||
virtual void evolve();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
|
||||
filmSubModelBase::filmSubModelBase(surfaceFilmRegionModel& film)
|
||||
:
|
||||
subModelBase(film.outputProperties()),
|
||||
filmModel_(film)
|
||||
@ -45,7 +45,7 @@ filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
|
||||
|
||||
filmSubModelBase::filmSubModelBase
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& baseName,
|
||||
const word& modelType,
|
||||
@ -67,7 +67,7 @@ filmSubModelBase::filmSubModelBase
|
||||
filmSubModelBase::filmSubModelBase
|
||||
(
|
||||
const word& modelName,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& baseName,
|
||||
const word& modelType
|
||||
|
||||
@ -36,7 +36,7 @@ SourceFiles
|
||||
#ifndef filmSubModelBase_H
|
||||
#define filmSubModelBase_H
|
||||
|
||||
#include "surfaceFilmModel.H"
|
||||
#include "surfaceFilmRegionModel.H"
|
||||
#include "subModelBase.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -61,7 +61,7 @@ protected:
|
||||
// Protected data
|
||||
|
||||
//- Reference to the film surface film model
|
||||
surfaceFilmModel& filmModel_;
|
||||
surfaceFilmRegionModel& filmModel_;
|
||||
|
||||
|
||||
public:
|
||||
@ -69,12 +69,12 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmSubModelBase(surfaceFilmModel& film);
|
||||
filmSubModelBase(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from film film wihout name
|
||||
filmSubModelBase
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& baseName,
|
||||
const word& modelType,
|
||||
@ -85,7 +85,7 @@ public:
|
||||
filmSubModelBase
|
||||
(
|
||||
const word& modelName,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& baseName,
|
||||
const word& modelType
|
||||
@ -104,10 +104,10 @@ public:
|
||||
virtual bool writeTime() const;
|
||||
|
||||
//- Return const access to the film surface film model
|
||||
inline const surfaceFilmModel& film() const;
|
||||
inline const surfaceFilmRegionModel& film() const;
|
||||
|
||||
//- Return the reference to the film surface film model
|
||||
inline surfaceFilmModel& film();
|
||||
inline surfaceFilmRegionModel& film();
|
||||
|
||||
template<class FilmType>
|
||||
inline const FilmType& filmType() const;
|
||||
|
||||
@ -34,13 +34,13 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
inline const surfaceFilmModel& filmSubModelBase::film() const
|
||||
inline const surfaceFilmRegionModel& filmSubModelBase::film() const
|
||||
{
|
||||
return filmModel_;
|
||||
}
|
||||
|
||||
|
||||
inline surfaceFilmModel& filmSubModelBase::film()
|
||||
inline surfaceFilmRegionModel& filmSubModelBase::film()
|
||||
{
|
||||
return filmModel_;
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ void constantFilmThermo::init(thermoData& td)
|
||||
|
||||
constantFilmThermo::constantFilmThermo
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -140,7 +140,7 @@ public:
|
||||
//- Construct from surface film model and dictionary
|
||||
constantFilmThermo
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -43,7 +43,7 @@ defineRunTimeSelectionTable(filmThermoModel, dictionary);
|
||||
|
||||
filmThermoModel::filmThermoModel
|
||||
(
|
||||
surfaceFilmModel& film
|
||||
surfaceFilmRegionModel& film
|
||||
)
|
||||
:
|
||||
filmSubModelBase(film)
|
||||
@ -53,7 +53,7 @@ filmThermoModel::filmThermoModel
|
||||
filmThermoModel::filmThermoModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -81,7 +81,7 @@ public:
|
||||
filmThermoModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -90,13 +90,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmThermoModel(surfaceFilmModel& film);
|
||||
filmThermoModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmThermoModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -106,7 +106,7 @@ public:
|
||||
//- Return a reference to the selected phase change model
|
||||
static autoPtr<filmThermoModel> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<filmThermoModel> filmThermoModel::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
|
||||
@ -103,7 +103,7 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
|
||||
|
||||
liquidFilmThermo::liquidFilmThermo
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -107,7 +107,7 @@ public:
|
||||
//- Construct from surface film model and dictionary
|
||||
liquidFilmThermo
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ defineRunTimeSelectionTable(filmTurbulenceModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
|
||||
filmTurbulenceModel::filmTurbulenceModel(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film)
|
||||
{}
|
||||
@ -50,7 +50,7 @@ filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
|
||||
filmTurbulenceModel::filmTurbulenceModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -83,7 +83,7 @@ public:
|
||||
filmTurbulenceModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -92,13 +92,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmTurbulenceModel(surfaceFilmModel& film);
|
||||
filmTurbulenceModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmTurbulenceModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -108,7 +108,7 @@ public:
|
||||
//- Return a reference to the selected injection model
|
||||
static autoPtr<filmTurbulenceModel> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<filmTurbulenceModel> filmTurbulenceModel::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
|
||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable(filmTurbulenceModel, laminar, dictionary);
|
||||
|
||||
laminar::laminar
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -80,7 +80,7 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct from surface film model
|
||||
laminar(surfaceFilmModel& film, const dictionary& dict);
|
||||
laminar(surfaceFilmRegionModel& film, const dictionary& dict);
|
||||
|
||||
|
||||
//- Destructor
|
||||
|
||||
@ -95,7 +95,7 @@ void contactAngleForce::initialise()
|
||||
contactAngleForce::contactAngleForce
|
||||
(
|
||||
const word& typeName,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -96,7 +96,7 @@ public:
|
||||
contactAngleForce
|
||||
(
|
||||
const word& typeName,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
|
||||
|
||||
distributionContactAngleForce::distributionContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -95,7 +95,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
distributionContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable
|
||||
perturbedTemperatureDependentContactAngleForce::
|
||||
perturbedTemperatureDependentContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -111,7 +111,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
perturbedTemperatureDependentContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ addToRunTimeSelectionTable
|
||||
|
||||
temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -97,7 +97,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
temperatureDependentContactAngleForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ defineRunTimeSelectionTable(force, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
force::force(surfaceFilmModel& film)
|
||||
force::force(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film)
|
||||
{}
|
||||
@ -50,7 +50,7 @@ force::force(surfaceFilmModel& film)
|
||||
force::force
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -82,7 +82,7 @@ public:
|
||||
force,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -91,13 +91,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
force(surfaceFilmModel& film);
|
||||
force(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
force
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -107,7 +107,7 @@ public:
|
||||
//- Return a reference to the selected force model
|
||||
static autoPtr<force> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& modelType
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<force> force::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict,
|
||||
const word& modelType
|
||||
)
|
||||
|
||||
@ -36,7 +36,7 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
forceList::forceList(surfaceFilmModel& film)
|
||||
forceList::forceList(surfaceFilmRegionModel& film)
|
||||
:
|
||||
PtrList<force>()
|
||||
{}
|
||||
@ -44,7 +44,7 @@ forceList::forceList(surfaceFilmModel& film)
|
||||
|
||||
forceList::forceList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -60,12 +60,12 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
forceList(surfaceFilmModel& film);
|
||||
forceList(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
forceList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, thermocapillaryForce, dictionary);
|
||||
|
||||
thermocapillaryForce::thermocapillaryForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -76,7 +76,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
thermocapillaryForce
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ addToRunTimeSelectionTable(injectionModel, BrunDrippingInjection, dictionary);
|
||||
|
||||
BrunDrippingInjection::BrunDrippingInjection
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -118,7 +118,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
BrunDrippingInjection
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -220,7 +220,7 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
|
||||
|
||||
curvatureSeparation::curvatureSeparation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -121,7 +121,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
curvatureSeparation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ addToRunTimeSelectionTable(injectionModel, drippingInjection, dictionary);
|
||||
|
||||
drippingInjection::drippingInjection
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -105,7 +105,7 @@ public:
|
||||
//- Construct from surface film model
|
||||
drippingInjection
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ void injectionModel::addToInjectedMass(const scalar dMass)
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
injectionModel::injectionModel(surfaceFilmModel& film)
|
||||
injectionModel::injectionModel(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film),
|
||||
injectedMass_(0.0)
|
||||
@ -59,7 +59,7 @@ injectionModel::injectionModel(surfaceFilmModel& film)
|
||||
injectionModel::injectionModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -98,7 +98,7 @@ public:
|
||||
injectionModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -108,13 +108,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
injectionModel(surfaceFilmModel& film);
|
||||
injectionModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
injectionModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -124,7 +124,7 @@ public:
|
||||
//- Return a reference to the selected injection model
|
||||
static autoPtr<injectionModel> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& mdoelType
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<injectionModel> injectionModel::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict,
|
||||
const word& modelType
|
||||
)
|
||||
|
||||
@ -36,7 +36,7 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
injectionModelList::injectionModelList(surfaceFilmModel& film)
|
||||
injectionModelList::injectionModelList(surfaceFilmRegionModel& film)
|
||||
:
|
||||
PtrList<injectionModel>(),
|
||||
filmSubModelBase(film)
|
||||
@ -45,7 +45,7 @@ injectionModelList::injectionModelList(surfaceFilmModel& film)
|
||||
|
||||
injectionModelList::injectionModelList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -79,12 +79,12 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
injectionModelList(surfaceFilmModel& film);
|
||||
injectionModelList(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
injectionModelList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ addToRunTimeSelectionTable(injectionModel, patchInjection, dictionary);
|
||||
|
||||
patchInjection::patchInjection
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -86,7 +86,7 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct from surface film model
|
||||
patchInjection(surfaceFilmModel& film, const dictionary& dict);
|
||||
patchInjection(surfaceFilmRegionModel& film, const dictionary& dict);
|
||||
|
||||
|
||||
//- Destructor
|
||||
|
||||
@ -49,7 +49,7 @@ void transferModel::addToTransferredMass(const scalar dMass)
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
transferModel::transferModel(surfaceFilmModel& film)
|
||||
transferModel::transferModel(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film),
|
||||
transferredMass_(0.0)
|
||||
@ -59,7 +59,7 @@ transferModel::transferModel(surfaceFilmModel& film)
|
||||
transferModel::transferModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -98,7 +98,7 @@ public:
|
||||
transferModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -108,13 +108,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct for film
|
||||
transferModel(surfaceFilmModel& film);
|
||||
transferModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
transferModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -124,7 +124,7 @@ public:
|
||||
//- Return a reference to the selected injection model
|
||||
static autoPtr<transferModel> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
const word& modelType
|
||||
);
|
||||
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<transferModel> transferModel::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict,
|
||||
const word& modelType
|
||||
)
|
||||
|
||||
@ -36,7 +36,7 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
transferModelList::transferModelList(surfaceFilmModel& film)
|
||||
transferModelList::transferModelList(surfaceFilmRegionModel& film)
|
||||
:
|
||||
PtrList<transferModel>(),
|
||||
filmSubModelBase(film)
|
||||
@ -45,7 +45,7 @@ transferModelList::transferModelList(surfaceFilmModel& film)
|
||||
|
||||
transferModelList::transferModelList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -77,12 +77,12 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
transferModelList(surfaceFilmModel& film);
|
||||
transferModelList(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
transferModelList
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable
|
||||
|
||||
constantRadiation::constantRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -98,7 +98,7 @@ public:
|
||||
//- Construct from surface film model and dictionary
|
||||
constantRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ defineRunTimeSelectionTable(filmRadiationModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
|
||||
filmRadiationModel::filmRadiationModel(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film)
|
||||
{}
|
||||
@ -50,7 +50,7 @@ filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
|
||||
filmRadiationModel::filmRadiationModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -81,7 +81,7 @@ public:
|
||||
filmRadiationModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
),
|
||||
(film, dict)
|
||||
@ -90,13 +90,13 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmRadiationModel(surfaceFilmModel& film);
|
||||
filmRadiationModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmRadiationModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
@ -106,7 +106,7 @@ public:
|
||||
//- Return a reference to the selected phase change model
|
||||
static autoPtr<filmRadiationModel> New
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,7 +38,7 @@ namespace surfaceFilmModels
|
||||
|
||||
autoPtr<filmRadiationModel> filmRadiationModel::New
|
||||
(
|
||||
surfaceFilmModel& model,
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
|
||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable
|
||||
|
||||
noRadiation::noRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -77,7 +77,7 @@ public:
|
||||
//- Construct from surface film model and dictionary
|
||||
noRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ addToRunTimeSelectionTable
|
||||
|
||||
primaryRadiation::primaryRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
|
||||
@ -84,7 +84,7 @@ public:
|
||||
//- Construct from surface film model and dictionary
|
||||
primaryRadiation
|
||||
(
|
||||
surfaceFilmModel& film,
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user