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& 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,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) 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
( (
@ -96,6 +71,31 @@ autoPtr<compressible::turbulenceModel> turbulence
// Set the turbulence into the combustion model // Set the turbulence into the combustion model
combustion->setTurbulence(turbulence()); 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; Info<< "Creating multi-variate interpolation scheme\n" << endl;
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields; multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
@ -105,6 +105,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
@ -126,3 +131,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 @@
if (!pimple.SIMPLErho())
{
rho = thermo.rho(); 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
@ -29,18 +29,20 @@ Group
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"
@ -76,10 +78,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++;
@ -87,15 +93,16 @@ 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"
} }
#include "rhoEqn.H" // --- PIMPLE loop
// --- Pressure-velocity PIMPLE corrector loop
while (pimple.loop()) while (pimple.loop())
{ {
#include "UEqn.H" #include "UEqn.H"
@ -115,6 +122,7 @@ int main(int argc, char *argv[])
} }
rho = thermo.rho(); rho = thermo.rho();
}
runTime.write(); runTime.write();
@ -123,7 +131,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

@ -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-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -24,9 +24,6 @@ License
Application Application
simpleReactingParcelFoam simpleReactingParcelFoam
Group
grpLagrangianSolvers
Description Description
Steady state solver for compressible, turbulent flow with reacting, Steady state solver for compressible, turbulent flow with reacting,
multiphase particle clouds and optional sources/constraints. multiphase particle clouds and optional sources/constraints.
@ -38,6 +35,7 @@ Description
#include "basicReactingMultiphaseCloud.H" #include "basicReactingMultiphaseCloud.H"
#include "rhoCombustionModel.H" #include "rhoCombustionModel.H"
#include "radiationModel.H" #include "radiationModel.H"
#include "IOporosityModelList.H"
#include "fvOptions.H" #include "fvOptions.H"
#include "SLGThermo.H" #include "SLGThermo.H"
#include "simpleControl.H" #include "simpleControl.H"

View File

@ -19,7 +19,6 @@
== ==
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)
@ -36,6 +35,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

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

View File

@ -1,5 +1,3 @@
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();
filmModelType& surfaceFilm = tsurfaceFilm(); const label inertIndex(composition.species()[inertSpecie]);

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
@ -54,7 +54,7 @@ namespace regionModels
{ {
namespace surfaceFilmModels namespace surfaceFilmModels
{ {
class surfaceFilmModel; class surfaceFilmRegionModel;
} }
} }
@ -117,7 +117,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

@ -128,7 +128,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,
@ -205,7 +205,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,
@ -261,7 +261,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,
@ -338,7 +338,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,
@ -556,11 +556,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"
) )
@ -624,7 +625,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

@ -171,7 +171,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,
@ -191,7 +191,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,
@ -201,7 +201,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,
@ -211,7 +211,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,
@ -230,7 +230,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"
@ -142,7 +142,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 = db().time().foundObject<modelType>(filmRegionName_); bool foundFilm = db().time().foundObject<modelType>(filmRegionName_);

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_;
@ -458,7 +458,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)),
@ -880,7 +880,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

@ -25,7 +25,8 @@ Class
Foam::regionModels::surfaceFilmModels::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,77 +94,13 @@ 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;
(
const label patchi,
const label facei,
const scalar massSource,
const vector& momentumSource,
const scalar pressureSource,
const scalar energySource
);
// Fields // Primary region source fields
//- 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 //- Return total mass source - Eulerian phase only
virtual tmp<volScalarField::Internal> Srho() const; virtual tmp<volScalarField::Internal> Srho() const;
@ -180,6 +113,12 @@ public:
//- Return enthalpy source - Eulerian phase only //- Return enthalpy source - Eulerian phase only
virtual tmp<volScalarField::Internal> Sh() const; virtual tmp<volScalarField::Internal> Sh() const;
// Evolution
//- Main driver routing to evolve the region - calls other evolves
virtual void evolve();
}; };

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

View File

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

View File

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

View File

@ -81,7 +81,7 @@ public:
filmRadiationModel, filmRadiationModel,
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
filmRadiationModel(surfaceFilmModel& film); filmRadiationModel(surfaceFilmRegionModel& film);
//- Construct from type name, dictionary and surface film model //- Construct from type name, dictionary and surface film model
filmRadiationModel filmRadiationModel
( (
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<filmRadiationModel> New static autoPtr<filmRadiationModel> 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) 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<filmRadiationModel> filmRadiationModel::New autoPtr<filmRadiationModel> filmRadiationModel::New
( (
surfaceFilmModel& model, surfaceFilmRegionModel& model,
const dictionary& dict const dictionary& dict
) )
{ {

View File

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

View File

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

View File

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

View File

@ -84,7 +84,7 @@ public:
//- Construct from surface film model and dictionary //- Construct from surface film model and dictionary
primaryRadiation primaryRadiation
( (
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