Corrected handling of the wall BCs of p for buoyant flows.

This commit is contained in:
henry 2009-07-07 22:56:02 +01:00
parent d830441735
commit 4439183d96
32 changed files with 144 additions and 141 deletions

View File

@ -58,8 +58,6 @@ else
//+ fvc::ddtPhiCorr(rUA, rho, U, phi)
);
//bool closedVolume = adjustPhi(phi, U, p);
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
// Pressure corrector

View File

@ -7,6 +7,7 @@
phi = fvc::interpolate(U) & mesh.Sf();
adjustPhi(phi, U, p);
surfaceScalarField buoyancyPhi =
rUAf*fvc::interpolate(rhok)*(g & mesh.Sf());
phi += buoyancyPhi;

View File

@ -9,6 +9,7 @@
phi = fvc::interpolate(rho)*(fvc::interpolate(U) & mesh.Sf());
bool closedVolume = adjustPhi(phi, U, p);
surfaceScalarField buoyancyPhi =
rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf());
phi += buoyancyPhi;

View File

@ -1,5 +1,9 @@
{
wordList pcorrTypes(p.boundaryField().types());
wordList pcorrTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
for (label i=0; i<p.boundaryField().size(); i++)
{

View File

@ -104,12 +104,6 @@ int main(int argc, char *argv[])
#include "meshCourantNo.H"
}
if (mesh.changing())
{
gh = g & mesh.C();
ghf = g & mesh.Cf();
}
turbulence->correct();
// --- Outer-corrector loop

View File

@ -46,11 +46,6 @@
#include "createPhi.H"
Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C());
surfaceScalarField ghf("ghf", g & mesh.Cf());
Info<< "Reading transportProperties\n" << endl;
twoPhaseMixture twoPhaseProperties(U, phi);
@ -134,7 +129,11 @@
);
wordList pcorrTypes(p.boundaryField().types());
wordList pcorrTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
for (label i=0; i<p.boundaryField().size(); i++)
{

View File

@ -1,5 +1,5 @@
{
# include "continuityErrs.H"
#include "continuityErrs.H"
volScalarField pcorr
(
@ -36,5 +36,5 @@
}
}
# include "continuityErrs.H"
#include "continuityErrs.H"
}

View File

@ -92,7 +92,11 @@
incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
);
wordList pcorrTypes(p.boundaryField().types());
wordList pcorrTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
for (label i=0; i<p.boundaryField().size(); i++)
{

View File

@ -86,9 +86,6 @@ int main(int argc, char *argv[])
<< " s" << endl;
}
volScalarField gh("gh", g & mesh.C());
surfaceScalarField ghf("ghf", g & mesh.Cf());
if (mesh.changing() && correctPhi)
{
#include "correctPhi.H"

View File

@ -5,19 +5,19 @@
U = rAU*UEqn.H();
surfaceScalarField phiU("phiU", (fvc::interpolate(U) & mesh.Sf()));
if (p.needReference())
{
fvc::makeRelative(phiU, U);
adjustPhi(phiU, U, p);
fvc::makeAbsolute(phiU, U);
}
phi = phiU +
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)*mesh.magSf()
+ fvc::interpolate(rho)*(g & mesh.Sf())
)*rAUf;
if (p.needReference())
{
fvc::makeRelative(phi, U);
adjustPhi(phi, U, p);
fvc::makeAbsolute(phi, U);
}
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
fvScalarMatrix pEqn

View File

@ -1,7 +1,11 @@
{
# include "continuityErrs.H"
#include "continuityErrs.H"
wordList pcorrTypes(p.boundaryField().types());
wordList pcorrTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
for (label i=0; i<p.boundaryField().size(); i++)
{
@ -46,5 +50,5 @@
}
}
# include "continuityErrs.H"
#include "continuityErrs.H"
}

View File

@ -7,17 +7,18 @@
surfaceScalarField phiU
(
"phiU",
(fvc::interpolate(U) & mesh.Sf()) + fvc::ddtPhiCorr(rUA, rho, U, phi)
(fvc::interpolate(U) & mesh.Sf())
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
);
adjustPhi(phiU, U, p);
phi = phiU +
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)*mesh.magSf()
+ fvc::interpolate(rho)*(g & mesh.Sf())
)*rUAf;
adjustPhi(phi, U, p);
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
fvScalarMatrix pEqn

View File

@ -1,7 +1,11 @@
{
# include "continuityErrs.H"
#include "continuityErrs.H"
wordList pcorrTypes(p.boundaryField().types());
wordList pcorrTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
for (label i=0; i<p.boundaryField().size(); i++)
{

View File

@ -11,14 +11,14 @@
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
);
adjustPhi(phiU, U, p);
phi = phiU +
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)*mesh.magSf()
+ fvc::interpolate(rho)*(g & mesh.Sf())
)*rUAf;
adjustPhi(phi, U, p);
Pair<tmp<volScalarField> > vDotP = twoPhaseProperties->vDotP();
const volScalarField& vDotcP = vDotP[0]();
const volScalarField& vDotvP = vDotP[1]();

View File

@ -10,14 +10,14 @@
(fvc::interpolate(U) & mesh.Sf()) + fvc::ddtPhiCorr(rUA, rho, U, phi)
);
adjustPhi(phiU, U, p);
phi = phiU +
(
mixture.surfaceTensionForce()*mesh.magSf()
+ fvc::interpolate(rho)*(g & mesh.Sf())
)*rUAf;
adjustPhi(phi, U, p);
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
fvScalarMatrix pEqn

View File

@ -424,7 +424,7 @@ DebugSwitches
filteredLinear3 0;
filteredLinear3V 0;
fixedEnthalpy 0;
fixedFluxBuoyantPressure 0;
buoyantPressure 0;
fixedFluxBoussinesqBuoyantPressure 0;
fixedFluxPressure 0;
fixedGradient 0;

View File

@ -108,7 +108,7 @@ $(derivedFvPatchFields)/advective/advectiveFvPatchFields.C
$(derivedFvPatchFields)/directMappedFixedValue/directMappedFixedValueFvPatchFields.C
$(derivedFvPatchFields)/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
$(derivedFvPatchFields)/fan/fanFvPatchFields.C
$(derivedFvPatchFields)/fixedFluxBuoyantPressure/fixedFluxBuoyantPressureFvPatchScalarField.C
$(derivedFvPatchFields)/buoyantPressure/buoyantPressureFvPatchScalarField.C
$(derivedFvPatchFields)/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
$(derivedFvPatchFields)/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
$(derivedFvPatchFields)/fixedNormalSlip/fixedNormalSlipFvPatchFields.C

View File

@ -13,7 +13,3 @@
int nOuterCorr =
piso.lookupOrDefault<int>("nOuterCorrectors", 1);
bool ddtPhiCorr =
piso.lookupOrDefault<Switch>("ddtPhiCorr", false);

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "fixedFluxBuoyantPressureFvPatchScalarField.H"
#include "buoyantPressureFvPatchScalarField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "volFields.H"
@ -36,8 +36,8 @@ namespace Foam
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
fixedFluxBuoyantPressureFvPatchScalarField::
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField::
buoyantPressureFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
@ -48,8 +48,8 @@ fixedFluxBuoyantPressureFvPatchScalarField
{}
fixedFluxBuoyantPressureFvPatchScalarField::
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField::
buoyantPressureFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
@ -64,10 +64,10 @@ fixedFluxBuoyantPressureFvPatchScalarField
}
fixedFluxBuoyantPressureFvPatchScalarField::
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField::
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField& ptf,
const buoyantPressureFvPatchScalarField& ptf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
@ -78,10 +78,10 @@ fixedFluxBuoyantPressureFvPatchScalarField
{}
fixedFluxBuoyantPressureFvPatchScalarField::
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField::
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField& ptf
const buoyantPressureFvPatchScalarField& ptf
)
:
fixedGradientFvPatchScalarField(ptf),
@ -89,10 +89,10 @@ fixedFluxBuoyantPressureFvPatchScalarField
{}
fixedFluxBuoyantPressureFvPatchScalarField::
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField::
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField& ptf,
const buoyantPressureFvPatchScalarField& ptf,
const DimensionedField<scalar, volMesh>& iF
)
:
@ -103,7 +103,7 @@ fixedFluxBuoyantPressureFvPatchScalarField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void fixedFluxBuoyantPressureFvPatchScalarField::updateCoeffs()
void buoyantPressureFvPatchScalarField::updateCoeffs()
{
if (updated())
{
@ -134,7 +134,7 @@ void fixedFluxBuoyantPressureFvPatchScalarField::updateCoeffs()
}
void fixedFluxBuoyantPressureFvPatchScalarField::write(Ostream& os) const
void buoyantPressureFvPatchScalarField::write(Ostream& os) const
{
fixedGradientFvPatchScalarField::write(os);
os.writeKeyword("rho") << rhoName_ << token::END_STATEMENT << nl;
@ -147,7 +147,7 @@ void fixedFluxBuoyantPressureFvPatchScalarField::write(Ostream& os) const
makePatchTypeField
(
fvPatchScalarField,
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::fixedFluxBuoyantPressureFvPatchScalarField
Foam::buoyantPressureFvPatchScalarField
Description
Set the pressure gradient boundary condition appropriately for buoyant flow.
@ -32,12 +32,12 @@ Description
appropriately. Otherwise assume the variable is the static pressure.
SourceFiles
fixedFluxBuoyantPressureFvPatchScalarField.C
buoyantPressureFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef fixedFluxBuoyantPressureFvPatchScalarFields_H
#define fixedFluxBuoyantPressureFvPatchScalarFields_H
#ifndef buoyantPressureFvPatchScalarFields_H
#define buoyantPressureFvPatchScalarFields_H
#include "fvPatchFields.H"
#include "fixedGradientFvPatchFields.H"
@ -48,10 +48,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class fixedFluxBuoyantPressureFvPatch Declaration
Class buoyantPressureFvPatch Declaration
\*---------------------------------------------------------------------------*/
class fixedFluxBuoyantPressureFvPatchScalarField
class buoyantPressureFvPatchScalarField
:
public fixedGradientFvPatchScalarField
{
@ -64,20 +64,20 @@ class fixedFluxBuoyantPressureFvPatchScalarField
public:
//- Runtime type information
TypeName("fixedFluxBuoyantPressure");
TypeName("buoyantPressure");
// Constructors
//- Construct from patch and internal field
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&
);
//- Construct from patch, internal field and dictionary
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
@ -85,19 +85,19 @@ public:
);
//- Construct by mapping given
// fixedFluxBuoyantPressureFvPatchScalarField onto a new patch
fixedFluxBuoyantPressureFvPatchScalarField
// buoyantPressureFvPatchScalarField onto a new patch
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField&,
const buoyantPressureFvPatchScalarField&,
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField&
const buoyantPressureFvPatchScalarField&
);
//- Construct and return a clone
@ -105,14 +105,14 @@ public:
{
return tmp<fvPatchScalarField>
(
new fixedFluxBuoyantPressureFvPatchScalarField(*this)
new buoyantPressureFvPatchScalarField(*this)
);
}
//- Construct as copy setting internal field reference
fixedFluxBuoyantPressureFvPatchScalarField
buoyantPressureFvPatchScalarField
(
const fixedFluxBuoyantPressureFvPatchScalarField&,
const buoyantPressureFvPatchScalarField&,
const DimensionedField<scalar, volMesh>&
);
@ -124,7 +124,7 @@ public:
{
return tmp<fvPatchScalarField>
(
new fixedFluxBuoyantPressureFvPatchScalarField(*this, iF)
new buoyantPressureFvPatchScalarField(*this, iF)
);
}

View File

@ -22,21 +22,21 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}

View File

@ -22,21 +22,21 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}

View File

@ -22,28 +22,28 @@ boundaryField
{
ground
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
igloo_region0
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
twoFridgeFreezers_seal_0
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}
twoFridgeFreezers_herring_1
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
rho rhok;
value uniform 0;
}

View File

@ -22,19 +22,19 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
}

View File

@ -22,19 +22,19 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 1e5;
}
}

View File

@ -22,25 +22,25 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
box
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
}

View File

@ -22,25 +22,25 @@ boundaryField
{
floor
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
ceiling
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
fixedWalls
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
box
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value uniform 100000;
}
}

View File

@ -22,33 +22,33 @@ boundaryField
{
minX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
}

View File

@ -232,42 +232,42 @@ dictionaryReplacement
{
minX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_leftSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_heater
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_rightSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
}

View File

@ -231,7 +231,7 @@ dictionaryReplacement
{
minX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxX
@ -249,34 +249,34 @@ dictionaryReplacement
minY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_leftSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_heater
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_rightSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
}

View File

@ -255,42 +255,42 @@ dictionaryReplacement
{
minX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_leftSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_heater
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
bottomAir_to_rightSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
}

View File

@ -265,7 +265,7 @@ dictionaryReplacement
{
minX
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxX
@ -283,34 +283,34 @@ dictionaryReplacement
maxY
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
minZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
maxZ
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_leftSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_heater
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
topAir_to_rightSolid
{
type fixedFluxBuoyantPressure;
type buoyantPressure;
value 1e5;
}
}