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:
Henry Weller
2017-08-29 09:33:45 +01:00
parent 940e28f636
commit 82675f0976
340 changed files with 1020 additions and 3025 deletions

View File

@ -1,4 +1,4 @@
const volScalarField& psi = thermo.psi(); const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T(); const volScalarField& T = thermo.T();
filmModelType& surfaceFilm = tsurfaceFilm(); regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
const label inertIndex(composition.species()[inertSpecie]); const label inertIndex(composition.species()[inertSpecie]);

View File

@ -1,5 +1,6 @@
Info<< "\nConstructing surface film model" << endl; Info<< "\nConstructing surface film model" << endl;
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType; autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
(
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g)); regionModels::surfaceFilmModel::New(mesh, g)
);

View File

@ -1,41 +0,0 @@
{
volScalarField& he = thermo.he();
fvScalarMatrix EEqn
(
fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he)
+ fvc::ddt(rho, K) + fvc::div(phi, K)
+ (
he.name() == "e"
? fvc::div
(
fvc::absolute(phi/fvc::interpolate(rho), U),
p,
"div(phiv,p)"
)
: -dpdt
)
- fvm::laplacian(turbulence->alphaEff(), he)
==
rho*(U&g)
+ parcels.Sh(he)
+ surfaceFilm.Sh()
+ radiation->Sh(thermo, he)
+ Qdot
+ fvOptions(rho, he)
);
EEqn.relax();
fvOptions.constrain(EEqn);
EEqn.solve();
fvOptions.correct(he);
thermo.correct();
radiation->correct();
Info<< "T gas min/max = " << min(T).value() << ", "
<< max(T).value() << endl;
}

View File

@ -1,3 +0,0 @@
reactingParcelFilmFoam.C
EXE = $(FOAM_APPBIN)/reactingParcelFilmFoam

View File

@ -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

View File

@ -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);
}

View File

@ -1,51 +0,0 @@
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(
mesh,
fields,
phi,
mesh.divScheme("div(phi,Yi_h)")
)
);
{
combustion->correct();
Qdot = combustion->Qdot();
volScalarField Yt(0.0*Y[0]);
forAll(Y, i)
{
if (i != inertIndex && composition.active(i))
{
volScalarField& Yi = Y[i];
fvScalarMatrix YEqn
(
fvm::ddt(rho, Yi)
+ mvConvection->fvmDiv(phi, Yi)
- fvm::laplacian(turbulence->alphaEff(), Yi)
==
parcels.SYi(i, Yi)
+ fvOptions(rho, Yi)
+ combustion->R(Yi)
+ surfaceFilm.Srho(i)
);
YEqn.relax();
fvOptions.constrain(YEqn);
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);
Yi.max(0.0);
Yt += Yi;
}
}
Y[inertIndex] = scalar(1) - Yt;
Y[inertIndex].max(0.0);
}

View File

@ -1,9 +0,0 @@
Info<< "\nConstructing reacting cloud" << endl;
basicReactingCloud parcels
(
"reactingCloud1",
rho,
U,
g,
slgThermo
);

View File

@ -1,5 +0,0 @@
const label inertIndex(composition.species()[inertSpecie]);
const volScalarField& T = thermo.T();
const volScalarField& psi = thermo.psi();
filmModelType& surfaceFilm = tsurfaceFilm();

View File

@ -1,156 +0,0 @@
#include "createRDeltaT.H"
Info<< "Creating combustion model\n" << endl;
autoPtr<combustionModels::rhoCombustionModel> combustion
(
combustionModels::rhoCombustionModel::New(mesh)
);
rhoReactionThermo& 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());
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
#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 "createMRF.H"
#include "createClouds.H"
#include "createRadiationModel.H"
#include "createSurfaceFilmModel.H"

View File

@ -1,5 +0,0 @@
Info<< "\nConstructing surface film model" << endl;
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));

View File

@ -1,70 +0,0 @@
rho = thermo.rho();
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution
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",
(
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);
fvScalarMatrix p_rghDDtEqn
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ fvc::div(phiHbyA)
==
parcels.Srho()
+ surfaceFilm.Srho()
+ fvOptions(psi, p_rgh, rho.name())
);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix p_rghEqn
(
p_rghDDtEqn
- fvm::laplacian(rhorAUf, p_rgh)
);
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;
// Thermodynamic density update
thermo.correctRho(psi*p - psip0);
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);
}
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
K = 0.5*magSqr(U);

View File

@ -1,135 +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
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 "rhoCombustionModel.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;
}
// ************************************************************************* //

View File

@ -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);
}
// ************************************************************************* //

View File

@ -19,6 +19,7 @@
== ==
rho*(U&g) rho*(U&g)
+ parcels.Sh(he) + parcels.Sh(he)
+ surfaceFilm.Sh()
+ radiation->Sh(thermo, he) + radiation->Sh(thermo, he)
+ Qdot + Qdot
+ fvOptions(rho, he) + fvOptions(rho, he)
@ -35,6 +36,6 @@
thermo.correct(); thermo.correct();
radiation->correct(); radiation->correct();
Info<< "T gas min/max " << min(T).value() << ", " Info<< "T gas min/max = " << min(T).value() << ", "
<< max(T).value() << endl; << max(T).value() << endl;
} }

View File

@ -1,12 +1,11 @@
EXE_INC = \ EXE_INC = \
-I. \ -I. \
-I../reactingParcelFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I${LIB_SRC}/sampling/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \ -I${LIB_SRC}/meshTools/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/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)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -17,33 +16,33 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \ -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/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)/combustionModels/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(FOAM_SOLVERS)/combustion/reactingFoam -I$(FOAM_SOLVERS)/combustion/reactingFoam
EXE_LIBS = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools \ -lmeshTools \
-lturbulenceModels \ -lturbulenceModels \
-lcompressibleTurbulenceModels \ -lcompressibleTurbulenceModels \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
-lspecie \ -lspecie \
-lcompressibleTransportModels \ -lcompressibleTransportModels \
-lfluidThermophysicalModels \ -lfluidThermophysicalModels \
-lthermophysicalProperties \
-lreactionThermophysicalModels \ -lreactionThermophysicalModels \
-lSLGThermo \ -lSLGThermo \
-lchemistryModel \ -lchemistryModel \
-lradiationModels \
-lODE \
-lregionModels \ -lregionModels \
-lradiationModels \
-lsurfaceFilmModels \ -lsurfaceFilmModels \
-lcombustionModels \ -lsurfaceFilmDerivedFvPatchFields \
-lfvOptions \ -llagrangian \
-lsampling -llagrangianIntermediate \
-llagrangianTurbulence \
-lODE \
-lcombustionModels

View File

@ -6,8 +6,7 @@
+ MRF.DDt(rho, U) + MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U) + turbulence->divDevRhoReff(U)
== ==
rho()*g parcels.SU(U)
+ parcels.SU(U)
+ fvOptions(rho, U) + fvOptions(rho, U)
); );
@ -17,7 +16,18 @@
if (pimple.momentumPredictor()) 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); fvOptions.correct(U);
K = 0.5*magSqr(U); K = 0.5*magSqr(U);

View File

@ -9,6 +9,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
) )
); );
{ {
combustion->correct(); combustion->correct();
Qdot = combustion->Qdot(); Qdot = combustion->Qdot();
@ -24,11 +25,12 @@ tmp<fv::convectionScheme<scalar>> mvConvection
( (
fvm::ddt(rho, Yi) fvm::ddt(rho, Yi)
+ mvConvection->fvmDiv(phi, Yi) + mvConvection->fvmDiv(phi, Yi)
- fvm::laplacian(turbulence->muEff(), Yi) - fvm::laplacian(turbulence->alphaEff(), Yi)
== ==
parcels.SYi(i, Yi) parcels.SYi(i, Yi)
+ combustion->R(Yi)
+ fvOptions(rho, Yi) + fvOptions(rho, Yi)
+ combustion->R(Yi)
+ surfaceFilm.Srho(i)
); );
YEqn.relax(); YEqn.relax();

View File

@ -1,3 +1,5 @@
const label inertIndex(composition.species()[inertSpecie]);
const volScalarField& T = thermo.T(); const volScalarField& T = thermo.T();
const volScalarField& psi = thermo.psi(); const volScalarField& psi = thermo.psi();
const label inertIndex(composition.species()[inertSpecie]); regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();

View File

@ -1,7 +1,5 @@
#include "createRDeltaT.H" #include "createRDeltaT.H"
#include "readGravitationalAcceleration.H"
Info<< "Creating combustion model\n" << endl; Info<< "Creating combustion model\n" << endl;
autoPtr<combustionModels::rhoCombustionModel> combustion autoPtr<combustionModels::rhoCombustionModel> combustion
@ -26,8 +24,7 @@ if (!composition.species().found(inertSpecie))
<< exit(FatalIOError); << exit(FatalIOError);
} }
volScalarField& p = thermo.p(); Info<< "Creating field rho\n" << endl;
volScalarField rho volScalarField rho
( (
IOobject IOobject
@ -41,6 +38,8 @@ volScalarField rho
thermo.rho() thermo.rho()
); );
volScalarField& p = thermo.p();
Info<< "\nReading field U\n" << endl; Info<< "\nReading field U\n" << endl;
volVectorField U volVectorField U
( (
@ -57,30 +56,6 @@ volVectorField U
#include "compressibleCreatePhi.H" #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; Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence autoPtr<compressible::turbulenceModel> turbulence
( (
@ -112,7 +87,32 @@ volScalarField dpdt
Info<< "Creating field kinetic energy K\n" << endl; Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U)); volScalarField K("K", 0.5*magSqr(U));
Info<< "Creating multi-variate interpolation scheme\n" << endl;
#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());
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields; multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
forAll(Y, i) forAll(Y, i)
@ -121,6 +121,11 @@ forAll(Y, i)
} }
fields.add(thermo.he()); fields.add(thermo.he());
Switch solvePrimaryRegion
(
pimple.dict().lookupOrDefault<Switch>("solvePrimaryRegion", true)
);
volScalarField Qdot volScalarField Qdot
( (
IOobject IOobject
@ -138,3 +143,4 @@ volScalarField Qdot
#include "createMRF.H" #include "createMRF.H"
#include "createRadiationModel.H" #include "createRadiationModel.H"
#include "createClouds.H" #include "createClouds.H"
#include "createSurfaceFilmModel.H"

View File

@ -0,0 +1,6 @@
Info<< "\nConstructing surface film model" << endl;
autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
(
regionModels::surfaceFilmModel::New(mesh, g)
);

View File

@ -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 // Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution // pressure solution
@ -7,6 +10,9 @@ const volScalarField psip0(psi*p);
volScalarField rAU(1.0/UEqn.A()); volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU)); surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p)); volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA surfaceScalarField phiHbyA
( (
"phiHbyA", "phiHbyA",
@ -14,58 +20,68 @@ surfaceScalarField phiHbyA
fvc::flux(rho*HbyA) fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi) + rhorAUf*fvc::ddtCorr(rho, U, phi)
) )
+ phig
); );
MRF.makeRelative(fvc::interpolate(rho), phiHbyA); MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency // 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) + fvc::div(phiHbyA)
== ==
parcels.Srho() parcels.Srho()
+ fvOptions(psi, p, rho.name()) + surfaceFilm.Srho()
+ fvOptions(psi, p_rgh, rho.name())
); );
while (pimple.correctNonOrthogonal()) while (pimple.correctNonOrthogonal())
{ {
fvScalarMatrix pEqn fvScalarMatrix p_rghEqn
( (
pDDtEqn p_rghDDtEqn
- fvm::laplacian(rhorAUf, p) - 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()) 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 // Thermodynamic density update
thermo.correctRho(psi*p - psip0); thermo.correctRho(psi*p - psip0);
#include "rhoEqn.H" // NOTE: flux and time scales now inconsistent #include "rhoEqn.H"
#include "compressibleContinuityErrs.H" #include "compressibleContinuityErrs.H"
U = HbyA - rAU*fvc::grad(p); if (pressureControl.limit(p))
U.correctBoundaryConditions(); {
fvOptions.correct(U); p.correctBoundaryConditions();
K = 0.5*magSqr(U); rho = thermo.rho();
p_rgh = p - rho*gh;
}
else if (pimple.SIMPLErho())
{
rho = thermo.rho();
}
if (thermo.dpdt()) if (thermo.dpdt())
{ {
dpdt = fvc::ddt(p); 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;

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -26,18 +26,20 @@ Application
Description Description
Transient solver for compressible, turbulent flow with a reacting, 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 "fvCFD.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "basicReactingMultiphaseCloud.H" #include "basicReactingMultiphaseCloud.H"
#include "surfaceFilmModel.H"
#include "rhoCombustionModel.H" #include "rhoCombustionModel.H"
#include "radiationModel.H" #include "radiationModel.H"
#include "fvOptions.H"
#include "SLGThermo.H" #include "SLGThermo.H"
#include "fvOptions.H"
#include "pimpleControl.H" #include "pimpleControl.H"
#include "pressureControl.H"
#include "localEulerDdtScheme.H" #include "localEulerDdtScheme.H"
#include "fvcSmooth.H" #include "fvcSmooth.H"
@ -73,10 +75,14 @@ int main(int argc, char *argv[])
{ {
#include "readTimeControls.H" #include "readTimeControls.H"
if (!LTS) if (LTS)
{
#include "setRDeltaT.H"
}
else
{ {
#include "compressibleCourantNo.H" #include "compressibleCourantNo.H"
#include "setDeltaT.H" #include "setMultiRegionDeltaT.H"
} }
runTime++; runTime++;
@ -84,34 +90,36 @@ int main(int argc, char *argv[])
Info<< "Time = " << runTime.timeName() << nl << endl; Info<< "Time = " << runTime.timeName() << nl << endl;
parcels.evolve(); parcels.evolve();
surfaceFilm.evolve();
if (LTS) if (solvePrimaryRegion)
{ {
#include "setRDeltaT.H" if (pimple.nCorrPIMPLE() <= 1)
}
#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())
{ {
#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(); runTime.write();
@ -120,7 +128,7 @@ int main(int argc, char *argv[])
<< nl << endl; << nl << endl;
} }
Info<< "End\n" << endl; Info<< "End" << endl;
return 0; return 0;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -36,15 +36,13 @@ Description
+ fvc::div(phi) + fvc::div(phi)
== ==
parcels.Srho(rho) parcels.Srho(rho)
+ surfaceFilm.Srho()
+ fvOptions(rho) + fvOptions(rho)
); );
rhoEqn.solve(); rhoEqn.solve();
fvOptions.correct(rho); fvOptions.correct(rho);
Info<< "rho min/max = " << min(rho).value() << ", " << max(rho).value()
<< endl;
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -33,25 +33,21 @@ Description
if (adjustTimeStep) if (adjustTimeStep)
{ {
if (CoNum == -GREAT) const scalar maxDeltaTFact =
{ min(maxCo/(CoNum + SMALL), maxCo/(surfaceFilm.CourantNumber() + SMALL));
CoNum = SMALL; const scalar deltaTFact =
} min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2);
const scalar TFactorFluid = maxCo/(CoNum + SMALL);
const scalar TFactorFilm = maxCo/(surfaceFilm.CourantNumber() + SMALL);
const scalar dt0 = runTime.deltaTValue();
runTime.setDeltaT runTime.setDeltaT
( (
min min
( (
dt0*min(min(TFactorFluid, TFactorFilm), 1.2), deltaTFact*runTime.deltaTValue(),
maxDeltaT maxDeltaT
) )
); );
Info<< "deltaT = " << runTime.deltaTValue() << endl;
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,33 +0,0 @@
{
volScalarField& he = thermo.he();
fvScalarMatrix EEqn
(
mvConvection->fvmDiv(phi, he)
+ (
he.name() == "e"
? fvc::div(phi, volScalarField("Ekp", 0.5*magSqr(U) + p/rho))
: fvc::div(phi, volScalarField("K", 0.5*magSqr(U)))
)
- fvm::laplacian(turbulence->alphaEff(), he)
==
rho*(U&g)
+ parcels.Sh(he)
+ radiation->Sh(thermo, he)
+ Qdot
+ fvOptions(rho, he)
);
EEqn.relax();
fvOptions.constrain(EEqn);
EEqn.solve();
fvOptions.correct(he);
thermo.correct();
radiation->correct();
Info<< "T gas min/max = " << min(T).value() << ", "
<< max(T).value() << endl;
}

View File

@ -1,3 +0,0 @@
simpleReactingParcelFoam.C
EXE = $(FOAM_APPBIN)/simpleReactingParcelFoam

View File

@ -1,49 +0,0 @@
EXE_INC = \
-I. \
-I$(LIB_SRC)/finiteVolume/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 \
-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)/ODE/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(FOAM_SOLVERS)/combustion/reactingFoam
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
-lspecie \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lthermophysicalProperties \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiationModels \
-lODE \
-lregionModels \
-lsurfaceFilmModels \
-lcombustionModels \
-lfvOptions \
-lsampling

View File

@ -1,21 +0,0 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U)
==
rho()*g
+ parcels.SU(U)
+ fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn.relax();
fvOptions.constrain(UEqn);
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);

View File

@ -1,48 +0,0 @@
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(
mesh,
fields,
phi,
mesh.divScheme("div(phi,Yi_h)")
)
);
{
combustion->correct();
Qdot = combustion->Qdot();
volScalarField Yt(0.0*Y[0]);
forAll(Y, i)
{
if (i != inertIndex && composition.active(i))
{
volScalarField& Yi = Y[i];
fvScalarMatrix YEqn
(
mvConvection->fvmDiv(phi, Yi)
- fvm::laplacian(turbulence->muEff(), Yi)
==
parcels.SYi(i, Yi)
+ combustion->R(Yi)
+ fvOptions(rho, Yi)
);
YEqn.relax();
fvOptions.constrain(YEqn);
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);
Yi.max(0.0);
Yt += Yi;
}
}
Y[inertIndex] = scalar(1) - Yt;
Y[inertIndex].max(0.0);
}

View File

@ -1,9 +0,0 @@
Info<< "\nConstructing reacting cloud" << endl;
basicReactingMultiphaseCloud parcels
(
"reactingCloud1",
rho,
U,
g,
slgThermo
);

View File

@ -1,122 +0,0 @@
#include "readGravitationalAcceleration.H"
Info<< "Creating combustion model\n" << endl;
autoPtr<combustionModels::rhoCombustionModel> combustion
(
combustionModels::rhoCombustionModel::New(mesh)
);
rhoReactionThermo& 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);
}
volScalarField& p = thermo.p();
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
thermo.rho()
);
Info<< "\nReading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
#include "compressibleCreatePhi.H"
mesh.setFluxRequired(p.name());
dimensionedScalar rhoMax
(
dimensionedScalar::lookupOrDefault
(
"rhoMax",
simple.dict(),
dimDensity,
GREAT
)
);
dimensionedScalar rhoMin
(
dimensionedScalar::lookupOrDefault
(
"rhoMin",
simple.dict(),
dimDensity,
0
)
);
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());
Info<< "Creating multi-variate interpolation scheme\n" << endl;
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
forAll(Y, i)
{
fields.add(Y[i]);
}
fields.add(thermo.he());
volScalarField Qdot
(
IOobject
(
"Qdot",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
);
#include "createMRF.H"
#include "createRadiationModel.H"
#include "createClouds.H"

View File

@ -1,55 +0,0 @@
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution
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));
tUEqn.clear();
surfaceScalarField phiHbyA
(
"phiHbyA",
fvc::interpolate(rho)*fvc::flux(HbyA)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (simple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvc::div(phiHbyA)
- fvm::laplacian(rhorAUf, p)
==
parcels.Srho()
+ fvOptions(psi, p, rho.name())
);
pEqn.solve();
if (simple.finalNonOrthogonalIter())
{
phi = phiHbyA + pEqn.flux();
}
}
p.relax();
// Thermodynamic density update
thermo.correctRho(psi*p - psip0);
#include "compressibleContinuityErrs.H"
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
rho = thermo.rho();
rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
Info<< "p min/max = " << min(p).value() << ", " << max(p).value() << endl;

View File

@ -1,93 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 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
simpleReactingParcelFoam
Description
Steady state solver for compressible, turbulent flow with reacting,
multiphase particle clouds and optional sources/constraints.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "turbulentFluidThermoModel.H"
#include "basicReactingMultiphaseCloud.H"
#include "rhoCombustionModel.H"
#include "radiationModel.H"
#include "IOporosityModelList.H"
#include "fvOptions.H"
#include "SLGThermo.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
parcels.evolve();
// --- Pressure-velocity SIMPLE corrector loop
{
#include "UEqn.H"
#include "YEqn.H"
#include "EEqn.H"
#include "pEqn.H"
}
turbulence->correct();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -45,7 +45,7 @@ addToRunTimeSelectionTable(transferModel, VoFPatchTransfer, dictionary);
VoFPatchTransfer::VoFPatchTransfer VoFPatchTransfer::VoFPatchTransfer
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -98,7 +98,7 @@ public:
// Constructors // Constructors
//- Construct from surface film model //- Construct from surface film model
VoFPatchTransfer(surfaceFilmModel& film, const dictionary& dict); VoFPatchTransfer(surfaceFilmRegionModel& film, const dictionary& dict);
//- Destructor //- Destructor

View File

@ -72,7 +72,7 @@ int main(int argc, char *argv[])
const volScalarField& psi1 = mixture.thermo1().psi(); const volScalarField& psi1 = mixture.thermo1().psi();
const volScalarField& psi2 = mixture.thermo2().psi(); const volScalarField& psi2 = mixture.thermo2().psi();
filmModelType& surfaceFilm = tsurfaceFilm(); regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
turbulence->validate(); turbulence->validate();

View File

@ -1,6 +1,7 @@
Info<< "\nConstructing surface film model" << endl; Info<< "\nConstructing surface film model" << endl;
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
SLGThermo slgThermo(mesh, mixture.thermo1()); SLGThermo slgThermo(mesh, mixture.thermo1());
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g)); autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
(
regionModels::surfaceFilmModel::New(mesh, g)
);

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "SurfaceFilmModel.H" #include "SurfaceFilmModel.H"
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
#include "mathematicalConstants.H" #include "mathematicalConstants.H"
using namespace Foam::constant; using namespace Foam::constant;
@ -109,9 +109,9 @@ void Foam::SurfaceFilmModel<CloudType>::inject(TrackData& td)
} }
// Retrieve the film model from the owner database // 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 this->owner().mesh().time().objectRegistry::template lookupObject
<regionModels::surfaceFilmModels::surfaceFilmModel> <regionModels::surfaceFilmModels::surfaceFilmRegionModel>
( (
"surfaceFilmProperties" "surfaceFilmProperties"
); );
@ -190,7 +190,7 @@ void Foam::SurfaceFilmModel<CloudType>::cacheFilmFields
( (
const label filmPatchi, const label filmPatchi,
const label primaryPatchi, const label primaryPatchi,
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
) )
{ {
massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchi]; massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchi];

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -51,7 +51,7 @@ namespace regionModels
{ {
namespace surfaceFilmModels namespace surfaceFilmModels
{ {
class surfaceFilmModel; class surfaceFilmRegionModel;
} }
} }
@ -114,7 +114,7 @@ protected:
( (
const label filmPatchi, const label filmPatchi,
const label primaryPatchi, const label primaryPatchi,
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
); );
//- Set the individual parcel properties //- Set the individual parcel properties

View File

@ -1,4 +1,4 @@
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------* \
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
@ -131,7 +131,7 @@ Foam::vector Foam::ThermoSurfaceFilm<CloudType>::splashDirection
template<class CloudType> template<class CloudType>
void Foam::ThermoSurfaceFilm<CloudType>::absorbInteraction void Foam::ThermoSurfaceFilm<CloudType>::absorbInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -208,7 +208,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::bounceInteraction
template<class CloudType> template<class CloudType>
void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -264,7 +264,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
template<class CloudType> template<class CloudType>
void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
parcelType& p, parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -341,7 +341,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
template<class CloudType> template<class CloudType>
void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -559,11 +559,12 @@ bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
) )
{ {
// Retrieve the film model from the owner database // Retrieve the film model from the owner database
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel = regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel =
const_cast<regionModels::surfaceFilmModels::surfaceFilmModel&> const_cast<regionModels::surfaceFilmModels::surfaceFilmRegionModel&>
( (
this->owner().db().time().objectRegistry::template this->owner().db().time().objectRegistry::template
lookupObject<regionModels::surfaceFilmModels::surfaceFilmModel> lookupObject
<regionModels::surfaceFilmModels::surfaceFilmRegionModel>
( (
"surfaceFilmProperties" "surfaceFilmProperties"
) )
@ -627,7 +628,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields
( (
const label filmPatchi, const label filmPatchi,
const label primaryPatchi, const label primaryPatchi,
const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
) )
{ {
SurfaceFilmModel<CloudType>::cacheFilmFields SurfaceFilmModel<CloudType>::cacheFilmFields

View File

@ -168,7 +168,7 @@ protected:
//- Absorb parcel into film //- Absorb parcel into film
void absorbInteraction void absorbInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -188,7 +188,7 @@ protected:
//- Parcel interaction with dry surface //- Parcel interaction with dry surface
void drySplashInteraction void drySplashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -198,7 +198,7 @@ protected:
//- Parcel interaction with wetted surface //- Parcel interaction with wetted surface
void wetSplashInteraction void wetSplashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
parcelType& p, parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -208,7 +208,7 @@ protected:
//- Bai parcel splash interaction model //- Bai parcel splash interaction model
void splashInteraction void splashInteraction
( (
regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
const parcelType& p, const parcelType& p,
const polyPatch& pp, const polyPatch& pp,
const label facei, const label facei,
@ -227,7 +227,7 @@ protected:
( (
const label filmPatchi, const label filmPatchi,
const label primaryPatchi, const label primaryPatchi,
const regionModels::surfaceFilmModels::surfaceFilmModel& const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
filmModel filmModel
); );

View File

@ -27,7 +27,7 @@ License
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "surfaceFields.H" #include "surfaceFields.H"
#include "pyrolysisModel.H" #include "pyrolysisModel.H"
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -123,7 +123,9 @@ void Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField::updateCoeffs()
return; return;
} }
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType; typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
filmModelType;
typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType; typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
// Since we're inside initEvaluate/evaluate there might be processor // Since we're inside initEvaluate/evaluate there might be processor

View File

@ -27,7 +27,7 @@ License
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "surfaceFields.H" #include "surfaceFields.H"
#include "pyrolysisModel.H" #include "pyrolysisModel.H"
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -123,7 +123,9 @@ void Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::updateCoeffs()
return; return;
} }
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType; typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
filmModelType;
typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType; typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
// Since we're inside initEvaluate/evaluate there might be processor // Since we're inside initEvaluate/evaluate there might be processor

View File

@ -1,6 +1,7 @@
/* Surface film models */ /* Surface film models */
surfaceFilmModel/surfaceFilmModel.C surfaceFilmModel/surfaceFilmModel.C
surfaceFilmModel/surfaceFilmModelNew.C surfaceFilmModel/surfaceFilmModelNew.C
surfaceFilmRegionModel/surfaceFilmRegionModel.C
noFilm/noFilm.C noFilm/noFilm.C
kinematicSingleLayer/kinematicSingleLayer.C kinematicSingleLayer/kinematicSingleLayer.C
thermoSingleLayer/thermoSingleLayer.C thermoSingleLayer/thermoSingleLayer.C

View File

@ -25,7 +25,7 @@ License
#include "alphatFilmWallFunctionFvPatchScalarField.H" #include "alphatFilmWallFunctionFvPatchScalarField.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
#include "fvPatchFieldMapper.H" #include "fvPatchFieldMapper.H"
#include "volFields.H" #include "volFields.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
@ -134,7 +134,7 @@ void alphatFilmWallFunctionFvPatchScalarField::updateCoeffs()
return; return;
} }
typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType; typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
// Since we're inside initEvaluate/evaluate there might be processor // Since we're inside initEvaluate/evaluate there might be processor
// comms underway. Change the tag we use. // comms underway. Change the tag we use.

View File

@ -28,7 +28,7 @@ License
#include "volFields.H" #include "volFields.H"
#include "turbulentFluidThermoModel.H" #include "turbulentFluidThermoModel.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
#include "mappedWallPolyPatch.H" #include "mappedWallPolyPatch.H"
#include "mapDistribute.H" #include "mapDistribute.H"
@ -51,7 +51,7 @@ tmp<scalarField> nutkFilmWallFunctionFvPatchScalarField::calcUTau
tmp<scalarField> tuTau(new scalarField(patch().size(), 0.0)); tmp<scalarField> tuTau(new scalarField(patch().size(), 0.0));
scalarField& uTau = tuTau.ref(); scalarField& uTau = tuTau.ref();
typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType; typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
bool foundFilm = bool foundFilm =
db().time().foundObject<modelType>("surfaceFilmProperties"); db().time().foundObject<modelType>("surfaceFilmProperties");

View File

@ -49,13 +49,13 @@ namespace surfaceFilmModels
defineTypeNameAndDebug(kinematicSingleLayer, 0); defineTypeNameAndDebug(kinematicSingleLayer, 0);
addToRunTimeSelectionTable(surfaceFilmModel, kinematicSingleLayer, mesh); addToRunTimeSelectionTable(surfaceFilmRegionModel, kinematicSingleLayer, mesh);
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
bool kinematicSingleLayer::read() bool kinematicSingleLayer::read()
{ {
if (surfaceFilmModel::read()) if (surfaceFilmRegionModel::read())
{ {
const dictionary& solution = this->solution().subDict("PISO"); const dictionary& solution = this->solution().subDict("PISO");
solution.lookup("momentumPredictor") >> momentumPredictor_; solution.lookup("momentumPredictor") >> momentumPredictor_;
@ -451,7 +451,7 @@ kinematicSingleLayer::kinematicSingleLayer
const bool readFields const bool readFields
) )
: :
surfaceFilmModel(modelType, mesh, g, regionType), surfaceFilmRegionModel(modelType, mesh, g, regionType),
momentumPredictor_(solution().subDict("PISO").lookup("momentumPredictor")), momentumPredictor_(solution().subDict("PISO").lookup("momentumPredictor")),
nOuterCorr_(solution().subDict("PISO").lookupOrDefault("nOuterCorr", 1)), nOuterCorr_(solution().subDict("PISO").lookupOrDefault("nOuterCorr", 1)),
@ -873,7 +873,7 @@ void kinematicSingleLayer::preEvolveRegion()
InfoInFunction << endl; InfoInFunction << endl;
} }
surfaceFilmModel::preEvolveRegion(); surfaceFilmRegionModel::preEvolveRegion();
transferPrimaryRegionThermoFields(); transferPrimaryRegionThermoFields();

View File

@ -35,7 +35,7 @@ SourceFiles
#ifndef kinematicSingleLayer_H #ifndef kinematicSingleLayer_H
#define kinematicSingleLayer_H #define kinematicSingleLayer_H
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
#include "fvMesh.H" #include "fvMesh.H"
#include "volFields.H" #include "volFields.H"
#include "surfaceFields.H" #include "surfaceFields.H"
@ -64,7 +64,7 @@ class filmThermoModel;
class kinematicSingleLayer class kinematicSingleLayer
: :
public surfaceFilmModel public surfaceFilmRegionModel
{ {
private: private:

View File

@ -41,23 +41,6 @@ namespace surfaceFilmModels
defineTypeNameAndDebug(noFilm, 0); defineTypeNameAndDebug(noFilm, 0);
addToRunTimeSelectionTable(surfaceFilmModel, noFilm, mesh); addToRunTimeSelectionTable(surfaceFilmModel, noFilm, mesh);
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
bool noFilm::read()
{
if (surfaceFilmModel::read())
{
// no additional info to read
return true;
}
else
{
return false;
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
noFilm::noFilm noFilm::noFilm
@ -68,7 +51,8 @@ noFilm::noFilm
const word& regionType const word& regionType
) )
: :
surfaceFilmModel(modelType, mesh, g, regionType) surfaceFilmModel(),
mesh_(mesh)
{} {}
@ -80,174 +64,9 @@ noFilm::~noFilm()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void noFilm::addSources Foam::scalar noFilm::CourantNumber() const
(
const label,
const label,
const scalar,
const vector&,
const scalar,
const scalar
)
{}
const volScalarField& noFilm::delta() const
{ {
FatalErrorInFunction return 0;
<< "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();
} }
@ -260,13 +79,13 @@ tmp<volScalarField::Internal> noFilm::Srho() const
IOobject IOobject
( (
"noFilm::Srho", "noFilm::Srho",
time().timeName(), mesh_.time().timeName(),
primaryMesh(), mesh_,
IOobject::NO_READ, IOobject::NO_READ,
IOobject::NO_WRITE, IOobject::NO_WRITE,
false false
), ),
primaryMesh(), mesh_,
dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
) )
); );
@ -282,13 +101,13 @@ tmp<volScalarField::Internal> noFilm::Srho(const label i) const
IOobject IOobject
( (
"noFilm::Srho(" + Foam::name(i) + ")", "noFilm::Srho(" + Foam::name(i) + ")",
time().timeName(), mesh_.time().timeName(),
primaryMesh(), mesh_,
IOobject::NO_READ, IOobject::NO_READ,
IOobject::NO_WRITE, IOobject::NO_WRITE,
false false
), ),
primaryMesh(), mesh_,
dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
) )
); );
@ -304,19 +123,23 @@ tmp<volScalarField::Internal> noFilm::Sh() const
IOobject IOobject
( (
"noFilm::Sh", "noFilm::Sh",
time().timeName(), mesh_.time().timeName(),
primaryMesh(), mesh_,
IOobject::NO_READ, IOobject::NO_READ,
IOobject::NO_WRITE, IOobject::NO_WRITE,
false false
), ),
primaryMesh(), mesh_,
dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0) dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
) )
); );
} }
void noFilm::evolve()
{}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace surfaceFilmModels } // End namespace surfaceFilmModels

View File

@ -22,10 +22,11 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::noFilm Foam::regionModels::surfaceFilmModels::noFilm
Description Description
Dummy surface film model for 'none' Dummy surfaceFilmModel to allow solvers supporting film simulations to be
run without a film region.
SourceFiles SourceFiles
noFilm.C noFilm.C
@ -54,7 +55,11 @@ class noFilm
: :
public surfaceFilmModel public surfaceFilmModel
{ {
private: // Private member data
//- Reference to the mesh
const fvMesh& mesh_;
// Private member functions // Private member functions
@ -65,14 +70,6 @@ private:
void operator=(const noFilm&); void operator=(const noFilm&);
protected:
// Protected member functions
//- Read control parameters from dictionary
virtual bool read();
public: public:
//- Runtime type information //- Runtime type information
@ -97,89 +94,31 @@ public:
// Member Functions // Member Functions
// Access // Solution parameters
//- External hook to add sources to the film //- Courant number evaluation
virtual void addSources 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 i
const label facei, ) const;
const scalar massSource,
const vector& momentumSource, //- Return enthalpy source - Eulerian phase only
const scalar pressureSource, virtual tmp<volScalarField::Internal> Sh() const;
const scalar energySource
);
// Fields // Evolution
//- Return the film thickness [m] //- Main driver routing to evolve the region - calls other evolves
virtual const volScalarField& delta() const; virtual void evolve();
//- 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;
}; };

View File

@ -36,7 +36,7 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
filmSubModelBase::filmSubModelBase(surfaceFilmModel& film) filmSubModelBase::filmSubModelBase(surfaceFilmRegionModel& film)
: :
subModelBase(film.outputProperties()), subModelBase(film.outputProperties()),
filmModel_(film) filmModel_(film)
@ -45,7 +45,7 @@ filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
filmSubModelBase::filmSubModelBase filmSubModelBase::filmSubModelBase
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& baseName, const word& baseName,
const word& modelType, const word& modelType,
@ -67,7 +67,7 @@ filmSubModelBase::filmSubModelBase
filmSubModelBase::filmSubModelBase filmSubModelBase::filmSubModelBase
( (
const word& modelName, const word& modelName,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& baseName, const word& baseName,
const word& modelType const word& modelType

View File

@ -36,7 +36,7 @@ SourceFiles
#ifndef filmSubModelBase_H #ifndef filmSubModelBase_H
#define filmSubModelBase_H #define filmSubModelBase_H
#include "surfaceFilmModel.H" #include "surfaceFilmRegionModel.H"
#include "subModelBase.H" #include "subModelBase.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,7 +61,7 @@ protected:
// Protected data // Protected data
//- Reference to the film surface film model //- Reference to the film surface film model
surfaceFilmModel& filmModel_; surfaceFilmRegionModel& filmModel_;
public: public:
@ -69,12 +69,12 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
filmSubModelBase(surfaceFilmModel& film); filmSubModelBase(surfaceFilmRegionModel& film);
//- Construct from film film wihout name //- Construct from film film wihout name
filmSubModelBase filmSubModelBase
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& baseName, const word& baseName,
const word& modelType, const word& modelType,
@ -85,7 +85,7 @@ public:
filmSubModelBase filmSubModelBase
( (
const word& modelName, const word& modelName,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& baseName, const word& baseName,
const word& modelType const word& modelType
@ -104,10 +104,10 @@ public:
virtual bool writeTime() const; virtual bool writeTime() const;
//- Return const access to the film surface film model //- 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 //- Return the reference to the film surface film model
inline surfaceFilmModel& film(); inline surfaceFilmRegionModel& film();
template<class FilmType> template<class FilmType>
inline const FilmType& filmType() const; inline const FilmType& filmType() const;

View File

@ -34,13 +34,13 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
inline const surfaceFilmModel& filmSubModelBase::film() const inline const surfaceFilmRegionModel& filmSubModelBase::film() const
{ {
return filmModel_; return filmModel_;
} }
inline surfaceFilmModel& filmSubModelBase::film() inline surfaceFilmRegionModel& filmSubModelBase::film()
{ {
return filmModel_; return filmModel_;
} }

View File

@ -61,7 +61,7 @@ void constantFilmThermo::init(thermoData& td)
constantFilmThermo::constantFilmThermo constantFilmThermo::constantFilmThermo
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -140,7 +140,7 @@ public:
//- Construct from surface film model and dictionary //- Construct from surface film model and dictionary
constantFilmThermo constantFilmThermo
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -43,7 +43,7 @@ defineRunTimeSelectionTable(filmThermoModel, dictionary);
filmThermoModel::filmThermoModel filmThermoModel::filmThermoModel
( (
surfaceFilmModel& film surfaceFilmRegionModel& film
) )
: :
filmSubModelBase(film) filmSubModelBase(film)
@ -53,7 +53,7 @@ filmThermoModel::filmThermoModel
filmThermoModel::filmThermoModel filmThermoModel::filmThermoModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -81,7 +81,7 @@ public:
filmThermoModel, filmThermoModel,
dictionary, dictionary,
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
), ),
(film, dict) (film, dict)
@ -90,13 +90,13 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
filmThermoModel(surfaceFilmModel& film); filmThermoModel(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
filmThermoModel filmThermoModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );
@ -106,7 +106,7 @@ public:
//- Return a reference to the selected phase change model //- Return a reference to the selected phase change model
static autoPtr<filmThermoModel> New static autoPtr<filmThermoModel> New
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,7 +38,7 @@ namespace surfaceFilmModels
autoPtr<filmThermoModel> filmThermoModel::New autoPtr<filmThermoModel> filmThermoModel::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict const dictionary& dict
) )
{ {

View File

@ -103,7 +103,7 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
liquidFilmThermo::liquidFilmThermo liquidFilmThermo::liquidFilmThermo
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -107,7 +107,7 @@ public:
//- Construct from surface film model and dictionary //- Construct from surface film model and dictionary
liquidFilmThermo liquidFilmThermo
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -41,7 +41,7 @@ defineRunTimeSelectionTable(filmTurbulenceModel, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film) filmTurbulenceModel::filmTurbulenceModel(surfaceFilmRegionModel& film)
: :
filmSubModelBase(film) filmSubModelBase(film)
{} {}
@ -50,7 +50,7 @@ filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
filmTurbulenceModel::filmTurbulenceModel filmTurbulenceModel::filmTurbulenceModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -83,7 +83,7 @@ public:
filmTurbulenceModel, filmTurbulenceModel,
dictionary, dictionary,
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
), ),
(film, dict) (film, dict)
@ -92,13 +92,13 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
filmTurbulenceModel(surfaceFilmModel& film); filmTurbulenceModel(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
filmTurbulenceModel filmTurbulenceModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );
@ -108,7 +108,7 @@ public:
//- Return a reference to the selected injection model //- Return a reference to the selected injection model
static autoPtr<filmTurbulenceModel> New static autoPtr<filmTurbulenceModel> New
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,7 +38,7 @@ namespace surfaceFilmModels
autoPtr<filmTurbulenceModel> filmTurbulenceModel::New autoPtr<filmTurbulenceModel> filmTurbulenceModel::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict const dictionary& dict
) )
{ {

View File

@ -51,7 +51,7 @@ addToRunTimeSelectionTable(filmTurbulenceModel, laminar, dictionary);
laminar::laminar laminar::laminar
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -80,7 +80,7 @@ public:
// Constructors // Constructors
//- Construct from surface film model //- Construct from surface film model
laminar(surfaceFilmModel& film, const dictionary& dict); laminar(surfaceFilmRegionModel& film, const dictionary& dict);
//- Destructor //- Destructor

View File

@ -95,7 +95,7 @@ void contactAngleForce::initialise()
contactAngleForce::contactAngleForce contactAngleForce::contactAngleForce
( (
const word& typeName, const word& typeName,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -96,7 +96,7 @@ public:
contactAngleForce contactAngleForce
( (
const word& typeName, const word& typeName,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
distributionContactAngleForce::distributionContactAngleForce distributionContactAngleForce::distributionContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -95,7 +95,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
distributionContactAngleForce distributionContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -51,7 +51,7 @@ addToRunTimeSelectionTable
perturbedTemperatureDependentContactAngleForce:: perturbedTemperatureDependentContactAngleForce::
perturbedTemperatureDependentContactAngleForce perturbedTemperatureDependentContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -111,7 +111,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
perturbedTemperatureDependentContactAngleForce perturbedTemperatureDependentContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -50,7 +50,7 @@ addToRunTimeSelectionTable
temperatureDependentContactAngleForce::temperatureDependentContactAngleForce temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -97,7 +97,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
temperatureDependentContactAngleForce temperatureDependentContactAngleForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -41,7 +41,7 @@ defineRunTimeSelectionTable(force, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
force::force(surfaceFilmModel& film) force::force(surfaceFilmRegionModel& film)
: :
filmSubModelBase(film) filmSubModelBase(film)
{} {}
@ -50,7 +50,7 @@ force::force(surfaceFilmModel& film)
force::force force::force
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -82,7 +82,7 @@ public:
force, force,
dictionary, dictionary,
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
), ),
(film, dict) (film, dict)
@ -91,13 +91,13 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
force(surfaceFilmModel& film); force(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
force force
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );
@ -107,7 +107,7 @@ public:
//- Return a reference to the selected force model //- Return a reference to the selected force model
static autoPtr<force> New static autoPtr<force> New
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& modelType const word& modelType
); );

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,7 +38,7 @@ namespace surfaceFilmModels
autoPtr<force> force::New autoPtr<force> force::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict, const dictionary& dict,
const word& modelType const word& modelType
) )

View File

@ -36,7 +36,7 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
forceList::forceList(surfaceFilmModel& film) forceList::forceList(surfaceFilmRegionModel& film)
: :
PtrList<force>() PtrList<force>()
{} {}
@ -44,7 +44,7 @@ forceList::forceList(surfaceFilmModel& film)
forceList::forceList forceList::forceList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -60,12 +60,12 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
forceList(surfaceFilmModel& film); forceList(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
forceList forceList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, thermocapillaryForce, dictionary);
thermocapillaryForce::thermocapillaryForce thermocapillaryForce::thermocapillaryForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -76,7 +76,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
thermocapillaryForce thermocapillaryForce
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -45,7 +45,7 @@ addToRunTimeSelectionTable(injectionModel, BrunDrippingInjection, dictionary);
BrunDrippingInjection::BrunDrippingInjection BrunDrippingInjection::BrunDrippingInjection
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -118,7 +118,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
BrunDrippingInjection BrunDrippingInjection
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -220,7 +220,7 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
curvatureSeparation::curvatureSeparation curvatureSeparation::curvatureSeparation
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -121,7 +121,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
curvatureSeparation curvatureSeparation
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -50,7 +50,7 @@ addToRunTimeSelectionTable(injectionModel, drippingInjection, dictionary);
drippingInjection::drippingInjection drippingInjection::drippingInjection
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -105,7 +105,7 @@ public:
//- Construct from surface film model //- Construct from surface film model
drippingInjection drippingInjection
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -49,7 +49,7 @@ void injectionModel::addToInjectedMass(const scalar dMass)
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
injectionModel::injectionModel(surfaceFilmModel& film) injectionModel::injectionModel(surfaceFilmRegionModel& film)
: :
filmSubModelBase(film), filmSubModelBase(film),
injectedMass_(0.0) injectedMass_(0.0)
@ -59,7 +59,7 @@ injectionModel::injectionModel(surfaceFilmModel& film)
injectionModel::injectionModel injectionModel::injectionModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -98,7 +98,7 @@ public:
injectionModel, injectionModel,
dictionary, dictionary,
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
), ),
(film, dict) (film, dict)
@ -108,13 +108,13 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
injectionModel(surfaceFilmModel& film); injectionModel(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
injectionModel injectionModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );
@ -124,7 +124,7 @@ public:
//- Return a reference to the selected injection model //- Return a reference to the selected injection model
static autoPtr<injectionModel> New static autoPtr<injectionModel> New
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& mdoelType const word& mdoelType
); );

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,7 +38,7 @@ namespace surfaceFilmModels
autoPtr<injectionModel> injectionModel::New autoPtr<injectionModel> injectionModel::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict, const dictionary& dict,
const word& modelType const word& modelType
) )

View File

@ -36,7 +36,7 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
injectionModelList::injectionModelList(surfaceFilmModel& film) injectionModelList::injectionModelList(surfaceFilmRegionModel& film)
: :
PtrList<injectionModel>(), PtrList<injectionModel>(),
filmSubModelBase(film) filmSubModelBase(film)
@ -45,7 +45,7 @@ injectionModelList::injectionModelList(surfaceFilmModel& film)
injectionModelList::injectionModelList injectionModelList::injectionModelList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -79,12 +79,12 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
injectionModelList(surfaceFilmModel& film); injectionModelList(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
injectionModelList injectionModelList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -44,7 +44,7 @@ addToRunTimeSelectionTable(injectionModel, patchInjection, dictionary);
patchInjection::patchInjection patchInjection::patchInjection
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -86,7 +86,7 @@ public:
// Constructors // Constructors
//- Construct from surface film model //- Construct from surface film model
patchInjection(surfaceFilmModel& film, const dictionary& dict); patchInjection(surfaceFilmRegionModel& film, const dictionary& dict);
//- Destructor //- Destructor

View File

@ -49,7 +49,7 @@ void transferModel::addToTransferredMass(const scalar dMass)
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
transferModel::transferModel(surfaceFilmModel& film) transferModel::transferModel(surfaceFilmRegionModel& film)
: :
filmSubModelBase(film), filmSubModelBase(film),
transferredMass_(0.0) transferredMass_(0.0)
@ -59,7 +59,7 @@ transferModel::transferModel(surfaceFilmModel& film)
transferModel::transferModel transferModel::transferModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -98,7 +98,7 @@ public:
transferModel, transferModel,
dictionary, dictionary,
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
), ),
(film, dict) (film, dict)
@ -108,13 +108,13 @@ public:
// Constructors // Constructors
//- Construct for film //- Construct for film
transferModel(surfaceFilmModel& film); transferModel(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
transferModel transferModel
( (
const word& modelType, const word& modelType,
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );
@ -124,7 +124,7 @@ public:
//- Return a reference to the selected injection model //- Return a reference to the selected injection model
static autoPtr<transferModel> New static autoPtr<transferModel> New
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict, const dictionary& dict,
const word& modelType const word& modelType
); );

View File

@ -38,7 +38,7 @@ namespace surfaceFilmModels
autoPtr<transferModel> transferModel::New autoPtr<transferModel> transferModel::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict, const dictionary& dict,
const word& modelType const word& modelType
) )

View File

@ -36,7 +36,7 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
transferModelList::transferModelList(surfaceFilmModel& film) transferModelList::transferModelList(surfaceFilmRegionModel& film)
: :
PtrList<transferModel>(), PtrList<transferModel>(),
filmSubModelBase(film) filmSubModelBase(film)
@ -45,7 +45,7 @@ transferModelList::transferModelList(surfaceFilmModel& film)
transferModelList::transferModelList transferModelList::transferModelList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

View File

@ -77,12 +77,12 @@ public:
// Constructors // Constructors
//- Construct null //- Construct null
transferModelList(surfaceFilmModel& film); transferModelList(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
transferModelList transferModelList
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
); );

View File

@ -51,7 +51,7 @@ addToRunTimeSelectionTable
constantRadiation::constantRadiation constantRadiation::constantRadiation
( (
surfaceFilmModel& film, surfaceFilmRegionModel& film,
const dictionary& dict const dictionary& dict
) )
: :

Some files were not shown because too many files have changed in this diff Show More