Thermodynamics: Completed most of the conversion of the enthalpy source

This commit is contained in:
Henry
2011-11-23 16:56:13 +00:00
parent 93c8dc69e1
commit dc810ea88d
83 changed files with 173 additions and 186 deletions

View File

@ -23,4 +23,5 @@
)*mesh.magSf()
)
);
K = 0.5*magSqr(U);
}

View File

@ -74,9 +74,8 @@
// Force p_rgh to be consistent with p
p_rgh = p - rho*gh;
Info<< "Creating field DpDt\n" << endl;
volScalarField DpDt
(
"DpDt",
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt("dpdt", fvc::ddt(p));
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));

View File

@ -5,7 +5,8 @@
+ fvm::div(phi, h)
- fvm::laplacian(turbulence->alphaEff(), h)
==
DpDt
dpdt
- (fvc::ddt(rho, K) + fvc::div(phi, K))
);
hEqn.relax();

View File

@ -47,6 +47,7 @@
// calculated from the relaxed pressure
U += rAU*fvc::reconstruct((buoyancyPhi + p_rghEqn.flux())/rhorAUf);
U.correctBoundaryConditions();
K = 0.5*magSqr(U);
}
}
@ -55,7 +56,7 @@
// Second part of thermodynamic density update
thermo.rho() += psi*p_rgh;
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
dpdt = fvc::ddt(p);
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"

View File

@ -1,7 +1,7 @@
// Initialise fluid field pointer lists
PtrList<basicRhoThermo> thermoFluid(fluidRegions.size());
PtrList<volScalarField> rhoFluid(fluidRegions.size());
PtrList<volScalarField> KFluid(fluidRegions.size());
PtrList<volScalarField> kappaFluid(fluidRegions.size());
PtrList<volVectorField> UFluid(fluidRegions.size());
PtrList<surfaceScalarField> phiFluid(fluidRegions.size());
PtrList<uniformDimensionedVectorField> gFluid(fluidRegions.size());
@ -50,15 +50,15 @@
)
);
Info<< " Adding to KFluid\n" << endl;
KFluid.set
Info<< " Adding to kappaFluid\n" << endl;
kappaFluid.set
(
i,
new volScalarField
(
IOobject
(
"K",
"kappa",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,

View File

@ -71,5 +71,5 @@
<< max(rho).value() << endl;
// Update thermal conductivity
K = thermo.Cp()*turb.alphaEff();
kappa = thermo.Cp()*turb.alphaEff();
}

View File

@ -2,7 +2,7 @@
basicRhoThermo& thermo = thermoFluid[i];
volScalarField& rho = rhoFluid[i];
volScalarField& K = KFluid[i];
volScalarField& kappa = kappaFluid[i];
volVectorField& U = UFluid[i];
surfaceScalarField& phi = phiFluid[i];

View File

@ -7,8 +7,8 @@
tmp<volScalarField> tcp = thermo.Cp();
const volScalarField& cp = tcp();
tmp<volScalarField> tK = thermo.K();
//tmp<volSymmTensorField> tK = thermo.directionalK();
const volScalarField& K = tK();
tmp<volScalarField> tkappa = thermo.K();
//tmp<volSymmTensorField> tkappa = thermo.directionalkappa();
const volScalarField& kappa = tkappa();
volScalarField& T = thermo.T();

View File

@ -3,7 +3,7 @@
{
fvScalarMatrix tEqn
(
-fvm::laplacian(K, T)
-fvm::laplacian(kappa, T)
);
tEqn.relax();
tEqn.solve();

View File

@ -22,5 +22,6 @@
)*mesh.magSf()
),
mesh.solver(U.select(finalIter))
);
);
K = 0.5*magSqr(U);
}

View File

@ -1,7 +1,7 @@
// Initialise fluid field pointer lists
PtrList<basicRhoThermo> thermoFluid(fluidRegions.size());
PtrList<volScalarField> rhoFluid(fluidRegions.size());
PtrList<volScalarField> KFluid(fluidRegions.size());
PtrList<volScalarField> kappaFluid(fluidRegions.size());
PtrList<volVectorField> UFluid(fluidRegions.size());
PtrList<surfaceScalarField> phiFluid(fluidRegions.size());
PtrList<uniformDimensionedVectorField> gFluid(fluidRegions.size());
@ -10,7 +10,8 @@
PtrList<volScalarField> ghFluid(fluidRegions.size());
PtrList<surfaceScalarField> ghfFluid(fluidRegions.size());
PtrList<radiation::radiationModel> radiation(fluidRegions.size());
PtrList<volScalarField> DpDtFluid(fluidRegions.size());
PtrList<volScalarField> KFluid(fluidRegions.size());
PtrList<volScalarField> dpdtFluid(fluidRegions.size());
List<scalar> initialMassFluid(fluidRegions.size());
@ -45,15 +46,15 @@
)
);
Info<< " Adding to KFluid\n" << endl;
KFluid.set
Info<< " Adding to kappaFluid\n" << endl;
kappaFluid.set
(
i,
new volScalarField
(
IOobject
(
"K",
"kappa",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
@ -175,22 +176,25 @@
initialMassFluid[i] = fvc::domainIntegrate(rhoFluid[i]).value();
Info<< " Adding to DpDtFluid\n" << endl;
DpDtFluid.set
Info<< " Adding to KFluid\n" << endl;
KFluid.set
(
i,
new volScalarField
(
"DpDt",
fvc::DDt
(
surfaceScalarField
(
"phiU",
phiFluid[i]/fvc::interpolate(rhoFluid[i])
),
thermoFluid[i].p()
)
"K",
0.5*magSqr(UFluid[i])
)
);
Info<< " Adding to dpdtFluid\n" << endl;
dpdtFluid.set
(
i,
new volScalarField
(
"dpdt",
fvc::ddt(thermoFluid[i].p())
)
);
}

View File

@ -5,7 +5,8 @@
+ fvm::div(phi, h)
- fvm::laplacian(turb.alphaEff(), h)
==
DpDt
dpdt
- (fvc::ddt(rho, K) + fvc::div(phi, K))
+ rad.Sh(thermo)
);

View File

@ -68,11 +68,13 @@
// Correct velocity field
U += rAU*fvc::reconstruct((phi - phiU)/rhorAUf);
U.correctBoundaryConditions();
K = 0.5*magSqr(U);
p = p_rgh + rho*gh;
// Update pressure substantive derivative
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
// Update pressure time derivative
dpdt = fvc::ddt(p);
// Solve continuity
#include "rhoEqn.H"
@ -91,5 +93,5 @@
}
// Update thermal conductivity
K = thermoFluid[i].Cp()*turb.alphaEff();
kappa = thermoFluid[i].Cp()*turb.alphaEff();
}

View File

@ -2,12 +2,13 @@
basicRhoThermo& thermo = thermoFluid[i];
volScalarField& rho = rhoFluid[i];
volScalarField& K = KFluid[i];
volScalarField& kappa = kappaFluid[i];
volVectorField& U = UFluid[i];
surfaceScalarField& phi = phiFluid[i];
compressible::turbulenceModel& turb = turbulence[i];
volScalarField& DpDt = DpDtFluid[i];
volScalarField& K = KFluid[i];
volScalarField& dpdt = dpdtFluid[i];
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();

View File

@ -7,9 +7,9 @@
tmp<volScalarField> tcp = thermo.Cp();
const volScalarField& cp = tcp();
tmp<volScalarField> tK = thermo.K();
//tmp<volSymmTensorField> tK = thermo.directionalK();
const volScalarField& K = tK();
//const volSymmTensorField& K = tK();
tmp<volScalarField> tkappa = thermo.K();
//tmp<volSymmTensorField> tkappa = thermo.directionalkappa();
const volScalarField& kappa = tkappa();
//const volSymmTensorField& kappa = tkappa();
volScalarField& T = thermo.T();

View File

@ -31,7 +31,7 @@ Foam::scalar Foam::solidRegionDiffNo
const fvMesh& mesh,
const Time& runTime,
const volScalarField& Cprho,
const volScalarField& K
const volScalarField& kappa
)
{
scalar DiNum = 0.0;
@ -39,16 +39,16 @@ Foam::scalar Foam::solidRegionDiffNo
//- Take care: can have fluid domains with 0 cells so do not test for
// zero internal faces.
surfaceScalarField KrhoCpbyDelta
surfaceScalarField kapparhoCpbyDelta
(
mesh.surfaceInterpolation::deltaCoeffs()
* fvc::interpolate(K)
* fvc::interpolate(kappa)
/ fvc::interpolate(Cprho)
);
DiNum = gMax(KrhoCpbyDelta.internalField())*runTime.deltaT().value();
DiNum = gMax(kapparhoCpbyDelta.internalField())*runTime.deltaT().value();
meanDiNum = (average(KrhoCpbyDelta)).value()*runTime.deltaT().value();
meanDiNum = (average(kapparhoCpbyDelta)).value()*runTime.deltaT().value();
Info<< "Region: " << mesh.name() << " Diffusion Number mean: " << meanDiNum
<< " max: " << DiNum << endl;
@ -62,26 +62,26 @@ Foam::scalar Foam::solidRegionDiffNo
const fvMesh& mesh,
const Time& runTime,
const volScalarField& Cprho,
const volSymmTensorField& Kdirectional
const volSymmTensorField& kappadirectional
)
{
scalar DiNum = 0.0;
scalar meanDiNum = 0.0;
volScalarField K(mag(Kdirectional));
volScalarField kappa(mag(kappadirectional));
//- Take care: can have fluid domains with 0 cells so do not test for
// zero internal faces.
surfaceScalarField KrhoCpbyDelta
surfaceScalarField kapparhoCpbyDelta
(
mesh.surfaceInterpolation::deltaCoeffs()
* fvc::interpolate(K)
* fvc::interpolate(kappa)
/ fvc::interpolate(Cprho)
);
DiNum = gMax(KrhoCpbyDelta.internalField())*runTime.deltaT().value();
DiNum = gMax(kapparhoCpbyDelta.internalField())*runTime.deltaT().value();
meanDiNum = (average(KrhoCpbyDelta)).value()*runTime.deltaT().value();
meanDiNum = (average(kapparhoCpbyDelta)).value()*runTime.deltaT().value();
Info<< "Region: " << mesh.name() << " Diffusion Number mean: " << meanDiNum
<< " max: " << DiNum << endl;

View File

@ -39,7 +39,7 @@ namespace Foam
const fvMesh& mesh,
const Time& runTime,
const volScalarField& Cprho,
const volScalarField& K
const volScalarField& kappa
);
scalar solidRegionDiffNo
@ -47,7 +47,7 @@ namespace Foam
const fvMesh& mesh,
const Time& runTime,
const volScalarField& Cprho,
const volSymmTensorField& K
const volSymmTensorField& kappa
);
}

View File

@ -2,7 +2,7 @@
forAll(solidRegions, i)
{
# include "setRegionSolidFields.H"
#include "setRegionSolidFields.H"
DiNum = max
(
@ -11,7 +11,7 @@
solidRegions[i],
runTime,
rho*cp,
K
kappa
),
DiNum
);

View File

@ -9,7 +9,7 @@ if (finalIter)
tmp<fvScalarMatrix> TEqn
(
fvm::ddt(rho*cp, T)
- fvm::laplacian(K, T)
- fvm::laplacian(kappa, T)
);
TEqn().relax();
TEqn().solve(mesh.solver(T.select(finalIter)));