diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H index 93c35ee1e1b3dba3983cf66d67843f3791103764..c773650be287ff98c19d6754a11702b6066742ec 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 3b4d2be679d8fc11be453eff2ec45108d6428caa..d6ccf90289ad6891248e665609408a68d4e7c766 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/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C index 1d65b22fd6680251f87acb27ae70ddedc9658fb8..acaed52ac95f85ab14ad6f08ebbb22bde9f93862 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -126,8 +126,32 @@ dimensioned<Type>::dimensioned : name_(name), dimensions_(dimSet), - value_(pTraits<Type>(is)) -{} + value_(pTraits<Type>::zero) +{ + Info<< "dimensioned<Type>::dimensioned" << endl; + + token nextToken(is); + is.putBack(nextToken); + + if (nextToken == token::BEGIN_SQR) + { + dimensionSet dims(is); + + if (dims != dimensions_) + { + FatalErrorIn + ( + "dimensioned<Type>::dimensioned" + "(const word&, const dimensionSet&, Istream&)" + ) << "The dimensions " << dims + << " provided do not match the required dimensions " + << dimensions_ + << abort(FatalError); + } + } + + is >> value_; +} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index a50e855520a2b9b8b4293bcf3ccd59c4d16243a6..c7e7453b1f5ad23fb696f3bf8dc1d2deaf3ff7df 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 0000000000000000000000000000000000000000..8c293d4a993d35a387a899d796a19911acaa8587 --- /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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "variableHeightFlowRateFvPatchField.H" +#include "fvPatchFieldMapper.H" +#include "addToRunTimeSelectionTable.H" +#include "volFields.H" +#include "surfaceFields.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::variableHeightFlowRateFvPatchScalarField +::variableHeightFlowRateFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF +) +: + mixedFvPatchField<scalar>(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<scalar, volMesh>& 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<scalar, volMesh>& iF, + const dictionary& dict +) +: + mixedFvPatchScalarField(p, iF), + phiName_(dict.lookupOrDefault<word>("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<scalar, volMesh>& 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<scalar>& phip = + patch().lookupPatchField<surfaceScalarField, scalar>(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 0000000000000000000000000000000000000000..51e8c878990995df0b653b7ef27e012fc4983bc3 --- /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 <http://www.gnu.org/licenses/>. + +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<scalar, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + variableHeightFlowRateFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given + // variableHeightFlowRateFvPatchScalarField onto a new patch + variableHeightFlowRateFvPatchScalarField + ( + const variableHeightFlowRateFvPatchScalarField&, + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct as copy + variableHeightFlowRateFvPatchScalarField + ( + const variableHeightFlowRateFvPatchScalarField& + ); + + //- Construct and return a clone + virtual tmp<fvPatchField<scalar> > clone() const + { + return tmp<fvPatchField<scalar> > + ( + new variableHeightFlowRateFvPatchScalarField(*this) + ); + } + + //- Construct as copy setting internal field reference + variableHeightFlowRateFvPatchScalarField + ( + const variableHeightFlowRateFvPatchScalarField&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct and return a clone setting internal field reference + virtual tmp<fvPatchField<scalar> > clone + ( + const DimensionedField<scalar, volMesh>& iF + ) const + { + return tmp<fvPatchField<scalar> > + ( + 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 0000000000000000000000000000000000000000..98d98f07bab1b46831c5e9ec2b3e6832bacb2c8f --- /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 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 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<vector, volMesh>& iF +) +: + fixedValueFvPatchField<vector>(p, iF), + flowRate_(0) +{} + + +Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::variableHeightFlowRateInletVelocityFvPatchVectorField +( + const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf, + const fvPatch& p, + const DimensionedField<vector, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + fixedValueFvPatchField<vector>(ptf, p, iF, mapper), + flowRate_(ptf.flowRate_) +{} + + +Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::variableHeightFlowRateInletVelocityFvPatchVectorField +( + const fvPatch& p, + const DimensionedField<vector, volMesh>& iF, + const dictionary& dict +) +: + fixedValueFvPatchField<vector>(p, iF, dict), + flowRate_(readScalar(dict.lookup("flowRate"))) +{} + + +Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::variableHeightFlowRateInletVelocityFvPatchVectorField +( + const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf +) +: + fixedValueFvPatchField<vector>(ptf), + flowRate_(ptf.flowRate_) +{} + + +Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::variableHeightFlowRateInletVelocityFvPatchVectorField +( + const variableHeightFlowRateInletVelocityFvPatchVectorField& ptf, + const DimensionedField<vector, volMesh>& iF +) +: + fixedValueFvPatchField<vector>(ptf, iF), + flowRate_(ptf.flowRate_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::updateCoeffs() +{ + if (updated()) + { + return; + } + + scalarField alphap = + patch().lookupPatchField<volScalarField, scalar>("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<vector>::updateCoeffs(); +} + + +void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField +::write(Ostream& os) const +{ + fvPatchField<vector>::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 0000000000000000000000000000000000000000..d1bc1ac62f74b43f7fd245d6d5cc38b7483ef651 --- /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 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 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<vector, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + variableHeightFlowRateInletVelocityFvPatchVectorField + ( + const fvPatch&, + const DimensionedField<vector, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given + // variableHeightFlowRateInletVelocityFvPatchVectorField + // onto a new patch + variableHeightFlowRateInletVelocityFvPatchVectorField + ( + const variableHeightFlowRateInletVelocityFvPatchVectorField&, + const fvPatch&, + const DimensionedField<vector, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct as copy + variableHeightFlowRateInletVelocityFvPatchVectorField + ( + const variableHeightFlowRateInletVelocityFvPatchVectorField& + ); + + //- Construct and return a clone + virtual tmp<fvPatchVectorField> clone() const + { + return tmp<fvPatchVectorField> + ( + new variableHeightFlowRateInletVelocityFvPatchVectorField(*this) + ); + } + + //- Construct as copy setting internal field reference + variableHeightFlowRateInletVelocityFvPatchVectorField + ( + const variableHeightFlowRateInletVelocityFvPatchVectorField&, + const DimensionedField<vector, volMesh>& + ); + + //- Construct and return a clone setting internal field reference + virtual tmp<fvPatchVectorField> clone + ( + const DimensionedField<vector, volMesh>& iF + ) const + { + return tmp<fvPatchVectorField> + ( + 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 c48ea4b91f94c5803c6e4b7fb30721d74d2ec121..03a3a667a3d8c1ee3e013766f338b7928053cabc 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 a8f0a288a0aa14f3c7be5e4f13ef608ffa382610..63efa66a33df1344b571e8b25a15fc48880dd097 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 41159fe9def1d68030d4d4c65aacca7947e0610b..06b13a7b3c68ae7a87a4c2f40e232fef99502c7d 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 fdd2e7c83e0cb0d50c29713e65f2d8b1ac3948ea..bd5bed38568db41b9be00630aa8024cadc663f68 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 c34b3608349e8852298bc5a08f729fdcfde11177..85cfa0fbfb1355189d2c6c23ae7fec241045daa2 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 0000000000000000000000000000000000000000..92b06fe0a614ad67e3ec0bc5eb8bf48b52d524b9 --- /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 0000000000000000000000000000000000000000..deeaf2f3dff70ccc44bee629d9085e3546cb7713 --- /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 0000000000000000000000000000000000000000..7d98d9ac02b9e8a5b09c4a5a5b4dbec2bd41d1d2 --- /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 0000000000000000000000000000000000000000..1d05333331873e6eaab17c218e348e99e9f278e3 --- /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 0000000000000000000000000000000000000000..18dafe0a9a9d6e547dc69ff3e78865e2854ddf82 --- /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 0000000000000000000000000000000000000000..2d6b6f0067ba0fa590c5a94aa6ed04985273f49c --- /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 0000000000000000000000000000000000000000..026164723a181e39cb132e04a3a40d6333abb0b9 --- /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 0000000000000000000000000000000000000000..2c5a008802e8e91116267233274623cc5c062969 --- /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 0000000000000000000000000000000000000000..da58c047f11167b7accb35d26053883de19febc6 --- /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 0000000000000000000000000000000000000000..a4937b503a46850b2626f0d301e4a07b9f691507 --- /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 0000000000000000000000000000000000000000..e0ac2653b5b370ad62f6770588121d30cac51627 --- /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 0000000000000000000000000000000000000000..cc77285f11efa60e0fddb80e868a7ed3d1dfa865 --- /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 0000000000000000000000000000000000000000..e7fe171353ef2ef89026649538494718c28d655c --- /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 0000000000000000000000000000000000000000..ef3e8c7b4b6b6b1979253b534cc30d07c0f63826 --- /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 0000000000000000000000000000000000000000..3721a46a2ead37eb2bf10434bcde59afa9fe9bf6 --- /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 0000000000000000000000000000000000000000..85c6938c48b6625f8aeb251e8282cb213ec58c80 --- /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 0000000000000000000000000000000000000000..28b3d7d20aeb00f17348671a1a85ba2700c6f874 --- /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 0000000000000000000000000000000000000000..b8d411303f41ffe1b2722fc28817c4470164f3b5 --- /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 0000000000000000000000000000000000000000..26d6b7f2a6c7f2db74d61eb3caf13bdece363db9 --- /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 + ); + } +); + +// ************************************************************************* //