fvCorrectPhi: Wrapper for CorrectPhi to simplify solvers

This commit is contained in:
Henry Weller
2023-04-01 16:23:57 +01:00
parent de174c2b82
commit e66484a82d
22 changed files with 339 additions and 168 deletions

View File

@ -50,6 +50,28 @@ void Foam::solvers::VoFSolver::continuityErrors()
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void Foam::solvers::VoFSolver::setrAU(const fvVectorMatrix& UEqn)
{
if (rAU.valid())
{
rAU() = 1.0/UEqn.A();
}
else
{
rAU = (1.0/UEqn.A()).ptr();
}
}
void Foam::solvers::VoFSolver::clearrAU()
{
if (!(correctPhi || mesh.topoChanging()))
{
rAU.clear();
}
}
void Foam::solvers::VoFSolver::correctCoNum()
{
fluidSolver::correctCoNum(phi);

View File

@ -125,7 +125,9 @@ protected:
// Cached temporary fields
tmp<volScalarField> rAU;
//- Inverse momentum equation diagonal
// Used to correct phi following mesh changes
autoPtr<volScalarField> rAU;
//- Pointer to the surface momentum field
// used to recreate the flux after mesh-change
@ -157,6 +159,12 @@ protected:
// Protected Member Functions
//- Set or update the cached rAU
void setrAU(const fvVectorMatrix& UEqn);
//- Clear the cached rAU is no longer needed
void clearrAU();
//- Correct the cached Courant numbers
virtual void correctCoNum() = 0;

View File

@ -24,8 +24,9 @@ License
\*---------------------------------------------------------------------------*/
#include "VoFSolver.H"
#include "CorrectPhi.H"
#include "geometricZeroField.H"
#include "fvCorrectPhi.H"
#include "fvcMeshPhi.H"
#include "fvcDiv.H"
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
@ -67,12 +68,12 @@ void Foam::solvers::VoFSolver::moveMesh()
if (incompressible())
{
CorrectPhi
fv::correctPhi
(
phi,
U,
p_rgh,
surfaceScalarField("rAUf", fvc::interpolate(rAU())),
rAU,
divU,
pressureReference(),
pimple
@ -80,12 +81,12 @@ void Foam::solvers::VoFSolver::moveMesh()
}
else
{
CorrectPhi
fv::correctPhi
(
phi,
p_rgh,
psiByRho(),
surfaceScalarField("rAUf", fvc::interpolate(rAU())),
rAU,
divU(),
pimple
);