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
committed by Andrew Heather
parent 5cb3bb7bc6
commit 791e1ca2d2
312 changed files with 1186 additions and 1479 deletions

View File

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

View File

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

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,9 +0,0 @@
Info<< "\nConstructing reacting cloud" << endl;
basicReactingCloud parcels
(
"reactingCloud1",
rho,
U,
g,
slgThermo
);

View File

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

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

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
// 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;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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