mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC in the Make/options file. However, it is recommended to upgrade all code to the new safer tmp by using the '.ref()' member function rather than the non-const '()' dereference operator when non-const access to the temporary object is required. Please report any problems on Mantis. Henry G. Weller CFD Direct.
This commit is contained in:
@ -70,7 +70,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::G() const
|
|||||||
const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
|
const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
|
||||||
|
|
||||||
tmp<volScalarField> tGtot = XiGModel_->G();
|
tmp<volScalarField> tGtot = XiGModel_->G();
|
||||||
volScalarField& Gtot = tGtot();
|
volScalarField& Gtot = tGtot.ref();
|
||||||
|
|
||||||
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
|
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
|
||||||
scalarField N(Nv.internalField()*Cw);
|
scalarField N(Nv.internalField()*Cw);
|
||||||
|
|||||||
@ -113,7 +113,7 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volSymmTensorField& DragDcu = tDragDcu();
|
volSymmTensorField& DragDcu = tDragDcu.ref();
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
@ -147,7 +147,7 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& Gk = tGk();
|
volScalarField& Gk = tGk.ref();
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -161,9 +161,9 @@ void PDRkEpsilon::correct()
|
|||||||
- fvm::Sp(C2_*betav*rho_*epsilon_/k_, epsilon_)
|
- fvm::Sp(C2_*betav*rho_*epsilon_/k_, epsilon_)
|
||||||
);
|
);
|
||||||
|
|
||||||
epsEqn().relax();
|
epsEqn.ref().relax();
|
||||||
|
|
||||||
epsEqn().boundaryManipulate(epsilon_.boundaryField());
|
epsEqn.ref().boundaryManipulate(epsilon_.boundaryField());
|
||||||
|
|
||||||
solve(epsEqn);
|
solve(epsEqn);
|
||||||
bound(epsilon_, epsilonMin_);
|
bound(epsilon_, epsilonMin_);
|
||||||
@ -182,7 +182,7 @@ void PDRkEpsilon::correct()
|
|||||||
- fvm::Sp(betav*rho_*epsilon_/k_, k_)
|
- fvm::Sp(betav*rho_*epsilon_/k_, k_)
|
||||||
);
|
);
|
||||||
|
|
||||||
kEqn().relax();
|
kEqn.ref().relax();
|
||||||
solve(kEqn);
|
solve(kEqn);
|
||||||
bound(k_, kMin_);
|
bound(k_, kMin_);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -108,7 +108,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
|||||||
dimensionedScalar("XiEq", dimless, 0.0)
|
dimensionedScalar("XiEq", dimless, 0.0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField& xieq = tXiEq();
|
volScalarField& xieq = tXiEq.ref();
|
||||||
|
|
||||||
forAll(xieq, celli)
|
forAll(xieq, celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -113,7 +113,7 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
|
|||||||
dimensionedScalar("zero", Nv.dimensions(), 0.0)
|
dimensionedScalar("zero", Nv.dimensions(), 0.0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField& N = tN();
|
volScalarField& N = tN.ref();
|
||||||
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
|
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
volSymmTensorField ns
|
volSymmTensorField ns
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -259,7 +259,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& Su0 = tSu0();
|
volScalarField& Su0 = tSu0.ref();
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -306,7 +306,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& Su0 = tSu0();
|
volScalarField& Su0 = tSu0.ref();
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -358,7 +358,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& ma = tMa();
|
volScalarField& ma = tMa.ref();
|
||||||
|
|
||||||
forAll(ma, celli)
|
forAll(ma, celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
K = 0.5*magSqr(U);
|
K = 0.5*magSqr(U);
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
|
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
// pressure solution - done in 2 parts. Part 1:
|
// pressure solution - done in 2 parts. Part 1:
|
||||||
thermo.rho() -= psi*p;
|
thermo.rho() -= psi*p;
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -24,7 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> interpolate
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
GeometricField<Type, fvsPatchField, surfaceMesh>& sf = tsf();
|
GeometricField<Type, fvsPatchField, surfaceMesh>& sf = tsf.ref();
|
||||||
|
|
||||||
sf.rename(vf.name() + '_' + dir.name());
|
sf.rename(vf.name() + '_' + dir.name());
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
scalar rDeltaTSmoothingCoeff
|
scalar rDeltaTSmoothingCoeff
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
K = 0.5*magSqr(U);
|
K = 0.5*magSqr(U);
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
|
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,11 +10,12 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
bool closedVolume = false;
|
bool closedVolume = false;
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
|
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
bool closedVolume = false;
|
bool closedVolume = false;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,8 +10,9 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
// Include the porous media resistance and solve the momentum equation
|
// Include the porous media resistance and solve the momentum equation
|
||||||
// either implicit in the tensorial resistance or transport using by
|
// either implicit in the tensorial resistance or transport using by
|
||||||
@ -22,18 +23,18 @@
|
|||||||
|
|
||||||
if (pressureImplicitPorosity)
|
if (pressureImplicitPorosity)
|
||||||
{
|
{
|
||||||
tmp<volTensorField> tTU = tensor(I)*UEqn().A();
|
tmp<volTensorField> tTU = tensor(I)*UEqn.A();
|
||||||
pZones.addResistance(UEqn(), tTU());
|
pZones.addResistance(UEqn, tTU.ref());
|
||||||
trTU = inv(tTU());
|
trTU = inv(tTU());
|
||||||
trTU().rename("rAU");
|
trTU.ref().rename("rAU");
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
volVectorField gradp(fvc::grad(p));
|
volVectorField gradp(fvc::grad(p));
|
||||||
|
|
||||||
for (int UCorr=0; UCorr<nUCorr; UCorr++)
|
for (int UCorr=0; UCorr<nUCorr; UCorr++)
|
||||||
{
|
{
|
||||||
U = trTU() & (UEqn().H() - gradp);
|
U = trTU() & (UEqn.H() - gradp);
|
||||||
}
|
}
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
@ -41,14 +42,14 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pZones.addResistance(UEqn());
|
pZones.addResistance(UEqn);
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|
||||||
trAU = 1.0/UEqn().A();
|
trAU = 1.0/UEqn.A();
|
||||||
trAU().rename("rAU");
|
trAU.ref().rename("rAU");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,15 +4,15 @@
|
|||||||
tmp<volVectorField> tHbyA;
|
tmp<volVectorField> tHbyA;
|
||||||
if (pressureImplicitPorosity)
|
if (pressureImplicitPorosity)
|
||||||
{
|
{
|
||||||
tHbyA = constrainHbyA(trTU()&UEqn().H(), U, p);
|
tHbyA = constrainHbyA(trTU()&UEqn.H(), U, p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tHbyA = constrainHbyA(trAU()*UEqn().H(), U, p);
|
tHbyA = constrainHbyA(trAU()*UEqn.H(), U, p);
|
||||||
}
|
}
|
||||||
volVectorField& HbyA = tHbyA();
|
volVectorField& HbyA = tHbyA.ref();
|
||||||
|
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
bool closedVolume = false;
|
bool closedVolume = false;
|
||||||
|
|
||||||
@ -51,13 +51,15 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
tpEqn().setReference(pRefCell, pRefValue);
|
fvScalarMatrix& pEqn = tpEqn.ref();
|
||||||
|
|
||||||
tpEqn().solve();
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
if (simple.finalNonOrthogonalIter())
|
if (simple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
phi = phiHbyA - tpEqn().flux();
|
phi = phiHbyA - pEqn.flux();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(U)
|
+ MRF.DDt(U)
|
||||||
@ -10,16 +10,17 @@
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (simple.momentumPredictor())
|
if (simple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
UEqn()
|
UEqn
|
||||||
==
|
==
|
||||||
fvc::reconstruct
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
volScalarField rAU("rAU", 1.0/UEqn().A());
|
volScalarField rAU("rAU", 1.0/UEqn.A());
|
||||||
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_rgh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
||||||
|
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
surfaceScalarField phig(-rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf());
|
surfaceScalarField phig(-rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf());
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,16 +10,17 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (simple.momentumPredictor())
|
if (simple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
UEqn()
|
UEqn
|
||||||
==
|
==
|
||||||
fvc::reconstruct
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU("rAU", 1.0/UEqn().A());
|
volScalarField rAU("rAU", 1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_rgh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,14 +10,15 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
UEqn()
|
UEqn
|
||||||
==
|
==
|
||||||
fvc::reconstruct
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
rho = min(rho, rhoMax[i]);
|
rho = min(rho, rhoMax[i]);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU("rAU", 1.0/UEqn().A());
|
volScalarField rAU("rAU", 1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_rgh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,16 +10,17 @@
|
|||||||
==
|
==
|
||||||
fvOptions(rho, U)
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (momentumPredictor)
|
if (momentumPredictor)
|
||||||
{
|
{
|
||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
UEqn()
|
UEqn
|
||||||
==
|
==
|
||||||
fvc::reconstruct
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
volScalarField rAU("rAU", 1.0/UEqn().A());
|
volScalarField rAU("rAU", 1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_rgh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
|
||||||
|
|
||||||
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ if (finalIter)
|
|||||||
{
|
{
|
||||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
{
|
{
|
||||||
tmp<fvScalarMatrix> hEqn
|
fvScalarMatrix hEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(betav*rho, h)
|
fvm::ddt(betav*rho, h)
|
||||||
- (
|
- (
|
||||||
@ -18,11 +18,11 @@ if (finalIter)
|
|||||||
fvOptions(rho, h)
|
fvOptions(rho, h)
|
||||||
);
|
);
|
||||||
|
|
||||||
hEqn().relax();
|
hEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(hEqn());
|
fvOptions.constrain(hEqn);
|
||||||
|
|
||||||
hEqn().solve(mesh.solver(h.select(finalIter)));
|
hEqn.solve(mesh.solver(h.select(finalIter)));
|
||||||
|
|
||||||
fvOptions.correct(h);
|
fvOptions.correct(h);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -107,7 +107,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
// Momentum predictor
|
// Momentum predictor
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ turbulence->divDevReff(U)
|
+ turbulence->divDevReff(U)
|
||||||
@ -115,18 +115,19 @@ int main(int argc, char *argv[])
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
(
|
(
|
||||||
"phiHbyA",
|
"phiHbyA",
|
||||||
@ -180,7 +181,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
zeroCells(adjointTransposeConvection, inletCells);
|
zeroCells(adjointTransposeConvection, inletCells);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UaEqn
|
tmp<fvVectorMatrix> tUaEqn
|
||||||
(
|
(
|
||||||
fvm::div(-phi, Ua)
|
fvm::div(-phi, Ua)
|
||||||
- adjointTransposeConvection
|
- adjointTransposeConvection
|
||||||
@ -189,19 +190,20 @@ int main(int argc, char *argv[])
|
|||||||
==
|
==
|
||||||
fvOptions(Ua)
|
fvOptions(Ua)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UaEqn = tUaEqn.ref();
|
||||||
|
|
||||||
UaEqn().relax();
|
UaEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UaEqn());
|
fvOptions.constrain(UaEqn);
|
||||||
|
|
||||||
solve(UaEqn() == -fvc::grad(pa));
|
solve(UaEqn == -fvc::grad(pa));
|
||||||
|
|
||||||
fvOptions.correct(Ua);
|
fvOptions.correct(Ua);
|
||||||
|
|
||||||
volScalarField rAUa(1.0/UaEqn().A());
|
volScalarField rAUa(1.0/UaEqn.A());
|
||||||
volVectorField HbyAa("HbyAa", Ua);
|
volVectorField HbyAa("HbyAa", Ua);
|
||||||
HbyAa = rAUa*UaEqn().H();
|
HbyAa = rAUa*UaEqn.H();
|
||||||
UaEqn.clear();
|
tUaEqn.clear();
|
||||||
surfaceScalarField phiHbyAa
|
surfaceScalarField phiHbyAa
|
||||||
(
|
(
|
||||||
"phiHbyAa",
|
"phiHbyAa",
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// Relative momentum predictor
|
// Relative momentum predictor
|
||||||
tmp<fvVectorMatrix> UrelEqn
|
tmp<fvVectorMatrix> tUrelEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(Urel)
|
fvm::ddt(Urel)
|
||||||
+ fvm::div(phi, Urel)
|
+ fvm::div(phi, Urel)
|
||||||
@ -8,11 +8,12 @@
|
|||||||
==
|
==
|
||||||
fvOptions(Urel)
|
fvOptions(Urel)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UrelEqn = tUrelEqn.ref();
|
||||||
|
|
||||||
UrelEqn().relax();
|
UrelEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UrelEqn());
|
fvOptions.constrain(UrelEqn);
|
||||||
|
|
||||||
solve(UrelEqn() == -fvc::grad(p));
|
solve(UrelEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(Urel);
|
fvOptions.correct(Urel);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
volScalarField rAUrel(1.0/UrelEqn().A());
|
volScalarField rAUrel(1.0/UrelEqn.A());
|
||||||
volVectorField HbyA("HbyA", Urel);
|
volVectorField HbyA("HbyA", Urel);
|
||||||
HbyA = rAUrel*UrelEqn().H();
|
HbyA = rAUrel*UrelEqn.H();
|
||||||
|
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
(
|
(
|
||||||
@ -15,7 +15,7 @@ tmp<volScalarField> rAtUrel(rAUrel);
|
|||||||
|
|
||||||
if (pimple.consistent())
|
if (pimple.consistent())
|
||||||
{
|
{
|
||||||
rAtUrel = 1.0/max(1.0/rAUrel - UrelEqn().H1(), 0.1/rAUrel);
|
rAtUrel = 1.0/max(1.0/rAUrel - UrelEqn.H1(), 0.1/rAUrel);
|
||||||
phiHbyA +=
|
phiHbyA +=
|
||||||
fvc::interpolate(rAtUrel() - rAUrel)*fvc::snGrad(p)*mesh.magSf();
|
fvc::interpolate(rAtUrel() - rAUrel)*fvc::snGrad(p)*mesh.magSf();
|
||||||
HbyA -= (rAUrel - rAtUrel())*fvc::grad(p);
|
HbyA -= (rAUrel - rAtUrel())*fvc::grad(p);
|
||||||
@ -23,7 +23,7 @@ if (pimple.consistent())
|
|||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UrelEqn.clear();
|
tUrelEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(U) + fvm::div(phi, U)
|
fvm::ddt(U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(U)
|
+ MRF.DDt(U)
|
||||||
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
(
|
(
|
||||||
"phiHbyA",
|
"phiHbyA",
|
||||||
@ -15,7 +15,7 @@ tmp<volScalarField> rAtU(rAU);
|
|||||||
|
|
||||||
if (pimple.consistent())
|
if (pimple.consistent())
|
||||||
{
|
{
|
||||||
rAtU = 1.0/max(1.0/rAU - UEqn().H1(), 0.1/rAU);
|
rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU);
|
||||||
phiHbyA +=
|
phiHbyA +=
|
||||||
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
||||||
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
||||||
@ -23,7 +23,7 @@ if (pimple.consistent())
|
|||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
(
|
(
|
||||||
"phiHbyA",
|
"phiHbyA",
|
||||||
@ -20,7 +20,7 @@ tmp<volScalarField> rAtU(rAU);
|
|||||||
|
|
||||||
if (pimple.consistent())
|
if (pimple.consistent())
|
||||||
{
|
{
|
||||||
rAtU = 1.0/max(1.0/rAU - UEqn().H1(), 0.1/rAU);
|
rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU);
|
||||||
phiHbyA +=
|
phiHbyA +=
|
||||||
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
||||||
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
||||||
@ -28,7 +28,7 @@ if (pimple.consistent())
|
|||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Relative momentum predictor
|
// Relative momentum predictor
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UrelEqn
|
tmp<fvVectorMatrix> tUrelEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, Urel)
|
fvm::div(phi, Urel)
|
||||||
+ turbulence->divDevReff(Urel)
|
+ turbulence->divDevReff(Urel)
|
||||||
@ -8,11 +8,12 @@
|
|||||||
==
|
==
|
||||||
fvOptions(Urel)
|
fvOptions(Urel)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UrelEqn = tUrelEqn.ref();
|
||||||
|
|
||||||
UrelEqn().relax();
|
UrelEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UrelEqn());
|
fvOptions.constrain(UrelEqn);
|
||||||
|
|
||||||
solve(UrelEqn() == -fvc::grad(p));
|
solve(UrelEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(Urel);
|
fvOptions.correct(Urel);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
volScalarField rAUrel(1.0/UrelEqn().A());
|
volScalarField rAUrel(1.0/UrelEqn.A());
|
||||||
volVectorField HbyA("HbyA", Urel);
|
volVectorField HbyA("HbyA", Urel);
|
||||||
HbyA = rAUrel*UrelEqn().H();
|
HbyA = rAUrel*UrelEqn.H();
|
||||||
|
|
||||||
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
||||||
adjustPhi(phiHbyA, Urel, p);
|
adjustPhi(phiHbyA, Urel, p);
|
||||||
@ -10,13 +10,13 @@
|
|||||||
|
|
||||||
if (simple.consistent())
|
if (simple.consistent())
|
||||||
{
|
{
|
||||||
rAtUrel = 1.0/(1.0/rAUrel - UrelEqn().H1());
|
rAtUrel = 1.0/(1.0/rAUrel - UrelEqn.H1());
|
||||||
phiHbyA +=
|
phiHbyA +=
|
||||||
fvc::interpolate(rAtUrel() - rAUrel)*fvc::snGrad(p)*mesh.magSf();
|
fvc::interpolate(rAtUrel() - rAUrel)*fvc::snGrad(p)*mesh.magSf();
|
||||||
HbyA -= (rAUrel - rAtUrel())*fvc::grad(p);
|
HbyA -= (rAUrel - rAtUrel())*fvc::grad(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
UrelEqn.clear();
|
tUrelEqn.clear();
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
constrainPressure(p, Urel, phiHbyA, rAtUrel());
|
constrainPressure(p, Urel, phiHbyA, rAtUrel());
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(U)
|
+ MRF.DDt(U)
|
||||||
@ -10,11 +10,12 @@
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
||||||
MRF.makeRelative(phiHbyA);
|
MRF.makeRelative(phiHbyA);
|
||||||
adjustPhi(phiHbyA, U, p);
|
adjustPhi(phiHbyA, U, p);
|
||||||
@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
if (simple.consistent())
|
if (simple.consistent())
|
||||||
{
|
{
|
||||||
rAtU = 1.0/(1.0/rAU - UEqn().H1());
|
rAtU = 1.0/(1.0/rAU - UEqn.H1());
|
||||||
phiHbyA +=
|
phiHbyA +=
|
||||||
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
|
||||||
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
HbyA -= (rAU - rAtU())*fvc::grad(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
|
|
||||||
// Update the pressure BCs to ensure flux consistency
|
// Update the pressure BCs to ensure flux consistency
|
||||||
constrainPressure(p, U, phiHbyA, rAtU(), MRF);
|
constrainPressure(p, U, phiHbyA, rAtU(), MRF);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(U)
|
+ MRF.DDt(U)
|
||||||
@ -10,8 +10,9 @@
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
// Include the porous media resistance and solve the momentum equation
|
// Include the porous media resistance and solve the momentum equation
|
||||||
// either implicit in the tensorial resistance or transport using by
|
// either implicit in the tensorial resistance or transport using by
|
||||||
@ -22,18 +23,18 @@
|
|||||||
|
|
||||||
if (pressureImplicitPorosity)
|
if (pressureImplicitPorosity)
|
||||||
{
|
{
|
||||||
tmp<volTensorField> tTU = tensor(I)*UEqn().A();
|
tmp<volTensorField> tTU = tensor(I)*UEqn.A();
|
||||||
pZones.addResistance(UEqn(), tTU());
|
pZones.addResistance(UEqn, tTU.ref());
|
||||||
trTU = inv(tTU());
|
trTU = inv(tTU());
|
||||||
trTU().rename("rAU");
|
trTU.ref().rename("rAU");
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
volVectorField gradp(fvc::grad(p));
|
volVectorField gradp(fvc::grad(p));
|
||||||
|
|
||||||
for (int UCorr=0; UCorr<nUCorr; UCorr++)
|
for (int UCorr=0; UCorr<nUCorr; UCorr++)
|
||||||
{
|
{
|
||||||
U = trTU() & (UEqn().H() - gradp);
|
U = trTU() & (UEqn.H() - gradp);
|
||||||
}
|
}
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
@ -41,14 +42,14 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pZones.addResistance(UEqn());
|
pZones.addResistance(UEqn);
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|
||||||
trAU = 1.0/UEqn().A();
|
trAU = 1.0/UEqn.A();
|
||||||
trAU().rename("rAU");
|
trAU.ref().rename("rAU");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
tmp<volVectorField> tHbyA;
|
tmp<volVectorField> tHbyA;
|
||||||
if (pressureImplicitPorosity)
|
if (pressureImplicitPorosity)
|
||||||
{
|
{
|
||||||
tHbyA = constrainHbyA(trTU()&UEqn().H(), U, p);
|
tHbyA = constrainHbyA(trTU()&UEqn.H(), U, p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tHbyA = constrainHbyA(trAU()*UEqn().H(), U, p);
|
tHbyA = constrainHbyA(trAU()*UEqn.H(), U, p);
|
||||||
}
|
}
|
||||||
volVectorField& HbyA = tHbyA();
|
volVectorField& HbyA = tHbyA.ref();
|
||||||
|
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
|
||||||
|
|
||||||
MRF.makeRelative(phiHbyA);
|
MRF.makeRelative(phiHbyA);
|
||||||
@ -29,13 +29,15 @@ while (simple.correctNonOrthogonal())
|
|||||||
tpEqn = (fvm::laplacian(trAU(), p) == fvc::div(phiHbyA));
|
tpEqn = (fvm::laplacian(trAU(), p) == fvc::div(phiHbyA));
|
||||||
}
|
}
|
||||||
|
|
||||||
tpEqn().setReference(pRefCell, pRefValue);
|
fvScalarMatrix pEqn = tpEqn.ref();
|
||||||
|
|
||||||
tpEqn().solve();
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
if (simple.finalNonOrthogonalIter())
|
if (simple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
phi = phiHbyA - tpEqn().flux();
|
phi = phiHbyA - pEqn.flux();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
EXE_INC = -DCONST_TMP \
|
EXE_INC = \
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/transportModels \
|
-I$(LIB_SRC)/transportModels \
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -24,7 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -24,7 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::div(phi, U)
|
fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -10,11 +10,12 @@
|
|||||||
+ parcels.SU(U)
|
+ parcels.SU(U)
|
||||||
+ fvOptions(rho, U)
|
+ fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|||||||
@ -3,10 +3,10 @@
|
|||||||
// pressure solution - done in 2 parts. Part 1:
|
// pressure solution - done in 2 parts. Part 1:
|
||||||
thermo.rho() -= psi*p;
|
thermo.rho() -= psi*p;
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
(
|
(
|
||||||
"phiHbyA",
|
"phiHbyA",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, U) + fvm::div(phi, U)
|
fvm::ddt(rho, U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(rho, U)
|
+ MRF.DDt(rho, U)
|
||||||
@ -12,14 +12,15 @@ tmp<fvVectorMatrix> UEqn
|
|||||||
+ parcels.SU(U)
|
+ parcels.SU(U)
|
||||||
+ fvOptions(rho, U)
|
+ fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p));
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
K = 0.5*magSqr(U);
|
K = 0.5*magSqr(U);
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -3,13 +3,13 @@ rho = max(rho, rhoMin);
|
|||||||
rho = min(rho, rhoMax);
|
rho = min(rho, rhoMax);
|
||||||
rho.relax();
|
rho.relax();
|
||||||
|
|
||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pimple.transonic())
|
if (pimple.transonic())
|
||||||
|
|||||||
@ -40,8 +40,8 @@
|
|||||||
psi1*fvm::ddt(p_rgh)
|
psi1*fvm::ddt(p_rgh)
|
||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(p_rghEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(p_rghEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
p_rghEqnComp1().relax();
|
p_rghEqnComp1.ref().relax();
|
||||||
|
|
||||||
p_rghEqnComp2 =
|
p_rghEqnComp2 =
|
||||||
fvc::ddt(rho2) + fvc::div(phi, rho2) - fvc::Sp(fvc::div(phi), rho2)
|
fvc::ddt(rho2) + fvc::div(phi, rho2) - fvc::Sp(fvc::div(phi), rho2)
|
||||||
@ -50,8 +50,8 @@
|
|||||||
psi2*fvm::ddt(p_rgh)
|
psi2*fvm::ddt(p_rgh)
|
||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(p_rghEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(p_rghEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
p_rghEqnComp2().relax();
|
p_rghEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -37,8 +37,8 @@
|
|||||||
psi1*fvm::ddt(p_rgh)
|
psi1*fvm::ddt(p_rgh)
|
||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(p_rghEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(p_rghEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
p_rghEqnComp1().relax();
|
p_rghEqnComp1.ref().relax();
|
||||||
|
|
||||||
p_rghEqnComp2 =
|
p_rghEqnComp2 =
|
||||||
fvc::ddt(rho2) + fvc::div(phi, rho2) - fvc::Sp(fvc::div(phi), rho2)
|
fvc::ddt(rho2) + fvc::div(phi, rho2) - fvc::Sp(fvc::div(phi), rho2)
|
||||||
@ -47,8 +47,8 @@
|
|||||||
psi2*fvm::ddt(p_rgh)
|
psi2*fvm::ddt(p_rgh)
|
||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(p_rghEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(p_rghEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
p_rghEqnComp2().relax();
|
p_rghEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -190,7 +190,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::he
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
the() += phasei()*phasei().thermo().he(p, T);
|
the.ref() += phasei()*phasei().thermo().he(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
return the;
|
return the;
|
||||||
@ -213,7 +213,8 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::he
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
the() += scalarField(phasei(), cells)*phasei().thermo().he(p, T, cells);
|
the.ref() +=
|
||||||
|
scalarField(phasei(), cells)*phasei().thermo().he(p, T, cells);
|
||||||
}
|
}
|
||||||
|
|
||||||
return the;
|
return the;
|
||||||
@ -236,7 +237,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::he
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
the() +=
|
the.ref() +=
|
||||||
phasei().boundaryField()[patchi]*phasei().thermo().he(p, T, patchi);
|
phasei().boundaryField()[patchi]*phasei().thermo().he(p, T, patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +253,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::hc() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
thc() += phasei()*phasei().thermo().hc();
|
thc.ref() += phasei()*phasei().thermo().hc();
|
||||||
}
|
}
|
||||||
|
|
||||||
return thc;
|
return thc;
|
||||||
@ -293,7 +294,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::rho() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
trho() += phasei()*phasei().thermo().rho();
|
trho.ref() += phasei()*phasei().thermo().rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trho;
|
return trho;
|
||||||
@ -314,7 +315,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::rho
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
trho() +=
|
trho.ref() +=
|
||||||
phasei().boundaryField()[patchi]*phasei().thermo().rho(patchi);
|
phasei().boundaryField()[patchi]*phasei().thermo().rho(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,7 +331,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::Cp() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCp() += phasei()*phasei().thermo().Cp();
|
tCp.ref() += phasei()*phasei().thermo().Cp();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCp;
|
return tCp;
|
||||||
@ -353,7 +354,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::Cp
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCp() +=
|
tCp.ref() +=
|
||||||
phasei().boundaryField()[patchi]*phasei().thermo().Cp(p, T, patchi);
|
phasei().boundaryField()[patchi]*phasei().thermo().Cp(p, T, patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -369,7 +370,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::Cv() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCv() += phasei()*phasei().thermo().Cv();
|
tCv.ref() += phasei()*phasei().thermo().Cv();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCv;
|
return tCv;
|
||||||
@ -392,7 +393,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::Cv
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCv() +=
|
tCv.ref() +=
|
||||||
phasei().boundaryField()[patchi]*phasei().thermo().Cv(p, T, patchi);
|
phasei().boundaryField()[patchi]*phasei().thermo().Cv(p, T, patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,7 +409,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::gamma() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tgamma() += phasei()*phasei().thermo().gamma();
|
tgamma.ref() += phasei()*phasei().thermo().gamma();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tgamma;
|
return tgamma;
|
||||||
@ -431,7 +432,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::gamma
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tgamma() +=
|
tgamma.ref() +=
|
||||||
phasei().boundaryField()[patchi]
|
phasei().boundaryField()[patchi]
|
||||||
*phasei().thermo().gamma(p, T, patchi);
|
*phasei().thermo().gamma(p, T, patchi);
|
||||||
}
|
}
|
||||||
@ -448,7 +449,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::Cpv() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCpv() += phasei()*phasei().thermo().Cpv();
|
tCpv.ref() += phasei()*phasei().thermo().Cpv();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCpv;
|
return tCpv;
|
||||||
@ -471,7 +472,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::Cpv
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCpv() +=
|
tCpv.ref() +=
|
||||||
phasei().boundaryField()[patchi]
|
phasei().boundaryField()[patchi]
|
||||||
*phasei().thermo().Cpv(p, T, patchi);
|
*phasei().thermo().Cpv(p, T, patchi);
|
||||||
}
|
}
|
||||||
@ -488,7 +489,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::CpByCpv() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCpByCpv() += phasei()*phasei().thermo().CpByCpv();
|
tCpByCpv.ref() += phasei()*phasei().thermo().CpByCpv();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCpByCpv;
|
return tCpByCpv;
|
||||||
@ -511,7 +512,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::CpByCpv
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tCpByCpv() +=
|
tCpByCpv.ref() +=
|
||||||
phasei().boundaryField()[patchi]
|
phasei().boundaryField()[patchi]
|
||||||
*phasei().thermo().CpByCpv(p, T, patchi);
|
*phasei().thermo().CpByCpv(p, T, patchi);
|
||||||
}
|
}
|
||||||
@ -543,7 +544,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::kappa() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tkappa() += phasei()*phasei().thermo().kappa();
|
tkappa.ref() += phasei()*phasei().thermo().kappa();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tkappa;
|
return tkappa;
|
||||||
@ -564,7 +565,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::kappa
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tkappa() +=
|
tkappa.ref() +=
|
||||||
phasei().boundaryField()[patchi]*phasei().thermo().kappa(patchi);
|
phasei().boundaryField()[patchi]*phasei().thermo().kappa(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -583,7 +584,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::kappaEff
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tkappaEff() += phasei()*phasei().thermo().kappaEff(alphat);
|
tkappaEff.ref() += phasei()*phasei().thermo().kappaEff(alphat);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tkappaEff;
|
return tkappaEff;
|
||||||
@ -606,7 +607,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::kappaEff
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
tkappaEff() +=
|
tkappaEff.ref() +=
|
||||||
phasei().boundaryField()[patchi]
|
phasei().boundaryField()[patchi]
|
||||||
*phasei().thermo().kappaEff(alphat, patchi);
|
*phasei().thermo().kappaEff(alphat, patchi);
|
||||||
}
|
}
|
||||||
@ -626,7 +627,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::alphaEff
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
talphaEff() += phasei()*phasei().thermo().alphaEff(alphat);
|
talphaEff.ref() += phasei()*phasei().thermo().alphaEff(alphat);
|
||||||
}
|
}
|
||||||
|
|
||||||
return talphaEff;
|
return talphaEff;
|
||||||
@ -649,7 +650,7 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::alphaEff
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
talphaEff() +=
|
talphaEff.ref() +=
|
||||||
phasei().boundaryField()[patchi]
|
phasei().boundaryField()[patchi]
|
||||||
*phasei().thermo().alphaEff(alphat, patchi);
|
*phasei().thermo().alphaEff(alphat, patchi);
|
||||||
}
|
}
|
||||||
@ -666,7 +667,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::rCv() const
|
|||||||
|
|
||||||
for (++phasei; phasei != phases_.end(); ++phasei)
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
{
|
{
|
||||||
trCv() += phasei()/phasei().thermo().Cv();
|
trCv.ref() += phasei()/phasei().thermo().Cv();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trCv;
|
return trCv;
|
||||||
@ -696,7 +697,7 @@ Foam::multiphaseMixtureThermo::surfaceTensionForce() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField& stf = tstf();
|
surfaceScalarField& stf = tstf.ref();
|
||||||
|
|
||||||
forAllConstIter(PtrDictionary<phaseModel>, phases_, phase1)
|
forAllConstIter(PtrDictionary<phaseModel>, phases_, phase1)
|
||||||
{
|
{
|
||||||
@ -922,7 +923,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::K
|
|||||||
{
|
{
|
||||||
tmp<surfaceVectorField> tnHatfv = nHatfv(alpha1, alpha2);
|
tmp<surfaceVectorField> tnHatfv = nHatfv(alpha1, alpha2);
|
||||||
|
|
||||||
correctContactAngle(alpha1, alpha2, tnHatfv().boundaryField());
|
correctContactAngle(alpha1, alpha2, tnHatfv.ref().boundaryField());
|
||||||
|
|
||||||
// Simple expression for curvature
|
// Simple expression for curvature
|
||||||
return -fvc::div(tnHatfv & mesh_.Sf());
|
return -fvc::div(tnHatfv & mesh_.Sf());
|
||||||
@ -949,7 +950,8 @@ Foam::multiphaseMixtureThermo::nearInterface() const
|
|||||||
|
|
||||||
forAllConstIter(PtrDictionary<phaseModel>, phases_, phase)
|
forAllConstIter(PtrDictionary<phaseModel>, phases_, phase)
|
||||||
{
|
{
|
||||||
tnearInt() = max(tnearInt(), pos(phase() - 0.01)*pos(0.99 - phase()));
|
tnearInt.ref() =
|
||||||
|
max(tnearInt(), pos(phase() - 0.01)*pos(0.99 - phase()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return tnearInt;
|
return tnearInt;
|
||||||
|
|||||||
@ -80,7 +80,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p_rghEqnComp() += hmm;
|
p_rghEqnComp.ref() += hmm;
|
||||||
}
|
}
|
||||||
|
|
||||||
phasei++;
|
phasei++;
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
(
|
(
|
||||||
alpha1,
|
alpha1,
|
||||||
alphaPhi,
|
alphaPhi,
|
||||||
talphaPhiCorr0(),
|
talphaPhiCorr0.ref(),
|
||||||
mixture.alphaMax(),
|
mixture.alphaMax(),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
@ -73,7 +73,7 @@
|
|||||||
(
|
(
|
||||||
alpha1,
|
alpha1,
|
||||||
talphaPhiUn(),
|
talphaPhiUn(),
|
||||||
talphaPhiCorr(),
|
talphaPhiCorr.ref(),
|
||||||
mixture.alphaMax(),
|
mixture.alphaMax(),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|||||||
@ -32,7 +32,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
ocCoeff =
|
ocCoeff =
|
||||||
refCast<fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha()).ocCoeff();
|
refCast<const fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha())
|
||||||
|
.ocCoeff();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -104,7 +105,7 @@
|
|||||||
if (alphaApplyPrevCorr && talphaPhiCorr0.valid())
|
if (alphaApplyPrevCorr && talphaPhiCorr0.valid())
|
||||||
{
|
{
|
||||||
Info<< "Applying the previous iteration compression flux" << endl;
|
Info<< "Applying the previous iteration compression flux" << endl;
|
||||||
MULES::correct(alpha1, alphaPhi, talphaPhiCorr0(), 1, 0);
|
MULES::correct(alpha1, alphaPhi, talphaPhiCorr0.ref(), 1, 0);
|
||||||
|
|
||||||
alphaPhi += talphaPhiCorr0();
|
alphaPhi += talphaPhiCorr0();
|
||||||
}
|
}
|
||||||
@ -150,7 +151,7 @@
|
|||||||
tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi);
|
tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi);
|
||||||
volScalarField alpha10("alpha10", alpha1);
|
volScalarField alpha10("alpha10", alpha1);
|
||||||
|
|
||||||
MULES::correct(alpha1, talphaPhiUn(), talphaPhiCorr(), 1, 0);
|
MULES::correct(alpha1, talphaPhiUn(), talphaPhiCorr.ref(), 1, 0);
|
||||||
|
|
||||||
// Under-relax the correction for all but the 1st corrector
|
// Under-relax the correction for all but the 1st corrector
|
||||||
if (aCorr == 0)
|
if (aCorr == 0)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
if (MULESCorr)
|
if (MULESCorr)
|
||||||
{
|
{
|
||||||
talphaPhiCorr() -= talphaPhi();
|
talphaPhiCorr.ref() -= talphaPhi();
|
||||||
|
|
||||||
volScalarField alpha100("alpha100", alpha10);
|
volScalarField alpha100("alpha100", alpha10);
|
||||||
alpha10 = alpha1;
|
alpha10 = alpha1;
|
||||||
@ -72,7 +72,7 @@
|
|||||||
geometricOneField(),
|
geometricOneField(),
|
||||||
alpha1,
|
alpha1,
|
||||||
talphaPhi(),
|
talphaPhi(),
|
||||||
talphaPhiCorr(),
|
talphaPhiCorr.ref(),
|
||||||
vDotvmcAlphal,
|
vDotvmcAlphal,
|
||||||
(
|
(
|
||||||
divU*(alpha10 - alpha100)
|
divU*(alpha10 - alpha100)
|
||||||
@ -85,12 +85,12 @@
|
|||||||
// Under-relax the correction for all but the 1st corrector
|
// Under-relax the correction for all but the 1st corrector
|
||||||
if (aCorr == 0)
|
if (aCorr == 0)
|
||||||
{
|
{
|
||||||
talphaPhi() += talphaPhiCorr();
|
talphaPhi.ref() += talphaPhiCorr();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
alpha1 = 0.5*alpha1 + 0.5*alpha10;
|
alpha1 = 0.5*alpha1 + 0.5*alpha10;
|
||||||
talphaPhi() += 0.5*talphaPhiCorr();
|
talphaPhi.ref() += 0.5*talphaPhiCorr();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -100,7 +100,7 @@
|
|||||||
geometricOneField(),
|
geometricOneField(),
|
||||||
alpha1,
|
alpha1,
|
||||||
phi,
|
phi,
|
||||||
talphaPhiCorr(),
|
talphaPhiCorr.ref(),
|
||||||
vDotvmcAlphal,
|
vDotvmcAlphal,
|
||||||
(divU*alpha1 + vDotcAlphal)(),
|
(divU*alpha1 + vDotcAlphal)(),
|
||||||
1,
|
1,
|
||||||
|
|||||||
@ -372,7 +372,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::K
|
|||||||
{
|
{
|
||||||
tmp<surfaceVectorField> tnHatfv = nHatfv(phase1, phase2);
|
tmp<surfaceVectorField> tnHatfv = nHatfv(phase1, phase2);
|
||||||
|
|
||||||
correctContactAngle(phase1, phase2, tnHatfv().boundaryField());
|
correctContactAngle(phase1, phase2, tnHatfv.ref().boundaryField());
|
||||||
|
|
||||||
// Simple expression for curvature
|
// Simple expression for curvature
|
||||||
return -fvc::div(tnHatfv & mesh_.Sf());
|
return -fvc::div(tnHatfv & mesh_.Sf());
|
||||||
@ -493,10 +493,11 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::rho() const
|
|||||||
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<volScalarField> trho = iter()*iter().rho();
|
tmp<volScalarField> trho = iter()*iter().rho();
|
||||||
|
volScalarField& rho = trho.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
trho() += iter()*iter().rho();
|
rho += iter()*iter().rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trho;
|
return trho;
|
||||||
@ -509,10 +510,11 @@ Foam::multiphaseSystem::rho(const label patchi) const
|
|||||||
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<scalarField> trho = iter().boundaryField()[patchi]*iter().rho().value();
|
tmp<scalarField> trho = iter().boundaryField()[patchi]*iter().rho().value();
|
||||||
|
scalarField& rho = trho.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
trho() += iter().boundaryField()[patchi]*iter().rho().value();
|
rho += iter().boundaryField()[patchi]*iter().rho().value();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trho;
|
return trho;
|
||||||
@ -524,10 +526,11 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::nu() const
|
|||||||
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
PtrDictionary<phaseModel>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<volScalarField> tmu = iter()*(iter().rho()*iter().nu());
|
tmp<volScalarField> tmu = iter()*(iter().rho()*iter().nu());
|
||||||
|
volScalarField& mu = tmu.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
tmu() += iter()*(iter().rho()*iter().nu());
|
mu += iter()*(iter().rho()*iter().nu());
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmu/rho();
|
return tmu/rho();
|
||||||
@ -542,10 +545,11 @@ Foam::multiphaseSystem::nu(const label patchi) const
|
|||||||
tmp<scalarField> tmu =
|
tmp<scalarField> tmu =
|
||||||
iter().boundaryField()[patchi]
|
iter().boundaryField()[patchi]
|
||||||
*(iter().rho().value()*iter().nu().value());
|
*(iter().rho().value()*iter().nu().value());
|
||||||
|
scalarField& mu = tmu.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
tmu() +=
|
mu +=
|
||||||
iter().boundaryField()[patchi]
|
iter().boundaryField()[patchi]
|
||||||
*(iter().rho().value()*iter().nu().value());
|
*(iter().rho().value()*iter().nu().value());
|
||||||
}
|
}
|
||||||
@ -592,7 +596,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::Cvm
|
|||||||
|
|
||||||
if (Cvm != Cvms_.end())
|
if (Cvm != Cvms_.end())
|
||||||
{
|
{
|
||||||
tCvm() += Cvm()*phase2.rho()*phase2;
|
tCvm.ref() += Cvm()*phase2.rho()*phase2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -600,7 +604,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::Cvm
|
|||||||
|
|
||||||
if (Cvm != Cvms_.end())
|
if (Cvm != Cvms_.end())
|
||||||
{
|
{
|
||||||
tCvm() += Cvm()*phase.rho()*phase2;
|
tCvm.ref() += Cvm()*phase.rho()*phase2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -648,7 +652,7 @@ Foam::tmp<Foam::volVectorField> Foam::multiphaseSystem::Svm
|
|||||||
|
|
||||||
if (Cvm != Cvms_.end())
|
if (Cvm != Cvms_.end())
|
||||||
{
|
{
|
||||||
tSvm() += Cvm()*phase2.rho()*phase2*phase2.DDtU();
|
tSvm.ref() += Cvm()*phase2.rho()*phase2*phase2.DDtU();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -656,7 +660,7 @@ Foam::tmp<Foam::volVectorField> Foam::multiphaseSystem::Svm
|
|||||||
|
|
||||||
if (Cvm != Cvms_.end())
|
if (Cvm != Cvms_.end())
|
||||||
{
|
{
|
||||||
tSvm() += Cvm()*phase.rho()*phase2*phase2.DDtU();
|
tSvm.ref() += Cvm()*phase.rho()*phase2*phase2.DDtU();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -673,7 +677,7 @@ Foam::tmp<Foam::volVectorField> Foam::multiphaseSystem::Svm
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
tSvm().boundaryField()[patchi] = vector::zero;
|
tSvm.ref().boundaryField()[patchi] = vector::zero;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -772,7 +776,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::dragCoeff
|
|||||||
|| &phase == &dmIter()->phase2()
|
|| &phase == &dmIter()->phase2()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
tdragCoeff() += *dcIter();
|
tdragCoeff.ref() += *dcIter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +822,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
|
|||||||
|
|
||||||
if (sigma != sigmas_.end())
|
if (sigma != sigmas_.end())
|
||||||
{
|
{
|
||||||
tSurfaceTension() +=
|
tSurfaceTension.ref() +=
|
||||||
dimensionedScalar("sigma", dimSigma_, sigma())
|
dimensionedScalar("sigma", dimSigma_, sigma())
|
||||||
*fvc::interpolate(K(phase1, phase2))*
|
*fvc::interpolate(K(phase1, phase2))*
|
||||||
(
|
(
|
||||||
@ -853,7 +857,7 @@ Foam::multiphaseSystem::nearInterface() const
|
|||||||
|
|
||||||
forAllConstIter(PtrDictionary<phaseModel>, phases_, iter)
|
forAllConstIter(PtrDictionary<phaseModel>, phases_, iter)
|
||||||
{
|
{
|
||||||
tnearInt() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter()));
|
tnearInt.ref() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return tnearInt;
|
return tnearInt;
|
||||||
|
|||||||
@ -141,10 +141,11 @@ Foam::multiphaseMixture::rho() const
|
|||||||
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<volScalarField> trho = iter()*iter().rho();
|
tmp<volScalarField> trho = iter()*iter().rho();
|
||||||
|
volScalarField& rho = trho.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
trho() += iter()*iter().rho();
|
rho += iter()*iter().rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trho;
|
return trho;
|
||||||
@ -157,10 +158,11 @@ Foam::multiphaseMixture::rho(const label patchi) const
|
|||||||
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<scalarField> trho = iter().boundaryField()[patchi]*iter().rho().value();
|
tmp<scalarField> trho = iter().boundaryField()[patchi]*iter().rho().value();
|
||||||
|
scalarField& rho = trho.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
trho() += iter().boundaryField()[patchi]*iter().rho().value();
|
rho += iter().boundaryField()[patchi]*iter().rho().value();
|
||||||
}
|
}
|
||||||
|
|
||||||
return trho;
|
return trho;
|
||||||
@ -173,10 +175,11 @@ Foam::multiphaseMixture::mu() const
|
|||||||
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
PtrDictionary<phase>::const_iterator iter = phases_.begin();
|
||||||
|
|
||||||
tmp<volScalarField> tmu = iter()*iter().rho()*iter().nu();
|
tmp<volScalarField> tmu = iter()*iter().rho()*iter().nu();
|
||||||
|
volScalarField& mu = tmu.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
tmu() += iter()*iter().rho()*iter().nu();
|
mu += iter()*iter().rho()*iter().nu();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmu;
|
return tmu;
|
||||||
@ -192,10 +195,11 @@ Foam::multiphaseMixture::mu(const label patchi) const
|
|||||||
iter().boundaryField()[patchi]
|
iter().boundaryField()[patchi]
|
||||||
*iter().rho().value()
|
*iter().rho().value()
|
||||||
*iter().nu(patchi);
|
*iter().nu(patchi);
|
||||||
|
scalarField& mu = tmu.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
tmu() +=
|
mu +=
|
||||||
iter().boundaryField()[patchi]
|
iter().boundaryField()[patchi]
|
||||||
*iter().rho().value()
|
*iter().rho().value()
|
||||||
*iter().nu(patchi);
|
*iter().nu(patchi);
|
||||||
@ -212,10 +216,11 @@ Foam::multiphaseMixture::muf() const
|
|||||||
|
|
||||||
tmp<surfaceScalarField> tmuf =
|
tmp<surfaceScalarField> tmuf =
|
||||||
fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
|
fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
|
||||||
|
surfaceScalarField& muf = tmuf.ref();
|
||||||
|
|
||||||
for (++iter; iter != phases_.end(); ++iter)
|
for (++iter; iter != phases_.end(); ++iter)
|
||||||
{
|
{
|
||||||
tmuf() +=
|
muf +=
|
||||||
fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
|
fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,7 +272,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField& stf = tstf();
|
surfaceScalarField& stf = tstf.ref();
|
||||||
|
|
||||||
forAllConstIter(PtrDictionary<phase>, phases_, iter1)
|
forAllConstIter(PtrDictionary<phase>, phases_, iter1)
|
||||||
{
|
{
|
||||||
@ -518,7 +523,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K
|
|||||||
{
|
{
|
||||||
tmp<surfaceVectorField> tnHatfv = nHatfv(alpha1, alpha2);
|
tmp<surfaceVectorField> tnHatfv = nHatfv(alpha1, alpha2);
|
||||||
|
|
||||||
correctContactAngle(alpha1, alpha2, tnHatfv().boundaryField());
|
correctContactAngle(alpha1, alpha2, tnHatfv.ref().boundaryField());
|
||||||
|
|
||||||
// Simple expression for curvature
|
// Simple expression for curvature
|
||||||
return -fvc::div(tnHatfv & mesh_.Sf());
|
return -fvc::div(tnHatfv & mesh_.Sf());
|
||||||
@ -545,7 +550,7 @@ Foam::multiphaseMixture::nearInterface() const
|
|||||||
|
|
||||||
forAllConstIter(PtrDictionary<phase>, phases_, iter)
|
forAllConstIter(PtrDictionary<phase>, phases_, iter)
|
||||||
{
|
{
|
||||||
tnearInt() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter()));
|
tnearInt.ref() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return tnearInt;
|
return tnearInt;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
MRF.correctBoundaryVelocity(U);
|
MRF.correctBoundaryVelocity(U);
|
||||||
|
|
||||||
tmp<fvVectorMatrix> UEqn
|
tmp<fvVectorMatrix> tUEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(U) + fvm::div(phi, U)
|
fvm::ddt(U) + fvm::div(phi, U)
|
||||||
+ MRF.DDt(U)
|
+ MRF.DDt(U)
|
||||||
@ -8,14 +8,15 @@ tmp<fvVectorMatrix> UEqn
|
|||||||
==
|
==
|
||||||
fvOptions(U)
|
fvOptions(U)
|
||||||
);
|
);
|
||||||
|
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||||
|
|
||||||
UEqn().relax();
|
UEqn.relax();
|
||||||
|
|
||||||
fvOptions.constrain(UEqn());
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve(UEqn() == -fvc::grad(p_gh));
|
solve(UEqn == -fvc::grad(p_gh));
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
volScalarField rAU(1.0/UEqn().A());
|
volScalarField rAU(1.0/UEqn.A());
|
||||||
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_gh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_gh));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
rAU = 1.0/UEqn().A();
|
rAU = 1.0/UEqn.A();
|
||||||
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
||||||
volVectorField HbyA(constrainHbyA(rAU*UEqn().H(), U, p_gh));
|
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_gh));
|
||||||
|
|
||||||
if (pimple.nCorrPISO() <= 1)
|
if (pimple.nCorrPISO() <= 1)
|
||||||
{
|
{
|
||||||
UEqn.clear();
|
tUEqn.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
surfaceScalarField phiHbyA
|
surfaceScalarField phiHbyA
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -153,7 +153,7 @@ Foam::InterfaceCompositionModel<Thermo, OtherThermo>::D
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& D(tmpD());
|
volScalarField& D(tmpD.ref());
|
||||||
|
|
||||||
forAll(p, cellI)
|
forAll(p, cellI)
|
||||||
{
|
{
|
||||||
@ -207,7 +207,7 @@ Foam::InterfaceCompositionModel<Thermo, OtherThermo>::L
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& L(tmpL());
|
volScalarField& L(tmpL.ref());
|
||||||
|
|
||||||
forAll(p, cellI)
|
forAll(p, cellI)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -111,7 +111,7 @@ Foam::saturationModels::polynomial::Tsat
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
volScalarField& Tsat = tTsat();
|
volScalarField& Tsat = tTsat.ref();
|
||||||
|
|
||||||
forAll(Tsat,celli)
|
forAll(Tsat,celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -46,7 +46,7 @@ Foam::tmp<Foam::volVectorField> Foam::wallLubricationModel::zeroGradWalls
|
|||||||
tmp<volVectorField> tFi
|
tmp<volVectorField> tFi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
volVectorField& Fi = tFi();
|
volVectorField& Fi = tFi.ref();
|
||||||
const fvPatchList& patches = Fi.mesh().boundary();
|
const fvPatchList& patches = Fi.mesh().boundary();
|
||||||
|
|
||||||
forAll(patches, patchi)
|
forAll(patches, patchi)
|
||||||
|
|||||||
@ -199,15 +199,15 @@ Foam::BlendedInterfacialModel<ModelType>::K() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->K()*(scalar(1) - f1() - f2());
|
x.ref() += model_->K()*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->K()*f1;
|
x.ref() += model1In2_->K()*f1;
|
||||||
}
|
}
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->K()*f2;
|
x.ref() += model2In1_->K()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -216,7 +216,7 @@ Foam::BlendedInterfacialModel<ModelType>::K() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -259,15 +259,15 @@ Foam::BlendedInterfacialModel<ModelType>::K(const scalar residualAlpha) const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->K(residualAlpha)*(scalar(1) - f1() - f2());
|
x.ref() += model_->K(residualAlpha)*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->K(residualAlpha)*f1;
|
x.ref() += model1In2_->K(residualAlpha)*f1;
|
||||||
}
|
}
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->K(residualAlpha)*f2;
|
x.ref() += model2In1_->K(residualAlpha)*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -276,7 +276,7 @@ Foam::BlendedInterfacialModel<ModelType>::K(const scalar residualAlpha) const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -325,17 +325,17 @@ Foam::BlendedInterfacialModel<ModelType>::Kf() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->Kf()*(scalar(1) - f1() - f2());
|
x.ref() += model_->Kf()*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->Kf()*f1;
|
x.ref() += model1In2_->Kf()*f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->Kf()*f2;
|
x.ref() += model2In1_->Kf()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -344,7 +344,7 @@ Foam::BlendedInterfacialModel<ModelType>::Kf() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -388,17 +388,17 @@ Foam::BlendedInterfacialModel<ModelType>::F() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->F()*(scalar(1) - f1() - f2());
|
x.ref() += model_->F()*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->F()*f1;
|
x.ref() += model1In2_->F()*f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() -= model2In1_->F()*f2; // note : subtraction
|
x.ref() -= model2In1_->F()*f2; // note : subtraction
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -407,7 +407,7 @@ Foam::BlendedInterfacialModel<ModelType>::F() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -456,17 +456,17 @@ Foam::BlendedInterfacialModel<ModelType>::Ff() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->Ff()*(scalar(1) - f1() - f2());
|
x.ref() += model_->Ff()*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->Ff()*f1;
|
x.ref() += model1In2_->Ff()*f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() -= model2In1_->Ff()*f2; // note : subtraction
|
x.ref() -= model2In1_->Ff()*f2; // note : subtraction
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -475,7 +475,7 @@ Foam::BlendedInterfacialModel<ModelType>::Ff() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -518,15 +518,15 @@ Foam::BlendedInterfacialModel<ModelType>::D() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->D()*(scalar(1) - f1() - f2());
|
x.ref() += model_->D()*(scalar(1) - f1() - f2());
|
||||||
}
|
}
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->D()*f1;
|
x.ref() += model1In2_->D()*f1;
|
||||||
}
|
}
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->D()*f2;
|
x.ref() += model2In1_->D()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -535,7 +535,7 @@ Foam::BlendedInterfacialModel<ModelType>::D() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
|
|||||||
@ -218,7 +218,7 @@ Foam::HeatAndMassTransferPhaseSystem<BasePhaseSystem>::dmdt
|
|||||||
{
|
{
|
||||||
if (phase1 == &phase)
|
if (phase1 == &phase)
|
||||||
{
|
{
|
||||||
tdmdt() += this->dmdt(pair);
|
tdmdt.ref() += this->dmdt(pair);
|
||||||
}
|
}
|
||||||
|
|
||||||
Swap(phase1, phase2);
|
Swap(phase1, phase2);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -112,13 +112,13 @@ Foam::AnisothermalPhaseModel<BasePhaseModel>::heEqn()
|
|||||||
// Add the appropriate pressure-work term
|
// Add the appropriate pressure-work term
|
||||||
if (he.name() == this->thermo_->phasePropertyName("e"))
|
if (he.name() == this->thermo_->phasePropertyName("e"))
|
||||||
{
|
{
|
||||||
tEEqn() +=
|
tEEqn.ref() +=
|
||||||
fvc::ddt(alpha)*this->thermo().p()
|
fvc::ddt(alpha)*this->thermo().p()
|
||||||
+ fvc::div(alphaPhi, this->thermo().p());
|
+ fvc::div(alphaPhi, this->thermo().p());
|
||||||
}
|
}
|
||||||
else if (this->thermo_->dpdt())
|
else if (this->thermo_->dpdt())
|
||||||
{
|
{
|
||||||
tEEqn() -= alpha*this->fluid().dpdt();
|
tEEqn.ref() -= alpha*this->fluid().dpdt();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tEEqn;
|
return tEEqn;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -57,7 +57,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::calcPhi
|
|||||||
|
|
||||||
for (label phasei=1; phasei<phaseModels.size(); phasei++)
|
for (label phasei=1; phasei<phaseModels.size(); phasei++)
|
||||||
{
|
{
|
||||||
tmpPhi() +=
|
tmpPhi.ref() +=
|
||||||
fvc::interpolate(phaseModels[phasei])*phaseModels[phasei].phi();
|
fvc::interpolate(phaseModels[phasei])*phaseModels[phasei].phi();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const
|
|||||||
|
|
||||||
for (label phasei=1; phasei<phaseModels_.size(); phasei++)
|
for (label phasei=1; phasei<phaseModels_.size(); phasei++)
|
||||||
{
|
{
|
||||||
tmpRho() += phaseModels_[phasei]*phaseModels_[phasei].rho();
|
tmpRho.ref() += phaseModels_[phasei]*phaseModels_[phasei].rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmpRho;
|
return tmpRho;
|
||||||
@ -213,7 +213,7 @@ Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const
|
|||||||
|
|
||||||
for (label phasei=1; phasei<phaseModels_.size(); phasei++)
|
for (label phasei=1; phasei<phaseModels_.size(); phasei++)
|
||||||
{
|
{
|
||||||
tmpU() += phaseModels_[phasei]*phaseModels_[phasei].U();
|
tmpU.ref() += phaseModels_[phasei]*phaseModels_[phasei].U();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmpU;
|
return tmpU;
|
||||||
|
|||||||
@ -29,7 +29,7 @@ for (int Ecorr=0; Ecorr<nEnergyCorrectors; Ecorr++)
|
|||||||
);
|
);
|
||||||
|
|
||||||
EEqn->relax();
|
EEqn->relax();
|
||||||
fvOptions.constrain(EEqn());
|
fvOptions.constrain(EEqn.ref());
|
||||||
EEqn->solve();
|
EEqn->solve();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
EXE_INC = -DCONST_TMP \
|
EXE_INC = \
|
||||||
-I../multiphaseSystem/lnInclude \
|
-I../multiphaseSystem/lnInclude \
|
||||||
-I../../phaseSystems/lnInclude \
|
-I../../phaseSystems/lnInclude \
|
||||||
-I../../interfacialModels/lnInclude\
|
-I../../interfacialModels/lnInclude\
|
||||||
|
|||||||
@ -477,7 +477,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::K
|
|||||||
{
|
{
|
||||||
tmp<surfaceVectorField> tnHatfv = nHatfv(phase1, phase2);
|
tmp<surfaceVectorField> tnHatfv = nHatfv(phase1, phase2);
|
||||||
|
|
||||||
correctContactAngle(phase1, phase2, tnHatfv().boundaryField());
|
correctContactAngle(phase1, phase2, tnHatfv.ref().boundaryField());
|
||||||
|
|
||||||
// Simple expression for curvature
|
// Simple expression for curvature
|
||||||
return -fvc::div(tnHatfv & mesh_.Sf());
|
return -fvc::div(tnHatfv & mesh_.Sf());
|
||||||
@ -568,7 +568,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
|
|||||||
|
|
||||||
if (cAlpha != cAlphas_.end())
|
if (cAlpha != cAlphas_.end())
|
||||||
{
|
{
|
||||||
tSurfaceTension() +=
|
tSurfaceTension.ref() +=
|
||||||
fvc::interpolate(sigma(key12)*K(phase1, phase2))
|
fvc::interpolate(sigma(key12)*K(phase1, phase2))
|
||||||
*(
|
*(
|
||||||
fvc::interpolate(phase2)*fvc::snGrad(phase1)
|
fvc::interpolate(phase2)*fvc::snGrad(phase1)
|
||||||
@ -602,7 +602,7 @@ Foam::multiphaseSystem::nearInterface() const
|
|||||||
|
|
||||||
forAll(phases(), phasei)
|
forAll(phases(), phasei)
|
||||||
{
|
{
|
||||||
tnearInt() = max
|
tnearInt.ref() = max
|
||||||
(
|
(
|
||||||
tnearInt(),
|
tnearInt(),
|
||||||
pos(phases()[phasei] - 0.01)*pos(0.99 - phases()[phasei])
|
pos(phases()[phasei] - 0.01)*pos(0.99 - phases()[phasei])
|
||||||
|
|||||||
@ -457,7 +457,7 @@ while (pimple.correct())
|
|||||||
forAll(phases, phasei)
|
forAll(phases, phasei)
|
||||||
{
|
{
|
||||||
phaseModel& phase = phases[phasei];
|
phaseModel& phase = phases[phasei];
|
||||||
phase.rho()() += phase.thermo().psi()*(p_rgh - p_rgh_0);
|
phase.thermo().rho() += phase.thermo().psi()*(p_rgh - p_rgh_0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Correct p_rgh for consistency with p and the updated densities
|
// Correct p_rgh for consistency with p and the updated densities
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ for (int Ecorr=0; Ecorr<nEnergyCorrectors; Ecorr++)
|
|||||||
);
|
);
|
||||||
|
|
||||||
E1Eqn->relax();
|
E1Eqn->relax();
|
||||||
fvOptions.constrain(E1Eqn());
|
fvOptions.constrain(E1Eqn.ref());
|
||||||
E1Eqn->solve();
|
E1Eqn->solve();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,7 +43,7 @@ for (int Ecorr=0; Ecorr<nEnergyCorrectors; Ecorr++)
|
|||||||
);
|
);
|
||||||
|
|
||||||
E2eqn->relax();
|
E2eqn->relax();
|
||||||
fvOptions.constrain(E2eqn());
|
fvOptions.constrain(E2eqn.ref());
|
||||||
E2eqn->solve();
|
E2eqn->solve();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -261,8 +261,8 @@ while (pimple.correct())
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp1().relax();
|
pEqnComp1.ref().relax();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phase2.compressible())
|
if (phase2.compressible())
|
||||||
@ -286,8 +286,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp2().relax();
|
pEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -317,7 +317,7 @@ while (pimple.correct())
|
|||||||
{
|
{
|
||||||
if (pEqnComp1.valid())
|
if (pEqnComp1.valid())
|
||||||
{
|
{
|
||||||
pEqnComp1() -= fluid.dmdt()/rho1;
|
pEqnComp1.ref() -= fluid.dmdt()/rho1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -326,7 +326,7 @@ while (pimple.correct())
|
|||||||
|
|
||||||
if (pEqnComp2.valid())
|
if (pEqnComp2.valid())
|
||||||
{
|
{
|
||||||
pEqnComp2() += fluid.dmdt()/rho2;
|
pEqnComp2.ref() += fluid.dmdt()/rho2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -242,8 +242,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp1().relax();
|
pEqnComp1.ref().relax();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phase2.compressible())
|
if (phase2.compressible())
|
||||||
@ -261,8 +261,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp2().relax();
|
pEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -292,7 +292,7 @@ while (pimple.correct())
|
|||||||
{
|
{
|
||||||
if (pEqnComp1.valid())
|
if (pEqnComp1.valid())
|
||||||
{
|
{
|
||||||
pEqnComp1() -= fluid.dmdt()/rho1;
|
pEqnComp1.ref() -= fluid.dmdt()/rho1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -301,7 +301,7 @@ while (pimple.correct())
|
|||||||
|
|
||||||
if (pEqnComp2.valid())
|
if (pEqnComp2.valid())
|
||||||
{
|
{
|
||||||
pEqnComp2() += fluid.dmdt()/rho2;
|
pEqnComp2.ref() += fluid.dmdt()/rho2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
volScalarField& rDeltaT = trDeltaT();
|
volScalarField& rDeltaT = trDeltaT.ref();
|
||||||
|
|
||||||
const dictionary& pimpleDict = pimple.dict();
|
const dictionary& pimpleDict = pimple.dict();
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
EXE_INC = -DCONST_TMP \
|
EXE_INC = \
|
||||||
-I../twoPhaseSystem/lnInclude \
|
-I../twoPhaseSystem/lnInclude \
|
||||||
-I../../phaseSystems/lnInclude \
|
-I../../phaseSystems/lnInclude \
|
||||||
-I../../interfacialModels/lnInclude\
|
-I../../interfacialModels/lnInclude\
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -299,7 +299,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField liquidw(liquid.boundaryField()[patchi]);
|
const scalarField liquidw(liquid.boundaryField()[patchi]);
|
||||||
|
|
||||||
// Damp boiling at high void fractions.
|
// Damp boiling at high void fractions.
|
||||||
const scalarField W(min(liquidw/0.2, scalar(0.1)));
|
const scalarField W(min(liquidw/0.2, scalar(1)));
|
||||||
|
|
||||||
const scalarField A2(W*min(M_PI*sqr(Ddep)*N*Al/4, scalar(1)));
|
const scalarField A2(W*min(M_PI*sqr(Ddep)*N*Al/4, scalar(1)));
|
||||||
const scalarField A1(max(1 - A2, scalar(1e-4)));
|
const scalarField A1(max(1 - A2, scalar(1e-4)));
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -284,7 +284,7 @@ void Foam::twoPhaseSystem::solve()
|
|||||||
|
|
||||||
if (tdgdt.valid())
|
if (tdgdt.valid())
|
||||||
{
|
{
|
||||||
scalarField& dgdt = tdgdt();
|
scalarField& dgdt = tdgdt.ref();
|
||||||
|
|
||||||
forAll(dgdt, celli)
|
forAll(dgdt, celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -260,8 +260,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp1().relax();
|
pEqnComp1.ref().relax();
|
||||||
|
|
||||||
pEqnComp2 =
|
pEqnComp2 =
|
||||||
(
|
(
|
||||||
@ -276,8 +276,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp2().relax();
|
pEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -239,8 +239,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
+ fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp1().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp1().relax();
|
pEqnComp1.ref().relax();
|
||||||
|
|
||||||
pEqnComp2 =
|
pEqnComp2 =
|
||||||
(
|
(
|
||||||
@ -255,8 +255,8 @@ while (pimple.correct())
|
|||||||
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
+ fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
deleteDemandDrivenData(pEqnComp2().faceFluxCorrectionPtr());
|
deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
|
||||||
pEqnComp2().relax();
|
pEqnComp2.ref().relax();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
EXE_INC = -DCONST_TMP \
|
EXE_INC = \
|
||||||
-I../twoPhaseSystem/lnInclude \
|
-I../twoPhaseSystem/lnInclude \
|
||||||
-I../interfacialModels/lnInclude\
|
-I../interfacialModels/lnInclude\
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||||
|
|||||||
@ -155,17 +155,17 @@ Foam::BlendedInterfacialModel<modelType>::K() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->K()*(f1() - f2());
|
x.ref() += model_->K()*(f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->K()*(1 - f1);
|
x.ref() += model1In2_->K()*(1 - f1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->K()*f2;
|
x.ref() += model2In1_->K()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -174,7 +174,7 @@ Foam::BlendedInterfacialModel<modelType>::K() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -223,17 +223,17 @@ Foam::BlendedInterfacialModel<modelType>::Kf() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->Kf()*(f1() - f2());
|
x.ref() += model_->Kf()*(f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->Kf()*(1 - f1);
|
x.ref() += model1In2_->Kf()*(1 - f1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->Kf()*f2;
|
x.ref() += model2In1_->Kf()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -242,7 +242,7 @@ Foam::BlendedInterfacialModel<modelType>::Kf() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -286,17 +286,17 @@ Foam::BlendedInterfacialModel<modelType>::F() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->F()*(f1() - f2());
|
x.ref() += model_->F()*(f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->F()*(1 - f1);
|
x.ref() += model1In2_->F()*(1 - f1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() -= model2In1_->F()*f2; // note : subtraction
|
x.ref() -= model2In1_->F()*f2; // note : subtraction
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -305,7 +305,7 @@ Foam::BlendedInterfacialModel<modelType>::F() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -354,17 +354,17 @@ Foam::BlendedInterfacialModel<modelType>::Ff() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->Ff()*(f1() - f2());
|
x.ref() += model_->Ff()*(f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->Ff()*(1 - f1);
|
x.ref() += model1In2_->Ff()*(1 - f1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() -= model2In1_->Ff()*f2; // note : subtraction
|
x.ref() -= model2In1_->Ff()*f2; // note : subtraction
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -373,7 +373,7 @@ Foam::BlendedInterfacialModel<modelType>::Ff() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
@ -416,17 +416,17 @@ Foam::BlendedInterfacialModel<modelType>::D() const
|
|||||||
|
|
||||||
if (model_.valid())
|
if (model_.valid())
|
||||||
{
|
{
|
||||||
x() += model_->D()*(f1() - f2());
|
x.ref() += model_->D()*(f1() - f2());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model1In2_.valid())
|
if (model1In2_.valid())
|
||||||
{
|
{
|
||||||
x() += model1In2_->D()*(1 - f1);
|
x.ref() += model1In2_->D()*(1 - f1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model2In1_.valid())
|
if (model2In1_.valid())
|
||||||
{
|
{
|
||||||
x() += model2In1_->D()*f2;
|
x.ref() += model2In1_->D()*f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -435,7 +435,7 @@ Foam::BlendedInterfacialModel<modelType>::D() const
|
|||||||
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
&& (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
correctFixedFluxBCs(x());
|
correctFixedFluxBCs(x.ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
|
|||||||
@ -1150,7 +1150,7 @@ tmp<pointField> calcOffset
|
|||||||
vectorField::subField fc = pp.faceCentres();
|
vectorField::subField fc = pp.faceCentres();
|
||||||
|
|
||||||
tmp<pointField> toffsets(new pointField(fc.size()));
|
tmp<pointField> toffsets(new pointField(fc.size()));
|
||||||
pointField& offsets = toffsets();
|
pointField& offsets = toffsets.ref();
|
||||||
|
|
||||||
forAll(fc, i)
|
forAll(fc, i)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -280,7 +280,7 @@ Foam::tmp<Foam::pointField> Foam::DelaunayMeshTools::allPoints
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
tmp<pointField> tpts(new pointField(t.vertexCount(), point::max));
|
tmp<pointField> tpts(new pointField(t.vertexCount(), point::max));
|
||||||
pointField& pts = tpts();
|
pointField& pts = tpts.ref();
|
||||||
|
|
||||||
for
|
for
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -262,7 +262,7 @@ Foam::label Foam::cellShapeControlMesh::removePoints()
|
|||||||
Foam::tmp<Foam::pointField> Foam::cellShapeControlMesh::cellCentres() const
|
Foam::tmp<Foam::pointField> Foam::cellShapeControlMesh::cellCentres() const
|
||||||
{
|
{
|
||||||
tmp<pointField> tcellCentres(new pointField(number_of_finite_cells()));
|
tmp<pointField> tcellCentres(new pointField(number_of_finite_cells()));
|
||||||
pointField& cellCentres = tcellCentres();
|
pointField& cellCentres = tcellCentres.ref();
|
||||||
|
|
||||||
label count = 0;
|
label count = 0;
|
||||||
for
|
for
|
||||||
|
|||||||
@ -179,7 +179,7 @@ Foam::tmp<Foam::triadField> Foam::smoothAlignmentSolver::buildAlignmentField
|
|||||||
(
|
(
|
||||||
new triadField(mesh.vertexCount(), triad::unset)
|
new triadField(mesh.vertexCount(), triad::unset)
|
||||||
);
|
);
|
||||||
triadField& alignments = tAlignments();
|
triadField& alignments = tAlignments.ref();
|
||||||
|
|
||||||
for
|
for
|
||||||
(
|
(
|
||||||
@ -211,7 +211,7 @@ Foam::tmp<Foam::pointField> Foam::smoothAlignmentSolver::buildPointField
|
|||||||
(
|
(
|
||||||
new pointField(mesh.vertexCount(), point(GREAT, GREAT, GREAT))
|
new pointField(mesh.vertexCount(), point(GREAT, GREAT, GREAT))
|
||||||
);
|
);
|
||||||
pointField& points = tPoints();
|
pointField& points = tPoints.ref();
|
||||||
|
|
||||||
for
|
for
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -152,7 +152,7 @@ Foam::tmp<Foam::triSurfacePointScalarField> Foam::automatic::load()
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
triSurfacePointScalarField& pointCellSize = tPointCellSize();
|
triSurfacePointScalarField& pointCellSize = tPointCellSize.ref();
|
||||||
|
|
||||||
if (readCurvature_)
|
if (readCurvature_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -95,7 +95,7 @@ Foam::tmp<Foam::triSurfacePointScalarField> Foam::fieldFromFile::load()
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
pointCellSize() *= cellSizeMultipleCoeff_;
|
pointCellSize.ref() *= cellSizeMultipleCoeff_;
|
||||||
|
|
||||||
return pointCellSize;
|
return pointCellSize;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -105,7 +105,7 @@ Foam::searchableBoxFeatures::features() const
|
|||||||
edgeNormals[11][0] = 3; edgeNormals[11][1] = 0;
|
edgeNormals[11][0] = 3; edgeNormals[11][1] = 0;
|
||||||
|
|
||||||
tmp<pointField> surfacePointsTmp(surface().points());
|
tmp<pointField> surfacePointsTmp(surface().points());
|
||||||
pointField& surfacePoints = surfacePointsTmp();
|
pointField& surfacePoints = surfacePointsTmp.ref();
|
||||||
|
|
||||||
forAll(edgeDirections, eI)
|
forAll(edgeDirections, eI)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -84,7 +84,7 @@ tmp<volScalarField> createScalarField
|
|||||||
zeroGradientFvPatchScalarField::typeName
|
zeroGradientFvPatchScalarField::typeName
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField& fld = tfld();
|
volScalarField& fld = tfld.ref();
|
||||||
|
|
||||||
forAll(fld, cellI)
|
forAll(fld, cellI)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -181,7 +181,7 @@ void subsetVolFields
|
|||||||
{
|
{
|
||||||
if (addedPatches.found(patchI))
|
if (addedPatches.found(patchI))
|
||||||
{
|
{
|
||||||
tSubFld().boundaryField()[patchI] ==
|
tSubFld.ref().boundaryField()[patchI] ==
|
||||||
pTraits<typename GeoField::value_type>::zero;
|
pTraits<typename GeoField::value_type>::zero;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -233,7 +233,7 @@ void subsetSurfaceFields
|
|||||||
{
|
{
|
||||||
if (addedPatches.found(patchI))
|
if (addedPatches.found(patchI))
|
||||||
{
|
{
|
||||||
tSubFld().boundaryField()[patchI] ==
|
tSubFld.ref().boundaryField()[patchI] ==
|
||||||
pTraits<typename GeoField::value_type>::zero;
|
pTraits<typename GeoField::value_type>::zero;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,8 +53,8 @@ volField
|
|||||||
(
|
(
|
||||||
meshSubsetter.interpolate(vf)
|
meshSubsetter.interpolate(vf)
|
||||||
);
|
);
|
||||||
tfld().checkOut();
|
tfld.ref().checkOut();
|
||||||
tfld().rename(vf.name());
|
tfld.ref().rename(vf.name());
|
||||||
return tfld;
|
return tfld;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -729,7 +729,7 @@ void ensightField
|
|||||||
(
|
(
|
||||||
volPointInterpolation::New(vf.mesh()).interpolate(vf)
|
volPointInterpolation::New(vf.mesh()).interpolate(vf)
|
||||||
);
|
);
|
||||||
pfld().rename(vf.name());
|
pfld.ref().rename(vf.name());
|
||||||
|
|
||||||
ensightPointField<Type>
|
ensightPointField<Type>
|
||||||
(
|
(
|
||||||
|
|||||||
@ -37,7 +37,7 @@ Foam::tmp<Field<Type>> Foam::surfaceMeshWriter::getFaceField
|
|||||||
const polyBoundaryMesh& patches = sfld.mesh().boundaryMesh();
|
const polyBoundaryMesh& patches = sfld.mesh().boundaryMesh();
|
||||||
|
|
||||||
tmp<Field<Type>> tfld(new Field<Type>(pp_.size()));
|
tmp<Field<Type>> tfld(new Field<Type>(pp_.size()));
|
||||||
Field<Type>& fld = tfld();
|
Field<Type>& fld = tfld.ref();
|
||||||
|
|
||||||
forAll(pp_.addressing(), i)
|
forAll(pp_.addressing(), i)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -157,7 +157,7 @@ public:
|
|||||||
if (useSubMesh())
|
if (useSubMesh())
|
||||||
{
|
{
|
||||||
tmp<GeoField> subFld = subsetter_.interpolate(fld);
|
tmp<GeoField> subFld = subsetter_.interpolate(fld);
|
||||||
subFld().rename(fld.name());
|
subFld.ref().rename(fld.name());
|
||||||
return subFld;
|
return subFld;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user