Update for topo changes support
This commit is contained in:
parent
00e8dce8da
commit
6af575dbe1
3 changed files with 83 additions and 70 deletions
|
@ -6,6 +6,7 @@
|
|||
);
|
||||
basicPsiThermo& thermo = pThermo();
|
||||
|
||||
volScalarField& T = const_cast<volScalarField&>(thermo.T());
|
||||
volScalarField& p = thermo.p();
|
||||
volScalarField& e = thermo.e();
|
||||
const volScalarField& psi = thermo.psi();
|
||||
|
|
69
applications/solvers/compressible/sonicDyMFoam/pEqn.H
Normal file
69
applications/solvers/compressible/sonicDyMFoam/pEqn.H
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
U = UEqn.H()/UEqn.A();
|
||||
|
||||
# include "limitU.H"
|
||||
|
||||
surfaceScalarField phid
|
||||
(
|
||||
"phid",
|
||||
fvc::interpolate(psi)*
|
||||
(
|
||||
(fvc::interpolate(U) & mesh.Sf())
|
||||
- fvc::meshPhi(rho, U)
|
||||
)
|
||||
);
|
||||
|
||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
// Store pressure for under-relaxation
|
||||
p.storePrevIter();
|
||||
|
||||
fvScalarMatrix pEqn
|
||||
(
|
||||
fvm::ddt(psi, p)
|
||||
+ fvm::div(phid, p)
|
||||
- fvm::laplacian(rho/UEqn.A(), p)
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
// oCorr == nOuterCorr - 1
|
||||
corr == nCorr - 1
|
||||
&& nonOrth == nNonOrthCorr
|
||||
)
|
||||
{
|
||||
pEqn.solve
|
||||
(
|
||||
mesh.solutionDict().solver(p.name() + "Final")
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||
}
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
phi = pEqn.flux();
|
||||
}
|
||||
|
||||
|
||||
// Bound the pressure
|
||||
if (min(p) < pMin || max(p) > pMax)
|
||||
{
|
||||
p.max(pMin);
|
||||
p.min(pMax);
|
||||
p.correctBoundaryConditions();
|
||||
}
|
||||
|
||||
// Relax the pressure
|
||||
p.relax();
|
||||
}
|
||||
|
||||
# include "compressibleContinuityErrs.H"
|
||||
|
||||
U -= fvc::grad(p)/UEqn.A();
|
||||
U.correctBoundaryConditions();
|
||||
|
||||
# include "limitU.H"
|
||||
}
|
|
@ -77,10 +77,19 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
// Mesh motion update
|
||||
// if (correctPhi && meshChanged)
|
||||
// {
|
||||
if (meshChanged)
|
||||
{
|
||||
T.correctBoundaryConditions();
|
||||
p.correctBoundaryConditions();
|
||||
e.correctBoundaryConditions();
|
||||
thermo.correct();
|
||||
rho = thermo.rho();
|
||||
|
||||
if (correctPhi)
|
||||
{
|
||||
// # include "correctPhi.H"
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
if (meshChanged)
|
||||
{
|
||||
|
@ -103,73 +112,7 @@ int main(int argc, char *argv[])
|
|||
// --- PISO loop
|
||||
for (int corr = 0; corr < nCorr; corr++)
|
||||
{
|
||||
U = UEqn.H()/UEqn.A();
|
||||
|
||||
# include "limitU.H"
|
||||
|
||||
surfaceScalarField phid
|
||||
(
|
||||
"phid",
|
||||
fvc::interpolate(psi)*
|
||||
(
|
||||
(fvc::interpolate(U) & mesh.Sf())
|
||||
- fvc::meshPhi(rho, U)
|
||||
)
|
||||
);
|
||||
|
||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
// Store pressure for under-relaxation
|
||||
p.storePrevIter();
|
||||
|
||||
fvScalarMatrix pEqn
|
||||
(
|
||||
fvm::ddt(psi, p)
|
||||
+ fvm::div(phid, p)
|
||||
- fvm::laplacian(rho/UEqn.A(), p)
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
// oCorr == nOuterCorr - 1
|
||||
corr == nCorr - 1
|
||||
&& nonOrth == nNonOrthCorr
|
||||
)
|
||||
{
|
||||
pEqn.solve
|
||||
(
|
||||
mesh.solutionDict().solver(p.name() + "Final")
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
pEqn.solve(mesh.solutionDict().solver(p.name()));
|
||||
}
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
phi = pEqn.flux();
|
||||
}
|
||||
|
||||
|
||||
// Bound the pressure
|
||||
if (min(p) < pMin || max(p) > pMax)
|
||||
{
|
||||
p.max(pMin);
|
||||
p.min(pMax);
|
||||
p.correctBoundaryConditions();
|
||||
}
|
||||
|
||||
// Relax the pressure
|
||||
p.relax();
|
||||
}
|
||||
|
||||
# include "compressibleContinuityErrs.H"
|
||||
|
||||
U -= fvc::grad(p)/UEqn.A();
|
||||
U.correctBoundaryConditions();
|
||||
|
||||
# include "limitU.H"
|
||||
# include "pEqn.H"
|
||||
}
|
||||
|
||||
// Recalculate density
|
||||
|
|
Reference in a new issue