ENH: Propagated caching of HbyA across solvers

This commit is contained in:
andy
2012-03-02 18:15:54 +00:00
parent 658f0a0680
commit 912a20b7a3
28 changed files with 321 additions and 259 deletions

View File

@ -86,23 +86,28 @@ int main(int argc, char *argv[])
for (int corr=1; corr<=1; corr++)
{
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
U = rAU*UEqn.H();
phi = (fvc::interpolate(U) & mesh.Sf())
+ fvc::ddtPhiCorr(rAU, U, phi);
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
+ fvc::ddtPhiCorr(rAU, U, phi)
);
fvScalarMatrix pEqn
(
fvm::laplacian(rAU, p) == fvc::div(phi)
fvm::laplacian(rAU, p) == fvc::div(phiHbyA)
);
pEqn.solve();
phi -= pEqn.flux();
phi = phiHbyA - pEqn.flux();
#include "continuityErrs.H"
U -= rAU*fvc::grad(p);
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
}