Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
andy
2013-01-21 11:34:35 +00:00
30 changed files with 399 additions and 172 deletions

View File

@ -185,12 +185,10 @@ void Foam::smoluchowskiJumpTFvPatchScalarField::updateCoeffs()
dimensionedScalar Pr dimensionedScalar Pr
( (
dimensionedScalar::lookupOrDefault "Pr",
( dimless,
"Pr", thermophysicalProperties.subDict("mixture").subDict("transport")
thermophysicalProperties, .lookup("Pr")
1.0
)
); );
Field<scalar> C2 Field<scalar> C2

View File

@ -1,23 +0,0 @@
Info<< "Reading thermophysicalProperties\n" << endl;
// Pr defined as a separate constant to enable calculation of k, currently
// inaccessible through thermo
IOdictionary thermophysicalProperties
(
IOobject
(
"thermophysicalProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
dimensionedScalar Pr
(
"Pr",
dimless,
thermophysicalProperties.subDict("mixture").subDict("transport")
.lookup("Pr")
);

View File

@ -46,7 +46,6 @@ int main(int argc, char *argv[])
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
#include "createFields.H" #include "createFields.H"
#include "readThermophysicalProperties.H"
#include "readTimeControls.H" #include "readTimeControls.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -236,13 +235,10 @@ int main(int argc, char *argv[])
if (!inviscid) if (!inviscid)
{ {
volScalarField k("k", thermo.Cp()*muEff/Pr);
solve solve
( (
fvm::ddt(rho, e) - fvc::ddt(rho, e) fvm::ddt(rho, e) - fvc::ddt(rho, e)
- fvm::laplacian(turbulence->alphaEff(), e) - fvm::laplacian(turbulence->alphaEff(), e)
+ fvc::laplacian(turbulence->alpha(), e)
- fvc::laplacian(k, T)
); );
thermo.correct(); thermo.correct();
rhoE = rho*(e + 0.5*magSqr(U)); rhoE = rho*(e + 0.5*magSqr(U));

View File

@ -45,7 +45,6 @@ int main(int argc, char *argv[])
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
#include "createFields.H" #include "createFields.H"
#include "readThermophysicalProperties.H"
#include "readTimeControls.H" #include "readTimeControls.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -14,14 +14,22 @@
volScalarField& he1 = thermo1.he(); volScalarField& he1 = thermo1.he();
volScalarField& he2 = thermo2.he(); volScalarField& he2 = thermo2.he();
volScalarField Cpv1(thermo1.Cpv());
volScalarField Cpv2(thermo2.Cpv());
fvScalarMatrix he1Eqn fvScalarMatrix he1Eqn
( (
fvm::ddt(alpha1, he1) fvm::ddt(alpha1, he1)
+ fvm::div(alphaPhi1, he1) + fvm::div(alphaPhi1, he1)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), he1)
- fvm::laplacian(k1, he1) - fvm::laplacian(k1, he1)
== ==
heatTransferCoeff*(thermo1.he(p, thermo2.T())/thermo1.Cp())/rho1 heatTransferCoeff*(thermo2.T() - thermo1.T())/rho1
- fvm::Sp(heatTransferCoeff/thermo1.Cp()/rho1, he1) + heatTransferCoeff*he1/Cpv1/rho1
- fvm::Sp(heatTransferCoeff/Cpv1/rho1, he1)
+ alpha1*(dpdt/rho1 - (fvc::ddt(K1) + fvc::div(phi1, K1))) + alpha1*(dpdt/rho1 - (fvc::ddt(K1) + fvc::div(phi1, K1)))
); );
@ -29,10 +37,15 @@
( (
fvm::ddt(alpha2, he2) fvm::ddt(alpha2, he2)
+ fvm::div(alphaPhi2, he2) + fvm::div(alphaPhi2, he2)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), he2)
- fvm::laplacian(k2, he2) - fvm::laplacian(k2, he2)
== ==
heatTransferCoeff*(thermo2.he(p, thermo1.T())/thermo2.Cp())/rho2 heatTransferCoeff*(thermo1.T() - thermo2.T())/rho2
- fvm::Sp(heatTransferCoeff/thermo2.Cp()/rho2, he2) + heatTransferCoeff*he2/Cpv2/rho2
- fvm::Sp(heatTransferCoeff/Cpv2/rho2, he2)
+ alpha2*(dpdt/rho2 - (fvc::ddt(K2) + fvc::div(phi2, K2))) + alpha2*(dpdt/rho2 - (fvc::ddt(K2) + fvc::div(phi2, K2)))
); );

View File

@ -31,6 +31,9 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
fvm::ddt(alpha1, U1) fvm::ddt(alpha1, U1)
+ fvm::div(alphaPhi1, U1) + fvm::div(alphaPhi1, U1)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), U1)
+ Cvm*rho2*alpha1*alpha2/rho1* + Cvm*rho2*alpha1*alpha2/rho1*
( (
fvm::ddt(U1) fvm::ddt(U1)
@ -61,6 +64,9 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
fvm::ddt(alpha2, U2) fvm::ddt(alpha2, U2)
+ fvm::div(alphaPhi2, U2) + fvm::div(alphaPhi2, U2)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), U2)
+ Cvm*rho2*alpha1*alpha2/rho2* + Cvm*rho2*alpha1*alpha2/rho2*
( (
fvm::ddt(U2) fvm::ddt(U2)

View File

@ -2,8 +2,8 @@ surfaceScalarField alphaPhi1("alphaPhi" + phase1Name, phi1);
surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2); surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
{ {
word alphaScheme("div(phi,alpha)"); word alphaScheme("div(phi," + alpha1.name() + ')');
word alpharScheme("div(phir,alpha)"); word alpharScheme("div(phir," + alpha1.name() + ')');
surfaceScalarField phic("phic", phi); surfaceScalarField phic("phic", phi);
surfaceScalarField phir("phir", phi1 - phi2); surfaceScalarField phir("phir", phi1 - phi2);

View File

@ -16,6 +16,10 @@ if (turbulence)
( (
fvm::ddt(alpha2, epsilon) fvm::ddt(alpha2, epsilon)
+ fvm::div(alphaPhi2, epsilon) + fvm::div(alphaPhi2, epsilon)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), epsilon)
- fvm::laplacian - fvm::laplacian
( (
alpha1Eps*nuEff2, epsilon, alpha1Eps*nuEff2, epsilon,
@ -41,6 +45,10 @@ if (turbulence)
( (
fvm::ddt(alpha2, k) fvm::ddt(alpha2, k)
+ fvm::div(alphaPhi2, k) + fvm::div(alphaPhi2, k)
// Compressibity correction
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), k)
- fvm::laplacian - fvm::laplacian
( (
alpha1k*nuEff2, k, alpha1k*nuEff2, k,

View File

@ -1,4 +1,4 @@
EXE_INC = \ EXE_INC = -g \
-IphaseModel/lnInclude \ -IphaseModel/lnInclude \
-ImultiphaseSystem/lnInclude \ -ImultiphaseSystem/lnInclude \
-ImultiphaseFixedFluxPressure \ -ImultiphaseFixedFluxPressure \

View File

@ -32,9 +32,10 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
"div(Rc)" "div(Rc)"
) )
== ==
- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U) //- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U)
//- (alpha*phase.rho())*fluid.lift(phase) //- (alpha*phase.rho())*fluid.lift(phase)
+ (alpha/phase.rho())*fluid.Svm(phase) //+
(alpha/phase.rho())*fluid.Svm(phase)
- fvm::Sp - fvm::Sp
( (
slamDampCoeff slamDampCoeff
@ -53,7 +54,7 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
alpha*(1 + (1/phase.rho())*fluid.Cvm(phase)), alpha*(1 + (1/phase.rho())*fluid.Cvm(phase)),
UEqns[phasei] UEqns[phasei]
); );
UEqns[phasei].relax(); //UEqns[phasei].relax();
phasei++; phasei++;
} }

View File

@ -67,8 +67,29 @@
const volScalarField& alpha = phase; const volScalarField& alpha = phase;
alphafs.set(phasei, fvc::interpolate(alpha).ptr()); alphafs.set(phasei, fvc::interpolate(alpha).ptr());
rAUs.set(phasei, (1.0/UEqns[phasei].A()).ptr());
rAlphaAUfs.set(phasei, fvc::interpolate(alpha*rAUs[phasei]).ptr()); volScalarField dragCoeffi
(
IOobject
(
"dragCoeffi",
runTime.timeName(),
mesh
),
fluid.dragCoeff(phase, dragCoeffs())/phase.rho(),
zeroGradientFvPatchScalarField::typeName
);
dragCoeffi.correctBoundaryConditions();
rAUs.set(phasei, (1.0/(UEqns[phasei].A() + dragCoeffi)).ptr());
rAlphaAUfs.set
(
phasei,
(
alphafs[phasei]
/fvc::interpolate(UEqns[phasei].A() + dragCoeffi)
).ptr()
);
HbyAs[phasei] = rAUs[phasei]*UEqns[phasei].H(); HbyAs[phasei] = rAUs[phasei]*UEqns[phasei].H();
@ -115,10 +136,9 @@
} }
phiHbyAs[phasei] += phiHbyAs[phasei] +=
fvc::interpolate fvc::interpolate((*dcIter())/phase.rho())
( /fvc::interpolate(UEqns[phasei].A() + dragCoeffi)
(1.0/phase.rho())*rAUs[phasei]*(*dcIter()) *phase2Ptr->phi();
)*phase2Ptr->phi();
HbyAs[phasei] += HbyAs[phasei] +=
(1.0/phase.rho())*rAUs[phasei]*(*dcIter()) (1.0/phase.rho())*rAUs[phasei]*(*dcIter())
@ -240,7 +260,7 @@
+ rAlphaAUfs[phasei]*mSfGradp/phase.rho() + rAlphaAUfs[phasei]*mSfGradp/phase.rho()
); );
// phase.U() = fvc::reconstruct(phase.phi()); //phase.U() = fvc::reconstruct(phase.phi());
phase.U().correctBoundaryConditions(); phase.U().correctBoundaryConditions();
U += alpha*phase.U(); U += alpha*phase.U();

View File

@ -2,24 +2,16 @@
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.openfoam.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; format ascii;
root "";
case "";
instance "";
local "";
class dictionary; class dictionary;
object meshQualityDict; object meshQualityDict;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable. //- Maximum non-orthogonality allowed. Set to 180 to disable.

View File

@ -744,7 +744,7 @@ int main(int argc, char *argv[])
// Read // Read
// ~~~~ // ~~~~
triSurface surf("constant/triSurface/" + surfFileName); triSurface surf(runTime.constantPath()/"triSurface"/surfFileName);
Info<< "Statistics:" << endl; Info<< "Statistics:" << endl;
surf.writeStats(Info); surf.writeStats(Info);
@ -1338,7 +1338,7 @@ int main(int argc, char *argv[])
{ {
vtkSurfaceWriter().write vtkSurfaceWriter().write
( (
runTime.constant()/"triSurface", // outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), surf.points(),
faces, faces,
@ -1350,7 +1350,7 @@ int main(int argc, char *argv[])
vtkSurfaceWriter().write vtkSurfaceWriter().write
( (
runTime.constant()/"triSurface", // outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), surf.points(),
faces, faces,
@ -1403,7 +1403,7 @@ int main(int argc, char *argv[])
{ {
vtkSurfaceWriter().write vtkSurfaceWriter().write
( (
runTime.constant()/"triSurface", // outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), surf.points(),
faces, faces,
@ -1482,7 +1482,7 @@ int main(int argc, char *argv[])
{ {
vtkSurfaceWriter().write vtkSurfaceWriter().write
( (
runTime.constant()/"triSurface", // outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), surf.points(),
faces, faces,

View File

@ -439,9 +439,20 @@ bool finishReaction = false;
<readThermoSpecieName>{thermoSpecieName} { <readThermoSpecieName>{thermoSpecieName} {
string specieString(foamSpecieString(YYText())); string specieString(foamSpecieString(YYText()));
specieString.replaceAll(" ", "_"); // Old format
size_t strEnd = specieString.find_last_not_of('_'); size_t spacePos = specieString.find(' ');
currentSpecieName = specieString.substr(0, strEnd + 1); if (spacePos != string::npos)
{
currentSpecieName = specieString(0, spacePos);
}
else
{
currentSpecieName = specieString;
}
// New format
// specieString.replaceAll(" ", "_");
// size_t strEnd = specieString.find_last_not_of('_');
// currentSpecieName = specieString.substr(0, strEnd + 1);
BEGIN(readThermoDate); BEGIN(readThermoDate);
} }

View File

@ -20,7 +20,7 @@ runApplication datToFoam grid256.dat
CONST="constant" CONST="constant"
cat $CONST/pointsHeader $CONST/points.tmp > $CONST/polyMesh/points cat $CONST/pointsHeader $CONST/points.tmp > $CONST/polyMesh/points
runApplication collapseEdges "2e-07" 5 runApplication collapseEdges
moveTimeMeshToConstant moveTimeMeshToConstant
echo "Changing patch type to wedge type in boundary file" echo "Changing patch type to wedge type in boundary file"

View File

@ -0,0 +1,84 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 2e-7;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 5;
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
reductionFactor 0.5;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
reductionFactor $initialFaceLengthFactor;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
}
meshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 5;
}
// ************************************************************************* //

View File

@ -0,0 +1,67 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 180;
//- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 50;
//- Max skewness allowed. Set to <0 to disable.
maxInternalSkewness 10;
//- Max concaveness allowed. Is angle (in degrees) below which concavity
// is allowed. 0 is straight face, <0 would be convex face.
// Set to 180 to disable.
maxConcave 80;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to a sensible fraction of the smallest cell volume expected.
// Set to very negative number (e.g. -1E30) to disable.
minVol 1e-20;
//- Minimum quality of the tet formed by the face-centre
// and variable base point minimum decomposition triangles and
// the cell centre. This has to be a positive number for tracking
// to work. Set to very negative number (e.g. -1E30) to
// disable.
// <0 = inside out tet,
// 0 = flat tet
// 1 = regular tet
minTetQuality 1e-30;
//- Minimum face area. Set to <0 to disable.
minArea -1;
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
//- and face centre triangles normal
minTwist 0.0;
//- minimum normalised cell determinant
//- 1 = hex, <= 0 = folded or flattened illegal cell
minDeterminant 0.001;
//- minFaceWeight (0 -> 0.5)
minFaceWeight 0.02;
//- minVolRatio (0 -> 1)
minVolRatio 0.01;
//must be >0 for Fluent compatibility
minTriangleTwist -1;
// ************************************************************************* //

View File

@ -27,25 +27,20 @@ gradSchemes
divSchemes divSchemes
{ {
default none; default none;
div(phi,alpha) Gauss limitedLinear01 1; div(phi,alphaair) Gauss vanLeer;
div(phir,alpha) Gauss limitedLinear01 1; div(phir,alphaair) Gauss vanLeer;
div(alphaPhiair,Uair) Gauss limitedLinearV 1;
div(alphaPhiwater,Uwater) Gauss limitedLinearV 1; "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1;
div(phiair,Uair) Gauss limitedLinearV 1; "div\(phi.*,U.*\)" Gauss limitedLinearV 1;
div(phiwater,Uwater) Gauss limitedLinearV 1; "div\(\(alpha.*Rc\)\)" Gauss linear;
div((alphaair*Rc)) Gauss linear; "div\(phid.*,p\)" Gauss upwind;
div((alphawater*Rc)) Gauss linear;
div(alphaPhiair,hair) Gauss limitedLinear 1; "div\(alphaPhi.*,h.*\)" Gauss limitedLinear 1;
div(alphaPhiwater,hwater) Gauss limitedLinear 1; "div\(phi.*,K.*\)" Gauss limitedLinear 1;
div(alphaPhiwater,k) Gauss limitedLinear 1;
div(alphaPhiwater,epsilon) Gauss limitedLinear 1; "div\(alphaPhi.*,(k|epsilon)\)" Gauss limitedLinear 1;
div(phi,Theta) Gauss limitedLinear 1;
div(phidair,p) Gauss upwind;
div(phidwater,p) Gauss upwind;
div(phiair,Kair) Gauss limitedLinear 1;
div(phiwater,Kwater) Gauss limitedLinear 1;
} }
laplacianSchemes laplacianSchemes

View File

@ -63,23 +63,7 @@ solvers
relTol 0; relTol 0;
} }
"Theta.*" "(k|epsilon|Theta).*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
"k.*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
"epsilon.*"
{ {
solver PBiCG; solver PBiCG;
preconditioner DILU; preconditioner DILU;

View File

@ -17,7 +17,7 @@ FoamFile
application compressibleTwoPhaseEulerFoam; application compressibleTwoPhaseEulerFoam;
startFrom latestTime; startFrom startTime;
startTime 0; startTime 0;

View File

@ -17,57 +17,52 @@ FoamFile
ddtSchemes ddtSchemes
{ {
default Euler; default Euler;
} }
gradSchemes gradSchemes
{ {
default Gauss linear; default Gauss linear;
} }
divSchemes divSchemes
{ {
default none; default none;
div(phi,alpha1) Gauss vanLeer;
div(phir,alpha1) Gauss vanLeer;
"div\(alphaPhi.,U.\)" Gauss limitedLinearV 1;
"div\(phi.,U.\)" Gauss limitedLinearV 1;
"div\(\(alpha.*Rc\)\)" Gauss linear;
"div\(phid.,p\)" Gauss upwind;
"div\(alphaPhi.,h.\)" Gauss limitedLinear 1;
"div\(phi.,K.\)" Gauss limitedLinear 1;
div(alphaPhi1,U1) Gauss limitedLinearV 1;
div(alphaPhi2,U2) Gauss limitedLinearV 1;
div(phi1,U1) Gauss limitedLinearV 1;
div(phi2,U2) Gauss limitedLinearV 1;
div(alphaPhi1,h1) Gauss limitedLinear 1;
div(alphaPhi2,h2) Gauss limitedLinear 1;
div(alphaPhi2,k) Gauss limitedLinear 1; div(alphaPhi2,k) Gauss limitedLinear 1;
div(alphaPhi2,epsilon) Gauss limitedLinear 1; div(alphaPhi2,epsilon) Gauss limitedLinear 1;
div(phi,alpha) Gauss limitedLinear01 1;
div(phir,alpha) Gauss limitedLinear01 1;
div(phi,Theta) Gauss limitedLinear 1;
div((alpha1*Rc)) Gauss linear;
div((alpha2*Rc)) Gauss linear;
div(phid1,p) Gauss upwind;
div(phid2,p) Gauss upwind;
div(phi1,K1) Gauss limitedLinear 1;
div(phi2,K2) Gauss limitedLinear 1;
} }
laplacianSchemes laplacianSchemes
{ {
default Gauss linear uncorrected; default Gauss linear uncorrected;
} }
interpolationSchemes interpolationSchemes
{ {
default linear; default linear;
} }
snGradSchemes snGradSchemes
{ {
default uncorrected; default uncorrected;
} }
fluxRequired fluxRequired
{ {
default no; default no;
p ; p ;
alpha1 ;
} }

View File

@ -90,8 +90,8 @@ solvers
PIMPLE PIMPLE
{ {
nOuterCorrectors 1; nOuterCorrectors 3;
nCorrectors 2; nCorrectors 1;
nNonOrthogonalCorrectors 0; nNonOrthogonalCorrectors 0;
nAlphaCorr 1; nAlphaCorr 1;
nAlphaSubCycles 2; nAlphaSubCycles 2;

View File

@ -32,12 +32,14 @@ FoamFile
front front
{ {
type empty; type empty;
inGroups 1(empty);
nFaces 3072; nFaces 3072;
startFace 6336; startFace 6336;
} }
back back
{ {
type empty; type empty;
inGroups 1(empty);
nFaces 3072; nFaces 3072;
startFace 9408; startFace 9408;
} }

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState perfectGas;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
nMoles 1;
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 0;
}
transport
{
mu 1.84e-05;
Pr 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState perfectFluid;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
nMoles 1;
molWeight 28.9;
}
equationOfState
{
rho0 1027;
}
thermodynamics
{
Cp 4195;
Hf 0;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -17,14 +17,6 @@ FoamFile
phase1 phase1
{ {
rho0 0;
rho 0.88;
R 287;
Cp 1007;
nu 2.46e-05;
d 4e-3;
kappa 2.63e-2;
diameterModel isothermal; diameterModel isothermal;
isothermalCoeffs isothermalCoeffs
{ {
@ -35,14 +27,6 @@ phase1
phase2 phase2
{ {
rho 733;
rho0 733;
R 1e10;
Cp 4195;
nu 2.73e-6;
d 1e-4;
kappa 0.668;
diameterModel constant; diameterModel constant;
constantCoeffs constantCoeffs
{ {
@ -54,12 +38,13 @@ phase2
Cvm 0.5; Cvm 0.5;
// Lift coefficient // Lift coefficient
Cl 0; Cl 0;
// Dispersed-phase turbulence coefficient // Dispersed-phase turbulence coefficient
Ct 0.2; Ct 1;
// Minimum allowable pressure // Minimum allowable pressure
pMin 10000; pMin 10000;
// ************************************************************************* // // ************************************************************************* //

View File

@ -29,16 +29,18 @@ divSchemes
{ {
default none; default none;
div(phi,alpha1) Gauss limitedLinear01 1; div(phi,alpha1) Gauss vanLeer;
div(phir,alpha1) Gauss limitedLinear01 1; div(phir,alpha1) Gauss vanLeer;
"div\(phi.,U.\)" Gauss limitedLinearV 1;
"div\(alphaPhi.,U.\)" Gauss limitedLinearV 1; "div\(alphaPhi.,U.\)" Gauss limitedLinearV 1;
"div\(\(alpha.*Rc.\)\)" Gauss linear; "div\(phi.,U.\)" Gauss limitedLinearV 1;
"div\(alphaPhi.,(k|epsilon)\)" Gauss limitedLinear 1; "div\(\(alpha.*Rc\)\)" Gauss linear;
div(phi,Theta) Gauss limitedLinear 1;
"div\(phi.,K.\)" Gauss linear;
"div\(alphaPhi.,T.\)" Gauss limitedLinear 1;
"div\(phid.,p\)" Gauss linear; "div\(phid.,p\)" Gauss linear;
"div\(alphaPhi.,h.\)" Gauss limitedLinear 1;
"div\(phi.,K.\)" Gauss linear;
"div\(alphaPhi.,(k|epsilon)\)" Gauss limitedLinear 1;
} }
laplacianSchemes laplacianSchemes

View File

@ -36,7 +36,7 @@ solvers
relTol 0; relTol 0;
} }
U "U.*"
{ {
solver smoothSolver; solver smoothSolver;
smoother GaussSeidel; smoother GaussSeidel;
@ -45,14 +45,6 @@ solvers
relTol 0.1; relTol 0.1;
} }
UFinal
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-07;
relTol 0;
}
"alpha.*" "alpha.*"
{ {
solver PBiCG; solver PBiCG;
@ -61,7 +53,7 @@ solvers
relTol 0; relTol 0;
} }
"(k|epsilon|Theta|T).*" "(k|epsilon|Theta|h).*"
{ {
solver PBiCG; solver PBiCG;
preconditioner DILU; preconditioner DILU;
@ -76,7 +68,7 @@ PIMPLE
nCorrectors 3; nCorrectors 3;
nNonOrthogonalCorrectors 0; nNonOrthogonalCorrectors 0;
nAlphaCorr 1; nAlphaCorr 1;
correctAlpha yes; nAlphaSubCycles 2;
pRefCell 0; pRefCell 0;
pRefValue 0; pRefValue 0;
} }
@ -85,16 +77,15 @@ relaxationFactors
{ {
fields fields
{ {
p 1;
} }
equations equations
{ {
"U.*" 1; "U.*" 1;
"h.*" 1;
"alpha.*" 1; "alpha.*" 1;
"Theta.*" 1; "Theta.*" 1;
"k.*" 1; "k.*" 1;
"epsilon.*" 1; "epsilon.*" 1;
"T.*" 1;
} }
} }

View File

@ -14,8 +14,6 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
phaseChange on;
phaseChangeTwoPhaseMixture SchnerrSauer; phaseChangeTwoPhaseMixture SchnerrSauer;
pSat pSat [1 -1 -2 0 0] 2300; // saturation pressure pSat pSat [1 -1 -2 0 0] 2300; // saturation pressure

View File

@ -38,6 +38,7 @@ FoamFile
defaultFaces defaultFaces
{ {
type empty; type empty;
inGroups 1(empty);
nFaces 3750; nFaces 3750;
startFace 3850; startFace 3850;
} }