ENH: Modification of solid thermo, thermo baffles, pyrolysis and

tutorial, solvers solve for h in the solid
This commit is contained in:
sergio
2012-07-03 10:54:27 +01:00
parent e36f6bf7ef
commit dccad82084
178 changed files with 155022 additions and 5789 deletions

View File

@ -43,7 +43,7 @@ Description
#include "regionProperties.H"
#include "compressibleCourantNo.H"
#include "solidRegionDiffNo.H"
#include "basicSolidThermo.H"
#include "solidThermo.H"
#include "radiationModel.H"
#include "porousZones.H"
#include "IObasicSourceList.H"

View File

@ -34,7 +34,7 @@ Description
#include "turbulenceModel.H"
#include "fixedGradientFvPatchFields.H"
#include "regionProperties.H"
#include "basicSolidThermo.H"
#include "solidThermo.H"
#include "radiationModel.H"
#include "porousZones.H"
#include "IObasicSourceList.H"

View File

@ -1,5 +1,5 @@
// Initialise solid field pointer lists
PtrList<basicSolidThermo> porousSolidThermos(porousSolidRegions.size());
PtrList<solidThermo> porousSolidThermos(porousSolidRegions.size());
PtrList<IObasicSourceList> solidHeatSources(porousSolidRegions.size());
PtrList<volScalarField> betavSolid(porousSolidRegions.size());
@ -14,7 +14,7 @@
porousSolidThermos.set
(
i,
basicSolidThermo::New(porousSolidRegions[i])
solidThermo::New(porousSolidRegions[i])
);
Info<< " Adding sources\n" << endl;
solidHeatSources.set

View File

@ -1,6 +1,6 @@
const fvMesh& mesh = porousSolidRegions[i];
basicSolidThermo& thermo = porousSolidThermos[i];
solidThermo& thermo = porousSolidThermos[i];
const volScalarField& betav = betavSolid[i];
tmp<volScalarField> trho = thermo.rho();
@ -15,9 +15,9 @@
const volScalarField& kappa = tkappa();
//const volSymmTensorField& K = tK();
tmp<volScalarField> trhoCp = cp*rho;
const volScalarField& rhoCp = trhoCp();
tmp<volScalarField> talpha = thermo.alpha();
const volScalarField& alpha = talpha();
volScalarField& T = thermo.T();
volScalarField& h = thermo.he();
IObasicSourceList& sources = solidHeatSources[i];

View File

@ -1,17 +1,17 @@
{
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
tmp<fvScalarMatrix> TEqn
tmp<fvScalarMatrix> hEqn
(
- fvm::laplacian(betav*kappa, T, "laplacian(K,T)")
+ sources(rhoCp, T)
- fvm::laplacian(betav*alpha, h, "laplacian(alpha,h)")
+ sources(rho, h)
);
TEqn().relax();
TEqn().solve();
hEqn().relax();
hEqn().solve();
}
Info<< "Min/max T:" << min(T).value() << ' ' << max(T).value() << endl;
}
thermo.correct();
Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl;

View File

@ -1,5 +1,5 @@
// Initialise solid field pointer lists
PtrList<basicSolidThermo> thermos(solidRegions.size());
PtrList<solidThermo> thermos(solidRegions.size());
// Populate solid field pointer lists
forAll(solidRegions, i)
@ -11,6 +11,6 @@
thermos.set
(
i,
basicSolidThermo::New(solidRegions[i])
solidThermo::New(solidRegions[i])
);
}

View File

@ -1,5 +1,5 @@
fvMesh& mesh = solidRegions[i];
basicSolidThermo& thermo = thermos[i];
solidThermo& thermo = thermos[i];
tmp<volScalarField> trho = thermo.rho();
const volScalarField& rho = trho();
@ -11,4 +11,7 @@
//tmp<volSymmTensorField> tkappa = thermo.directionalkappa();
const volScalarField& kappa = tkappa();
volScalarField& T = thermo.T();
tmp<volScalarField> talpha = thermo.alpha();
const volScalarField& alpha = talpha();
volScalarField& h = thermo.he();

View File

@ -1,16 +1,15 @@
{
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
fvScalarMatrix tEqn
fvScalarMatrix hEqn
(
-fvm::laplacian(kappa, T)
-fvm::laplacian(alpha, h)
);
tEqn.relax();
tEqn.solve();
hEqn.relax();
hEqn.solve();
}
Info<< "Min/max T:" << min(T).value() << ' '
<< max(T).value() << endl;
}
thermo.correct();
Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl;

View File

@ -1,5 +1,5 @@
// Initialise solid field pointer lists
PtrList<basicSolidThermo> porousSolidThermos(porousSolidRegions.size());
PtrList<solidThermo> porousSolidThermos(porousSolidRegions.size());
PtrList<IObasicSourceList> solidHeatSources(porousSolidRegions.size());
PtrList<volScalarField> betavSolid(porousSolidRegions.size());
@ -14,7 +14,7 @@
porousSolidThermos.set
(
i,
basicSolidThermo::New(porousSolidRegions[i])
solidThermo::New(porousSolidRegions[i])
);
Info<< " Adding sources\n" << endl;
solidHeatSources.set

View File

@ -1,6 +1,6 @@
fvMesh& mesh = porousSolidRegions[i];
basicSolidThermo& thermo = porousSolidThermos[i];
solidThermo& thermo = porousSolidThermos[i];
const volScalarField& betav = betavSolid[i];
tmp<volScalarField> trho = thermo.rho();
@ -15,9 +15,12 @@
const volScalarField& kappa = tkappa();
//const volSymmTensorField& K = tK();
tmp<volScalarField> trhoCp = cp*rho;
const volScalarField& rhoCp = trhoCp();
//tmp<volScalarField> trhoCp = cp*rho;
//const volScalarField& rhoCp = trhoCp();
volScalarField& T = thermo.T();
tmp<volScalarField> talpha = thermo.alpha();
const volScalarField& alpha = talpha();
volScalarField& h = thermo.he();
IObasicSourceList& sources = solidHeatSources[i];

View File

@ -6,22 +6,22 @@ if (finalIter)
{
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
tmp<fvScalarMatrix> TEqn
tmp<fvScalarMatrix> hEqn
(
fvm::ddt(betav*rho*cp, T)
- fvm::laplacian(betav*kappa, T, "laplacian(K,T)")
+ sources(rhoCp, T)
fvm::ddt(betav*rho, h)
- fvm::laplacian(betav*alpha, h, "laplacian(alpha,h)")
+ sources(rho, h)
);
TEqn().relax();
TEqn().solve(mesh.solver(T.select(finalIter)));
hEqn().relax();
hEqn().solve(mesh.solver(h.select(finalIter)));
}
Info<< "Min/max T:" << min(T).value() << ' ' << max(T).value() << endl;
}
thermo.correct();
Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl;
if (finalIter)
{
mesh.data::remove("finalIteration");

View File

@ -1,5 +1,5 @@
// Initialise solid field pointer lists
PtrList<basicSolidThermo> thermos(solidRegions.size());
PtrList<solidThermo> thermos(solidRegions.size());
// Populate solid field pointer lists
forAll(solidRegions, i)
@ -8,5 +8,5 @@
<< solidRegions[i].name() << nl << endl;
Info<< " Adding to thermos\n" << endl;
thermos.set(i, basicSolidThermo::New(solidRegions[i]));
thermos.set(i, solidThermo::New(solidRegions[i]));
}

View File

@ -1,5 +1,5 @@
fvMesh& mesh = solidRegions[i];
basicSolidThermo& thermo = thermos[i];
solidThermo& thermo = thermos[i];
tmp<volScalarField> trho = thermo.rho();
const volScalarField& rho = trho();
@ -7,9 +7,12 @@
tmp<volScalarField> tcp = thermo.Cp();
const volScalarField& cp = tcp();
tmp<volScalarField> talpha = thermo.alpha();
const volScalarField& alpha = talpha();
tmp<volScalarField> tkappa = thermo.kappa();
const volScalarField& kappa = tkappa();
//tmp<volSymmTensorField> tkappa = thermo.directionalKappa();
//const volSymmTensorField& kappa = tkappa();
volScalarField& T = thermo.T();
volScalarField& h = thermo.he();

View File

@ -6,20 +6,20 @@ if (finalIter)
{
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
tmp<fvScalarMatrix> TEqn
tmp<fvScalarMatrix> hEqn
(
fvm::ddt(rho*cp, T)
- fvm::laplacian(kappa, T)
fvm::ddt(rho, h)
- fvm::laplacian(alpha, h)
);
TEqn().relax();
TEqn().solve(mesh.solver(T.select(finalIter)));
hEqn().relax();
hEqn().solve(mesh.solver(h.select(finalIter)));
}
Info<< "Min/max T:" << min(T) << ' ' << max(T) << endl;
}
thermo.correct();
Info<< "Min/max T:" << min(thermo.T()) << ' ' << max(thermo.T()) << endl;
if (finalIter)
{
mesh.data::remove("finalIteration");