diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
index 93c35ee1e1..c773650be2 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
@@ -310,14 +310,21 @@
Info << "dispersedPhase is " << dispersedPhase << endl;
- scalar minInterfaceAlpha
+ scalar residualPhaseFraction
(
readScalar
(
- interfacialProperties.lookup("minInterfaceAlpha")
+ interfacialProperties.lookup("residualPhaseFraction")
)
);
+ dimensionedScalar residualSlip
+ (
+ "residualSlip",
+ dimVelocity,
+ interfacialProperties.lookup("residualSlip")
+ );
+
kineticTheoryModel kineticTheory
(
phase1,
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H
index 3b4d2be679..d6ccf90289 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H
@@ -36,7 +36,7 @@ volScalarField heatTransferCoeff
{
volVectorField Ur(U1 - U2);
- volScalarField magUr(mag(Ur));
+ volScalarField magUr(mag(Ur) + residualSlip);
if (dispersedPhase == "1")
{
@@ -69,12 +69,9 @@ volScalarField heatTransferCoeff
<< exit(FatalError);
}
- volScalarField alpha1Coeff
- (
- (alpha1 + minInterfaceAlpha)*(alpha2 + minInterfaceAlpha)
- );
- dragCoeff *= alpha1Coeff;
- heatTransferCoeff *= alpha1Coeff;
+ volScalarField alphaCoeff(max(alpha1*alpha2, residualPhaseFraction));
+ dragCoeff *= alphaCoeff;
+ heatTransferCoeff *= alphaCoeff;
liftForce = Cl*(alpha1*rho1 + alpha2*rho2)*(Ur ^ fvc::curl(U));
diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index 0e2de76c07..90f9d44c3d 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -173,6 +173,8 @@ $(derivedFvPatchFields)/cylindricalInletVelocity/cylindricalInletVelocityFvPatch
$(derivedFvPatchFields)/outletMappedUniformInlet/outletMappedUniformInletFvPatchFields.C
$(derivedFvPatchFields)/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
$(derivedFvPatchFields)/phaseHydrostaticPressure/phaseHydrostaticPressureFvPatchScalarField.C
+$(derivedFvPatchFields)/variableHeightFlowRate/variableHeightFlowRateFvPatchField.C
+$(derivedFvPatchFields)/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
fvsPatchFields = fields/fvsPatchFields
$(fvsPatchFields)/fvsPatchField/fvsPatchFields.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.C
new file mode 100644
index 0000000000..8c293d4a99
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.C
@@ -0,0 +1,196 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "variableHeightFlowRateFvPatchField.H"
+#include "fvPatchFieldMapper.H"
+#include "addToRunTimeSelectionTable.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::variableHeightFlowRateFvPatchScalarField
+::variableHeightFlowRateFvPatchScalarField
+(
+ const fvPatch& p,
+ const DimensionedField& iF
+)
+:
+ mixedFvPatchField(p, iF),
+ phiName_("phi"),
+ lowerBound_(0.0),
+ upperBound_(1.0)
+{
+ this->refValue() = 0.0;
+ this->refGrad() = 0.0;
+ this->valueFraction() = 0.0;
+}
+
+
+Foam::variableHeightFlowRateFvPatchScalarField
+::variableHeightFlowRateFvPatchScalarField
+(
+ const variableHeightFlowRateFvPatchScalarField& ptf,
+ const fvPatch& p,
+ const DimensionedField& iF,
+ const fvPatchFieldMapper& mapper
+)
+:
+ mixedFvPatchScalarField(ptf, p, iF, mapper),
+ phiName_(ptf.phiName_),
+ lowerBound_(ptf.lowerBound_),
+ upperBound_(ptf.upperBound_)
+{}
+
+
+Foam::variableHeightFlowRateFvPatchScalarField
+::variableHeightFlowRateFvPatchScalarField
+(
+ const fvPatch& p,
+ const DimensionedField& iF,
+ const dictionary& dict
+)
+:
+ mixedFvPatchScalarField(p, iF),
+ phiName_(dict.lookupOrDefault("phi", "phi")),
+ lowerBound_(readScalar(dict.lookup("lowerBound"))),
+ upperBound_(readScalar(dict.lookup("upperBound")))
+{
+ this->refValue() = 0.0;
+
+ if (dict.found("value"))
+ {
+ fvPatchScalarField::operator=
+ (
+ scalarField("value", dict, p.size())
+ );
+ }
+ else
+ {
+ fvPatchScalarField::operator=(this->patchInternalField());
+ }
+
+ this->refGrad() = 0.0;
+ this->valueFraction() = 0.0;
+}
+
+
+Foam::variableHeightFlowRateFvPatchScalarField
+ ::variableHeightFlowRateFvPatchScalarField
+(
+ const variableHeightFlowRateFvPatchScalarField& ptf
+)
+:
+ mixedFvPatchScalarField(ptf),
+ phiName_(ptf.phiName_),
+ lowerBound_(ptf.lowerBound_),
+ upperBound_(ptf.upperBound_)
+{}
+
+
+Foam::variableHeightFlowRateFvPatchScalarField
+ ::variableHeightFlowRateFvPatchScalarField
+(
+ const variableHeightFlowRateFvPatchScalarField& ptf,
+ const DimensionedField& iF
+)
+:
+ mixedFvPatchScalarField(ptf, iF),
+ phiName_(ptf.phiName_),
+ lowerBound_(ptf.lowerBound_),
+ upperBound_(ptf.upperBound_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+void Foam::variableHeightFlowRateFvPatchScalarField::updateCoeffs()
+{
+ if (this->updated())
+ {
+ return;
+ }
+
+ const fvsPatchField& phip =
+ patch().lookupPatchField(phiName_);
+
+ scalarField alphap = this->patchInternalField();
+
+
+ forAll(phip, i)
+ {
+ if (phip[i] < -SMALL)
+ {
+ if (alphap[i] < lowerBound_)
+ {
+ this->refValue()[i] = 0.0;
+ }
+ else if (alphap[i] > upperBound_)
+ {
+ this->refValue()[i] = 1.0;
+ }
+ else
+ {
+ this->refValue()[i] = alphap[i];
+ }
+
+ this->valueFraction()[i] = 1.0;
+ }
+ else
+ {
+ this->refValue()[i] = 0.0;
+ this->valueFraction()[i] = 0.0;
+ }
+ }
+
+ mixedFvPatchScalarField::updateCoeffs();
+}
+
+
+void Foam::variableHeightFlowRateFvPatchScalarField::write(Ostream& os) const
+{
+ fvPatchScalarField::write(os);
+ if (phiName_ != "phi")
+ {
+ os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
+ }
+ os.writeKeyword("lowerBound") << lowerBound_ << token::END_STATEMENT << nl;
+ os.writeKeyword("upperBound") << upperBound_ << token::END_STATEMENT << nl;
+ this->writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ makePatchTypeField
+ (
+ fvPatchScalarField,
+ variableHeightFlowRateFvPatchScalarField
+ );
+}
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H
new file mode 100644
index 0000000000..51e8c87899
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H
@@ -0,0 +1,174 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::variableHeightFlowRateFvPatchScalarField
+
+Description
+ This boundary condition uses zeroGradient within a specified range of
+ values for phase fraction alpha. The range is defined within the
+ boundary condition by the lowerBound and upperBound.
+
+ alpha > upperBound: fixedValue with uniform value of upperBound
+ lowerBound <= alpha <= upperBound: zeroGradient
+ alpha < lowerBound: fixedValue with uniform value of lowerBound
+
+ Example:
+ \verbatim
+ inlet
+ {
+ type clippedZeroGradient;
+ lowerBound 0.0;
+ upperBound 0.9;
+ value uniform 0;
+ }
+ \verbatim
+
+SourceFiles
+ variableHeightFlowRateFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef variableHeightFlowRateFvPatchScalarField_H
+#define variableHeightFlowRateFvPatchScalarField_H
+
+#include "mixedFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class variableHeightFlowRateFvPatchScalar Declaration
+\*---------------------------------------------------------------------------*/
+
+class variableHeightFlowRateFvPatchScalarField
+:
+ public mixedFvPatchScalarField
+{
+
+protected:
+
+ // Protected data
+
+ //- Name of flux field
+ word phiName_;
+
+ //- Lower bound for alpha1
+ scalar lowerBound_;
+
+ //- Upper bound for alpha1
+ scalar upperBound_;
+
+public:
+
+ //- Runtime scalar information
+ TypeName("variableHeightFlowRate");
+
+
+ // Constructors
+
+ //- Construct from patch and internal field
+ variableHeightFlowRateFvPatchScalarField
+ (
+ const fvPatch&,
+ const DimensionedField&
+ );
+
+ //- Construct from patch, internal field and dictionary
+ variableHeightFlowRateFvPatchScalarField
+ (
+ const fvPatch&,
+ const DimensionedField&,
+ const dictionary&
+ );
+
+ //- Construct by mapping given
+ // variableHeightFlowRateFvPatchScalarField onto a new patch
+ variableHeightFlowRateFvPatchScalarField
+ (
+ const variableHeightFlowRateFvPatchScalarField&,
+ const fvPatch&,
+ const DimensionedField&,
+ const fvPatchFieldMapper&
+ );
+
+ //- Construct as copy
+ variableHeightFlowRateFvPatchScalarField
+ (
+ const variableHeightFlowRateFvPatchScalarField&
+ );
+
+ //- Construct and return a clone
+ virtual tmp > clone() const
+ {
+ return tmp >
+ (
+ new variableHeightFlowRateFvPatchScalarField(*this)
+ );
+ }
+
+ //- Construct as copy setting internal field reference
+ variableHeightFlowRateFvPatchScalarField
+ (
+ const variableHeightFlowRateFvPatchScalarField&,
+ const DimensionedField&
+ );
+
+ //- Construct and return a clone setting internal field reference
+ virtual tmp > clone
+ (
+ const DimensionedField& iF
+ ) const
+ {
+ return tmp >
+ (
+ new variableHeightFlowRateFvPatchScalarField(*this, iF)
+ );
+ }
+
+
+ // Member functions
+
+ //- Update the coefficients associated with the patch field
+ virtual void updateCoeffs();
+
+ //- Write
+ virtual void write(Ostream&) const;
+
+
+ // Member operators
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
new file mode 100644
index 0000000000..2e289ad6c3
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
@@ -0,0 +1,147 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2012 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "variableHeightFlowRateInletVelocityFvPatchVectorField.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::variableHeightFlowRateInletVelocityFvPatchVectorField
+(
+ const fvPatch& p,
+ const DimensionedField& iF
+)
+:
+ fixedValueFvPatchField(p, iF),
+ flowRate_(0)
+{}
+
+
+Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::variableHeightFlowRateInletVelocityFvPatchVectorField
+(
+ const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf,
+ const fvPatch& p,
+ const DimensionedField& iF,
+ const fvPatchFieldMapper& mapper
+)
+:
+ fixedValueFvPatchField(ptf, p, iF, mapper),
+ flowRate_(ptf.flowRate_)
+{}
+
+
+Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::variableHeightFlowRateInletVelocityFvPatchVectorField
+(
+ const fvPatch& p,
+ const DimensionedField& iF,
+ const dictionary& dict
+)
+:
+ fixedValueFvPatchField(p, iF, dict),
+ flowRate_(readScalar(dict.lookup("flowRate")))
+{}
+
+
+Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::variableHeightFlowRateInletVelocityFvPatchVectorField
+(
+ const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf
+)
+:
+ fixedValueFvPatchField(ptf),
+ flowRate_(ptf.flowRate_)
+{}
+
+
+Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::variableHeightFlowRateInletVelocityFvPatchVectorField
+(
+ const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf,
+ const DimensionedField& iF
+)
+:
+ fixedValueFvPatchField(ptf, iF),
+ flowRate_(ptf.flowRate_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::updateCoeffs()
+{
+ if (updated())
+ {
+ return;
+ }
+
+ scalarField alphap =
+ patch().lookupPatchField("alpha1");
+
+ alphap = max(alphap, 0.0);
+ alphap = min(alphap, 1.0);
+
+ // a simpler way of doing this would be nice
+ scalar avgU = -flowRate_/gSum(patch().magSf()*alphap);
+
+ vectorField n = patch().nf();
+
+ operator==(n*avgU*alphap);
+
+ fixedValueFvPatchField::updateCoeffs();
+}
+
+
+void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+::write(Ostream& os) const
+{
+ fvPatchField::write(os);
+
+ os.writeKeyword("flowRate") << flowRate_
+ << token::END_STATEMENT << nl;
+ writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ makePatchTypeField
+ (
+ fvPatchVectorField,
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ );
+}
+
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H
new file mode 100644
index 0000000000..d94924b171
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H
@@ -0,0 +1,189 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2012 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
+
+Description
+ Describes a volumetric/mass flow normal vector boundary condition by its
+ magnitude as an integral over its area.
+
+ The basis of the patch (volumetric or mass) is determined by the
+ dimensions of the flux, phi.
+ The current density is used to correct the velocity when applying the
+ mass basis.
+
+ The flow rate is made proportional to the phase fraction alpha at each face
+ of the patch and alpha is ensured to be bound between 0 and 1.
+
+ Example of the boundary condition specification:
+ \verbatim
+ inlet
+ {
+ type variableHeightFlowRateInletVelocity;
+ flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s]
+ value uniform (0 0 0); // placeholder
+ }
+ \endverbatim
+
+Note
+ - The value is positive inwards
+ - May not work correctly for transonic inlets
+ - Strange behaviour with potentialFoam since the U equation is not solved
+
+SourceFiles
+ variableHeightFlowRateInletVelocityFvPatchVectorField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef variableHeightFlowRateInletVelocityFvPatchVectorField_H
+#define variableHeightFlowRateInletVelocityFvPatchVectorField_H
+
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+/*---------------------------------------------------------------------------*\
+ Class variableHeightFlowRateInletVelocityFvPatch Declaration
+\*---------------------------------------------------------------------------*/
+
+class variableHeightFlowRateInletVelocityFvPatchVectorField
+:
+ public fixedValueFvPatchVectorField
+{
+ // Private data
+
+ //- Inlet integral flow rate
+ scalar flowRate_;
+
+public:
+
+ //- Runtime type information
+ TypeName("variableHeightFlowRateInletVelocity");
+
+
+ // Constructors
+
+ //- Construct from patch and internal field
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ const fvPatch&,
+ const DimensionedField&
+ );
+
+ //- Construct from patch, internal field and dictionary
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ const fvPatch&,
+ const DimensionedField&,
+ const dictionary&
+ );
+
+ //- Construct by mapping given
+ // variableHeightFlowRateInletVelocityFvPatchVectorField
+ // onto a new patch
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ const variableHeightFlowRateInletVelocityFvPatchVectorField&,
+ const fvPatch&,
+ const DimensionedField&,
+ const fvPatchFieldMapper&
+ );
+
+ //- Construct as copy
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ const variableHeightFlowRateInletVelocityFvPatchVectorField&
+ );
+
+ //- Construct and return a clone
+ virtual tmp clone() const
+ {
+ return tmp
+ (
+ new variableHeightFlowRateInletVelocityFvPatchVectorField(*this)
+ );
+ }
+
+ //- Construct as copy setting internal field reference
+ variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ const variableHeightFlowRateInletVelocityFvPatchVectorField&,
+ const DimensionedField&
+ );
+
+ //- Construct and return a clone setting internal field reference
+ virtual tmp clone
+ (
+ const DimensionedField& iF
+ ) const
+ {
+ return tmp
+ (
+ new variableHeightFlowRateInletVelocityFvPatchVectorField
+ (
+ *this,
+ iF
+ )
+ );
+ }
+
+
+ // Member functions
+
+ // Access
+
+ //- Return the flux
+ scalar flowRate() const
+ {
+ return flowRate_;
+ }
+
+ //- Return reference to the flux to allow adjustment
+ scalar& flowRate()
+ {
+ return flowRate_;
+ }
+
+
+ //- Update the coefficients associated with the patch field
+ virtual void updateCoeffs();
+
+ //- Write
+ virtual void write(Ostream&) const;
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties
index c48ea4b91f..03a3a667a3 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties
@@ -23,6 +23,7 @@ heatTransferModel2 RanzMarshall;
dispersedPhase both;
-minInterfaceAlpha 1e-2;
+residualPhaseFraction 1e-3;
+residualSlip 1e-2;
// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties
index a8f0a288a0..63efa66a33 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties
@@ -23,6 +23,7 @@ heatTransferModel2 RanzMarshall;
dispersedPhase "1";
-minInterfaceAlpha 1e-2;
+residualPhaseFraction 1e-3;
+residualSlip 1e-2;
// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties
index 41159fe9de..06b13a7b3c 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties
@@ -24,7 +24,7 @@ heatTransferModel2 RanzMarshall;
dispersedPhase both;
dragPhase blended;
-residualSlip 1e-2;
-minInterfaceAlpha 1e-3;
+residualPhaseFraction 1e-3;
+residualSlip 1e-2;
// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/Allclean b/tutorials/multiphase/interFoam/ras/Allclean
index fdd2e7c83e..bd5bed3856 100755
--- a/tutorials/multiphase/interFoam/ras/Allclean
+++ b/tutorials/multiphase/interFoam/ras/Allclean
@@ -4,7 +4,7 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
-keepCases="damBreak damBreakPorousBaffle"
+keepCases="damBreak damBreakPorousBaffle weirOverflow"
loseCases="damBreakFine"
for case in $keepCases
diff --git a/tutorials/multiphase/interFoam/ras/Allrun b/tutorials/multiphase/interFoam/ras/Allrun
index c34b360834..85cfa0fbfb 100755
--- a/tutorials/multiphase/interFoam/ras/Allrun
+++ b/tutorials/multiphase/interFoam/ras/Allrun
@@ -49,4 +49,7 @@ cloneCase damBreak damBreakFine
# Do damBreakPorousBaffle
(cd damBreakPorousBaffle && foamRunTutorials)
+# Do weirOverflow
+(cd weirOverflow && foamRunTutorials)
+
# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/U b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/U
new file mode 100644
index 0000000000..92b06fe0a6
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/U
@@ -0,0 +1,56 @@
+/*--------------------------------*- 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 volVectorField;
+ object U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "include/initialConditions"
+
+dimensions [0 1 -1 0 0 0 0];
+
+internalField uniform (0 0 0);
+
+boundaryField
+{
+ inlet
+ {
+ type variableHeightFlowRateInletVelocity;
+ flowRate $inletFlowRate;
+ value uniform (0 0 0);
+ }
+
+ outlet
+ {
+ type zeroGradient;
+ }
+
+ lowerWall
+ {
+ type fixedValue;
+ value uniform (0 0 0);
+ }
+
+ atmosphere
+ {
+ type pressureInletOutletVelocity;
+ phi phi;
+ value uniform (0 0 0);
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/alpha1.org b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/alpha1.org
new file mode 100644
index 0000000000..deeaf2f3df
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/alpha1.org
@@ -0,0 +1,56 @@
+/*--------------------------------*- 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 volScalarField;
+ object alpha1;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "include/initialConditions"
+
+dimensions [0 0 0 0 0 0 0];
+
+internalField uniform 0;
+
+boundaryField
+{
+ inlet
+ {
+ type variableHeightFlowRate;
+ lowerBound 0.0;
+ upperBound 0.9;
+ value uniform 0;
+ }
+
+ outlet
+ {
+ type zeroGradient;
+ }
+
+ lowerWall
+ {
+ type zeroGradient;
+ }
+
+ atmosphere
+ {
+ type inletOutlet;
+ inletValue uniform 0;
+ value uniform 0;
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/epsilon b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/epsilon
new file mode 100644
index 0000000000..7d98d9ac02
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/epsilon
@@ -0,0 +1,59 @@
+/*--------------------------------*- 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 volScalarField;
+ location "0";
+ object epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "include/initialConditions"
+
+dimensions [0 2 -3 0 0 0 0];
+
+internalField uniform $turbulentEpsilon;
+
+boundaryField
+{
+ inlet
+ {
+ type fixedValue;
+ value $internalField;
+ }
+
+ outlet
+ {
+ type inletOutlet;
+ inletValue $internalField;
+ value $internalField;
+ }
+
+ lowerWall
+ {
+ type epsilonWallFunction;
+ value $internalField;
+ }
+
+ atmosphere
+ {
+ type inletOutlet;
+ inletValue $internalField;
+ value $internalField;
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/include/initialConditions b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/include/initialConditions
new file mode 100644
index 0000000000..1d05333331
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/include/initialConditions
@@ -0,0 +1,15 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| ========= | |
+| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
+| \\ / O peration | Version: dev |
+| \\ / A nd | Web: www.OpenFOAM.org |
+| \\/ M anipulation | |
+\*---------------------------------------------------------------------------*/
+
+inletFlowRate 75;
+pressure 0;
+turbulentKE 4.14e-03;
+turbulentEpsilon 4.39e-05;
+#inputMode merge
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/k b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/k
new file mode 100644
index 0000000000..18dafe0a9a
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/k
@@ -0,0 +1,59 @@
+/*--------------------------------*- 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 volScalarField;
+ location "0";
+ object k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "include/initialConditions"
+
+dimensions [0 2 -2 0 0 0 0];
+
+internalField uniform $turbulentKE;
+
+boundaryField
+{
+ inlet
+ {
+ type fixedValue;
+ value $internalField;
+ }
+
+ outlet
+ {
+ type inletOutlet;
+ inletValue $internalField;
+ value $internalField;
+ }
+
+ lowerWall
+ {
+ type kqRWallFunction;
+ value $internalField;
+ }
+
+ atmosphere
+ {
+ type inletOutlet;
+ inletValue $internalField;
+ value $internalField;
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/nut b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/nut
new file mode 100644
index 0000000000..2d6b6f0067
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/nut
@@ -0,0 +1,52 @@
+/*--------------------------------*- 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 volScalarField;
+ location "0";
+ object nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions [0 2 -1 0 0 0 0];
+
+internalField uniform 0;
+
+boundaryField
+{
+ inlet
+ {
+ type calculated;
+ value uniform 0;
+ }
+ outlet
+ {
+ type calculated;
+ value uniform 0;
+ }
+ lowerWall
+ {
+ type nutkWallFunction;
+ value uniform 0;
+ }
+ atmosphere
+ {
+ type calculated;
+ value uniform 0;
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/p_rgh b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/p_rgh
new file mode 100644
index 0000000000..026164723a
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/0.org/p_rgh
@@ -0,0 +1,58 @@
+/*--------------------------------*- 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 volScalarField;
+ object p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "include/initialConditions"
+
+dimensions [1 -1 -2 0 0 0 0];
+
+internalField uniform $pressure;
+
+boundaryField
+{
+ inlet
+ {
+ type zeroGradient;
+ }
+
+ outlet
+ {
+ type zeroGradient;
+ }
+
+ lowerWall
+ {
+ type zeroGradient;
+ }
+
+ atmosphere
+ {
+ type totalPressure;
+ p0 uniform 0;
+ U U;
+ phi phi;
+ rho none;
+ psi none;
+ gamma 1;
+ value uniform $pressure;
+ }
+
+ defaultFaces
+ {
+ type empty;
+ }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/Allclean b/tutorials/multiphase/interFoam/ras/weirOverflow/Allclean
new file mode 100755
index 0000000000..2c5a008802
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+rm -rf 0 > /dev/null 2>&1
+
+cleanCase
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/Allrun b/tutorials/multiphase/interFoam/ras/weirOverflow/Allrun
new file mode 100755
index 0000000000..da58c047f1
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/Allrun
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+cp -r 0.org 0 > /dev/null 2>&1
+
+runApplication blockMesh
+
+cp 0/alpha1.org 0/alpha1
+
+runApplication setFields
+
+runApplication `getApplication`
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/RASProperties b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/RASProperties
new file mode 100644
index 0000000000..a4937b503a
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/RASProperties
@@ -0,0 +1,25 @@
+/*--------------------------------*- 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 RASProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel kEpsilon;
+
+turbulence on;
+
+printCoeffs on;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/g b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/g
new file mode 100644
index 0000000000..e0ac2653b5
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- 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 uniformDimensionedVectorField;
+ location "constant";
+ object g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions [0 1 -2 0 0 0 0];
+value ( 0 -9.81 0 );
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000..cc77285f11
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/blockMeshDict
@@ -0,0 +1,93 @@
+/*--------------------------------*- 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 blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+ (-18 0 -0.5)
+ ( 0 0 -0.5)
+ ( 30 0 -0.5)
+ ( 90 0 -0.5)
+ (-18 30 -0.5)
+ ( 0 30 -0.5)
+ ( 15 30 -0.5)
+ ( 90 30 -0.5)
+ (-18 54 -0.5)
+ ( 0 54 -0.5)
+ ( 15 54 -0.5)
+ ( 90 54 -0.5)
+
+ (-18 0 0.5)
+ ( 0 0 0.5)
+ ( 30 0 0.5)
+ ( 90 0 0.5)
+ (-18 30 0.5)
+ ( 0 30 0.5)
+ ( 15 30 0.5)
+ ( 90 30 0.5)
+ (-18 54 0.5)
+ ( 0 54 0.5)
+ ( 15 54 0.5)
+ ( 90 54 0.5)
+);
+
+blocks
+(
+ hex (0 1 5 4 12 13 17 16) (20 20 1) simpleGrading (1 0.5 1)
+ hex (2 3 7 6 14 15 19 18) (60 40 1) simpleGrading (1 2 1)
+ hex (4 5 9 8 16 17 21 20) (20 24 1) simpleGrading (1 1 1)
+ hex (5 6 10 9 17 18 22 21) (15 24 1) simpleGrading (1 1 1)
+ hex (6 7 11 10 18 19 23 22) (60 24 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+patches
+(
+ patch inlet
+ (
+ (0 12 16 4)
+ (4 16 20 8)
+ )
+ patch outlet
+ (
+ (7 19 15 3)
+ (11 23 19 7)
+ )
+ wall lowerWall
+ (
+ (0 1 13 12)
+ (1 5 17 13)
+ (5 6 18 17)
+ (2 14 18 6)
+ (2 3 15 14)
+ )
+ patch atmosphere
+ (
+ (8 20 21 9)
+ (9 21 22 10)
+ (10 22 23 11)
+ )
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/boundary
new file mode 100644
index 0000000000..e7fe171353
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/polyMesh/boundary
@@ -0,0 +1,52 @@
+/*--------------------------------*- 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 polyBoundaryMesh;
+ location "constant/polyMesh";
+ object boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+5
+(
+ inlet
+ {
+ type patch;
+ nFaces 44;
+ startFace 9981;
+ }
+ outlet
+ {
+ type patch;
+ nFaces 64;
+ startFace 10025;
+ }
+ lowerWall
+ {
+ type wall;
+ nFaces 155;
+ startFace 10089;
+ }
+ atmosphere
+ {
+ type patch;
+ nFaces 95;
+ startFace 10244;
+ }
+ defaultFaces
+ {
+ type empty;
+ nFaces 10160;
+ startFace 10339;
+ }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/transportProperties b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/transportProperties
new file mode 100644
index 0000000000..ef3e8c7b4b
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/transportProperties
@@ -0,0 +1,72 @@
+/*--------------------------------*- 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 transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+twoPhase
+{
+ transportModel twoPhase;
+ phase1 phase1;
+ phase2 phase2;
+}
+
+phase1
+{
+ transportModel Newtonian;
+ nu nu [ 0 2 -1 0 0 0 0 ] 1e-06;
+ rho rho [ 1 -3 0 0 0 0 0 ] 1000;
+ CrossPowerLawCoeffs
+ {
+ nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
+ nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
+ m m [ 0 0 1 0 0 0 0 ] 1;
+ n n [ 0 0 0 0 0 0 0 ] 0;
+ }
+
+ BirdCarreauCoeffs
+ {
+ nu0 nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
+ nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
+ k k [ 0 0 1 0 0 0 0 ] 99.6;
+ n n [ 0 0 0 0 0 0 0 ] 0.1003;
+ }
+}
+
+phase2
+{
+ transportModel Newtonian;
+ nu nu [ 0 2 -1 0 0 0 0 ] 1.48e-05;
+ rho rho [ 1 -3 0 0 0 0 0 ] 1;
+ CrossPowerLawCoeffs
+ {
+ nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
+ nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
+ m m [ 0 0 1 0 0 0 0 ] 1;
+ n n [ 0 0 0 0 0 0 0 ] 0;
+ }
+
+ BirdCarreauCoeffs
+ {
+ nu0 nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
+ nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
+ k k [ 0 0 1 0 0 0 0 ] 99.6;
+ n n [ 0 0 0 0 0 0 0 ] 0.1003;
+ }
+}
+
+sigma sigma [ 1 0 -2 0 0 0 0 ] 0.07;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/turbulenceProperties b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/turbulenceProperties
new file mode 100644
index 0000000000..3721a46a2e
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- 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 turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType RASModel;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/controlDict b/tutorials/multiphase/interFoam/ras/weirOverflow/system/controlDict
new file mode 100644
index 0000000000..85c6938c48
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/system/controlDict
@@ -0,0 +1,55 @@
+/*--------------------------------*- 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 "system";
+ object controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application interFoam;
+
+startFrom latestTime;
+
+startTime 0;
+
+stopAt endTime;
+
+endTime 60;
+
+deltaT 0.001;
+
+writeControl adjustableRunTime;
+
+writeInterval 2;
+
+purgeWrite 0;
+
+writeFormat ascii;
+
+writePrecision 6;
+
+writeCompression uncompressed;
+
+timeFormat general;
+
+timePrecision 6;
+
+runTimeModifiable yes;
+
+adjustTimeStep on;
+
+maxCo 0.2;
+maxAlphaCo 0.2;
+
+maxDeltaT 1;
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSchemes b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSchemes
new file mode 100644
index 0000000000..28b3d7d20a
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSchemes
@@ -0,0 +1,65 @@
+/*--------------------------------*- 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 "system";
+ object fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+ default Euler;
+}
+
+gradSchemes
+{
+ default Gauss linear;
+}
+
+divSchemes
+{
+ div(rho*phi,U) Gauss linear;
+ div(phi,alpha) Gauss vanLeer;
+ div(phirb,alpha) Gauss interfaceCompression;
+ div(phi,k) Gauss upwind;
+ div(phi,epsilon) Gauss upwind;
+ div(phi,R) Gauss upwind;
+ div(R) Gauss linear;
+ div(phi,nuTilda) Gauss upwind;
+ div((nuEff*dev(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+ default Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+ default linear;
+}
+
+snGradSchemes
+{
+ default corrected;
+}
+
+fluxRequired
+{
+ default no;
+ p_rgh;
+ pcorr;
+ alpha;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
new file mode 100644
index 0000000000..b8d411303f
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
@@ -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 fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+ pcorr
+ {
+ solver PCG;
+ preconditioner DIC;
+ tolerance 1e-10;
+ relTol 0;
+ }
+
+ p_rgh
+ {
+ solver PCG;
+ preconditioner DIC;
+ tolerance 1e-07;
+ relTol 0.05;
+ }
+
+ p_rghFinal
+ {
+ $p_rgh;
+ relTol 0;
+ }
+
+ "(U|k|epsilon)"
+ {
+ solver PBiCG;
+ preconditioner DILU;
+ tolerance 1e-8;
+ relTol 0.1;
+ }
+
+ "(U|k|epsilon)Final"
+ {
+ $U;
+ relTol 0;
+ }
+}
+
+PIMPLE
+{
+ momentumPredictor no;
+ nCorrectors 3;
+ nNonOrthogonalCorrectors 0;
+ nAlphaCorr 1;
+ nAlphaSubCycles 2;
+ cAlpha 1;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/setFieldsDict b/tutorials/multiphase/interFoam/ras/weirOverflow/system/setFieldsDict
new file mode 100644
index 0000000000..26d6b7f2a6
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/system/setFieldsDict
@@ -0,0 +1,35 @@
+/*--------------------------------*- 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 setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+ volScalarFieldValue alpha1 0
+);
+
+regions
+(
+ boxToCell
+ {
+ box (-100 0 -100) (0 20 100);
+
+ fieldValues
+ (
+ volScalarFieldValue alpha1 1
+ );
+ }
+);
+
+// ************************************************************************* //