mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -7,15 +7,18 @@ fvVectorMatrix UEqn
|
|||||||
|
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
|
||||||
solve
|
if (pimple.momentumPredictor())
|
||||||
(
|
{
|
||||||
UEqn
|
solve
|
||||||
==
|
|
||||||
fvc::reconstruct
|
|
||||||
(
|
(
|
||||||
|
UEqn
|
||||||
|
==
|
||||||
|
fvc::reconstruct
|
||||||
(
|
(
|
||||||
- ghf*fvc::snGrad(rho)
|
(
|
||||||
- fvc::snGrad(p_rgh)
|
- ghf*fvc::snGrad(rho)
|
||||||
)*mesh.magSf()
|
- fvc::snGrad(p_rgh)
|
||||||
)
|
)*mesh.magSf()
|
||||||
);
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
@ -16,4 +16,5 @@ EXE_LIBS = \
|
|||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lthermoBaffleModels
|
-lthermoBaffleModels \
|
||||||
|
-lregionModels
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
|
|
||||||
externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
|
externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libcoupledDerivedFvPatchFields
|
LIB = $(FOAM_LIBBIN)/libcoupledDerivedFvPatchFields
|
||||||
|
|||||||
@ -202,7 +202,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(oldMode_ == fixedHeatFlux)
|
if (oldMode_ == fixedHeatFlux)
|
||||||
{
|
{
|
||||||
this->refGrad() = q_/K(*this);
|
this->refGrad() = q_/K(*this);
|
||||||
this->refValue() = 0.0;
|
this->refValue() = 0.0;
|
||||||
|
|||||||
@ -54,8 +54,6 @@ SourceFiles
|
|||||||
#ifndef solidWallHeatFluxTemperatureFvPatchScalarField_H
|
#ifndef solidWallHeatFluxTemperatureFvPatchScalarField_H
|
||||||
#define solidWallHeatFluxTemperatureFvPatchScalarField_H
|
#define solidWallHeatFluxTemperatureFvPatchScalarField_H
|
||||||
|
|
||||||
//#include "fixedGradientFvPatchFields.H"
|
|
||||||
|
|
||||||
#include "mixedFvPatchFields.H"
|
#include "mixedFvPatchFields.H"
|
||||||
#include "temperatureCoupledBase.H"
|
#include "temperatureCoupledBase.H"
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
|||||||
volScalarField& Yi = Y[i];
|
volScalarField& Yi = Y[i];
|
||||||
fvScalarMatrix R = combustion->R(Yi);
|
fvScalarMatrix R = combustion->R(Yi);
|
||||||
|
|
||||||
solve
|
fvScalarMatrix YiEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, Yi)
|
fvm::ddt(rho, Yi)
|
||||||
+ mvConvection->fvmDiv(phi, Yi)
|
+ mvConvection->fvmDiv(phi, Yi)
|
||||||
@ -29,10 +29,12 @@ tmp<fv::convectionScheme<scalar> > mvConvection
|
|||||||
==
|
==
|
||||||
parcels.SYi(i, Yi)
|
parcels.SYi(i, Yi)
|
||||||
+ surfaceFilm.Srho(i)
|
+ surfaceFilm.Srho(i)
|
||||||
+ R,
|
+ R
|
||||||
mesh.solver("Yi")
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
YiEqn.relax();
|
||||||
|
YiEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
Yi.max(0.0);
|
Yi.max(0.0);
|
||||||
Yt += Yi;
|
Yt += Yi;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@ Application
|
|||||||
reactingParcelFilmPyrolysisFoam
|
reactingParcelFilmPyrolysisFoam
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Transient PISO solver for compressible, laminar or turbulent flow with
|
Transient PIMPLE solver for Fires and turbulent diffusion flames with
|
||||||
reacting Lagrangian parcels, surface film and pyrolysis modelling.
|
reacting Lagrangian parcels, surface film and pyrolysis modelling.
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -43,10 +43,10 @@ EXE_LIBS = \
|
|||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lmolecularMeasurements \
|
-lmolecularMeasurements \
|
||||||
-lmolecule \
|
-lmolecule \
|
||||||
-lmultiphaseInterFoam \
|
/* -lmultiphaseInterFoam */ \
|
||||||
-lODE \
|
-lODE \
|
||||||
-lOpenFOAM \
|
-lOpenFOAM \
|
||||||
-lphaseModel \
|
/* -lphaseModel */ \
|
||||||
-lpotential \
|
-lpotential \
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
-lrandomProcesses \
|
-lrandomProcesses \
|
||||||
|
|||||||
@ -29,7 +29,6 @@ derivedFvPatches = $(fvPatches)/derived
|
|||||||
$(derivedFvPatches)/wall/wallFvPatch.C
|
$(derivedFvPatches)/wall/wallFvPatch.C
|
||||||
$(derivedFvPatches)/directMapped/directMappedFvPatch.C
|
$(derivedFvPatches)/directMapped/directMappedFvPatch.C
|
||||||
$(derivedFvPatches)/directMapped/directMappedWallFvPatch.C
|
$(derivedFvPatches)/directMapped/directMappedWallFvPatch.C
|
||||||
$(derivedFvPatches)/directMapped/directMappedVariableThicknessWallFvPatch.C
|
|
||||||
|
|
||||||
wallDist = fvMesh/wallDist
|
wallDist = fvMesh/wallDist
|
||||||
$(wallDist)/wallPointYPlus/wallPointYPlus.C
|
$(wallDist)/wallPointYPlus/wallPointYPlus.C
|
||||||
@ -121,6 +120,7 @@ $(derivedFvPatchFields)/directMappedFixedInternalValue/directMappedFixedInternal
|
|||||||
$(derivedFvPatchFields)/directMappedFixedPushedInternalValue/directMappedFixedPushedInternalValueFvPatchFields.C
|
$(derivedFvPatchFields)/directMappedFixedPushedInternalValue/directMappedFixedPushedInternalValueFvPatchFields.C
|
||||||
$(derivedFvPatchFields)/directMappedFixedValue/directMappedFixedValueFvPatchFields.C
|
$(derivedFvPatchFields)/directMappedFixedValue/directMappedFixedValueFvPatchFields.C
|
||||||
$(derivedFvPatchFields)/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
|
$(derivedFvPatchFields)/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
|
||||||
|
$(derivedFvPatchFields)/directMappedFlowRate/directMappedFlowRateFvPatchVectorField.C
|
||||||
$(derivedFvPatchFields)/fan/fanFvPatchFields.C
|
$(derivedFvPatchFields)/fan/fanFvPatchFields.C
|
||||||
$(derivedFvPatchFields)/buoyantPressure/buoyantPressureFvPatchScalarField.C
|
$(derivedFvPatchFields)/buoyantPressure/buoyantPressureFvPatchScalarField.C
|
||||||
$(derivedFvPatchFields)/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
|
$(derivedFvPatchFields)/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I$(LIB_SRC)/triSurface/lnInclude \
|
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
|
|
||||||
|
|
||||||
LIB_LIBS = \
|
LIB_LIBS = \
|
||||||
-lOpenFOAM \
|
-lOpenFOAM \
|
||||||
-ltriSurface \
|
-ltriSurface \
|
||||||
-lmeshTools \
|
-lmeshTools
|
||||||
-lregionModels
|
|
||||||
|
|||||||
@ -23,20 +23,18 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "flowRateInletVelocityCoupledFvPatchVectorField.H"
|
#include "directMappedFlowRateFvPatchVectorField.H"
|
||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
#include "fvPatchFieldMapper.H"
|
#include "fvPatchFieldMapper.H"
|
||||||
#include "directMappedPatchBase.H"
|
#include "directMappedPatchBase.H"
|
||||||
#include "mapDistribute.H"
|
#include "mapDistribute.H"
|
||||||
#include "regionProperties.H"
|
|
||||||
#include "basicThermo.H"
|
|
||||||
#include "surfaceFields.H"
|
#include "surfaceFields.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField::
|
Foam::directMappedFlowRateFvPatchVectorField::
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<vector, volMesh>& iF
|
const DimensionedField<vector, volMesh>& iF
|
||||||
@ -49,10 +47,10 @@ flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField::
|
Foam::directMappedFlowRateFvPatchVectorField::
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField& ptf,
|
const directMappedFlowRateFvPatchVectorField& ptf,
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<vector, volMesh>& iF,
|
const DimensionedField<vector, volMesh>& iF,
|
||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
@ -65,8 +63,8 @@ flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField::
|
Foam::directMappedFlowRateFvPatchVectorField::
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<vector, volMesh>& iF,
|
const DimensionedField<vector, volMesh>& iF,
|
||||||
@ -80,10 +78,10 @@ flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField::
|
Foam::directMappedFlowRateFvPatchVectorField::
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField& ptf
|
const directMappedFlowRateFvPatchVectorField& ptf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchField<vector>(ptf),
|
fixedValueFvPatchField<vector>(ptf),
|
||||||
@ -93,10 +91,10 @@ flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField::
|
Foam::directMappedFlowRateFvPatchVectorField::
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField& ptf,
|
const directMappedFlowRateFvPatchVectorField& ptf,
|
||||||
const DimensionedField<vector, volMesh>& iF
|
const DimensionedField<vector, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
@ -109,7 +107,7 @@ flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::flowRateInletVelocityCoupledFvPatchVectorField::updateCoeffs()
|
void Foam::directMappedFlowRateFvPatchVectorField::updateCoeffs()
|
||||||
{
|
{
|
||||||
if (updated())
|
if (updated())
|
||||||
{
|
{
|
||||||
@ -127,35 +125,19 @@ void Foam::flowRateInletVelocityCoupledFvPatchVectorField::updateCoeffs()
|
|||||||
nbrMesh
|
nbrMesh
|
||||||
).boundary()[mpp.samplePolyPatch().index()];
|
).boundary()[mpp.samplePolyPatch().index()];
|
||||||
|
|
||||||
// Force recalculation of mapping and schedule
|
|
||||||
const mapDistribute& distMap = mpp.map();
|
|
||||||
|
|
||||||
scalarList phi =
|
scalarList phi =
|
||||||
nbrPatch.lookupPatchField<surfaceScalarField, scalar>(nbrPhiName_);
|
nbrPatch.lookupPatchField<surfaceScalarField, scalar>(nbrPhiName_);
|
||||||
|
|
||||||
mapDistribute::distribute
|
mpp.map().distribute(phi);
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
phi
|
|
||||||
);
|
|
||||||
|
|
||||||
const surfaceScalarField& phiName =
|
const surfaceScalarField& phiName =
|
||||||
db().lookupObject<surfaceScalarField>(phiName_);
|
db().lookupObject<surfaceScalarField>(phiName_);
|
||||||
|
|
||||||
|
|
||||||
// a simpler way of doing this would be nice
|
|
||||||
//scalar avgU = -flowRate_/gSum(patch().magSf());
|
|
||||||
scalarField U = -phi/patch().magSf();
|
scalarField U = -phi/patch().magSf();
|
||||||
|
|
||||||
vectorField n = patch().nf();
|
vectorField n = patch().nf();
|
||||||
|
|
||||||
// const surfaceScalarField& phi =
|
|
||||||
// db().lookupObject<surfaceScalarField>(phiName_);
|
|
||||||
|
|
||||||
if (phiName.dimensions() == dimVelocity*dimArea)
|
if (phiName.dimensions() == dimVelocity*dimArea)
|
||||||
{
|
{
|
||||||
// volumetric flow-rate
|
// volumetric flow-rate
|
||||||
@ -186,7 +168,7 @@ void Foam::flowRateInletVelocityCoupledFvPatchVectorField::updateCoeffs()
|
|||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
"flowRateInletVelocityCoupledFvPatchVectorField::updateCoeffs()"
|
"directMappedFlowRateFvPatchVectorField::updateCoeffs()"
|
||||||
) << "dimensions of " << phiName_ << " are incorrect" << nl
|
) << "dimensions of " << phiName_ << " are incorrect" << nl
|
||||||
<< " on patch " << this->patch().name()
|
<< " on patch " << this->patch().name()
|
||||||
<< " of field " << this->dimensionedInternalField().name()
|
<< " of field " << this->dimensionedInternalField().name()
|
||||||
@ -198,7 +180,7 @@ void Foam::flowRateInletVelocityCoupledFvPatchVectorField::updateCoeffs()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::flowRateInletVelocityCoupledFvPatchVectorField::write
|
void Foam::directMappedFlowRateFvPatchVectorField::write
|
||||||
(
|
(
|
||||||
Ostream& os
|
Ostream& os
|
||||||
) const
|
) const
|
||||||
@ -218,7 +200,7 @@ namespace Foam
|
|||||||
makePatchTypeField
|
makePatchTypeField
|
||||||
(
|
(
|
||||||
fvPatchVectorField,
|
fvPatchVectorField,
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -22,7 +22,7 @@ License
|
|||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::flowRateInletVelocityCoupledFvPatchVectorField
|
Foam::directMappedFlowRateFvPatchVectorField
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Describes a volumetric/mass flow normal vector boundary condition by its
|
Describes a volumetric/mass flow normal vector boundary condition by its
|
||||||
@ -41,7 +41,7 @@ Description
|
|||||||
@verbatim
|
@verbatim
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type flowRateInletVelocityCoupled;
|
type directMappedFlowRate;
|
||||||
phi phi;
|
phi phi;
|
||||||
rho rho;
|
rho rho;
|
||||||
neigPhi neigPhiName_; // Volumetric/mass flow rate
|
neigPhi neigPhiName_; // Volumetric/mass flow rate
|
||||||
@ -50,18 +50,13 @@ Description
|
|||||||
}
|
}
|
||||||
@endverbatim
|
@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
|
SourceFiles
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField.C
|
directMappedFlowRateFvPatchVectorField.C
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef flowRateInletVelocityCoupledFvPatchVectorField_H
|
#ifndef directMappedFlowRateFvPatchVectorField_H
|
||||||
#define flowRateInletVelocityCoupledFvPatchVectorField_H
|
#define directMappedFlowRateFvPatchVectorField_H
|
||||||
|
|
||||||
#include "fixedValueFvPatchFields.H"
|
#include "fixedValueFvPatchFields.H"
|
||||||
|
|
||||||
@ -73,7 +68,7 @@ namespace Foam
|
|||||||
Class flowRateInletVelocityFvPatch Declaration
|
Class flowRateInletVelocityFvPatch Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class flowRateInletVelocityCoupledFvPatchVectorField
|
class directMappedFlowRateFvPatchVectorField
|
||||||
:
|
:
|
||||||
public fixedValueFvPatchVectorField
|
public fixedValueFvPatchVectorField
|
||||||
{
|
{
|
||||||
@ -92,20 +87,20 @@ class flowRateInletVelocityCoupledFvPatchVectorField
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
TypeName("flowRateInletVelocityCoupled");
|
TypeName("directMappedFlowRate");
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from patch and internal field
|
//- Construct from patch and internal field
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const fvPatch&,
|
const fvPatch&,
|
||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from patch, internal field and dictionary
|
//- Construct from patch, internal field and dictionary
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const fvPatch&,
|
const fvPatch&,
|
||||||
const DimensionedField<vector, volMesh>&,
|
const DimensionedField<vector, volMesh>&,
|
||||||
@ -113,20 +108,20 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Construct by mapping given
|
//- Construct by mapping given
|
||||||
// flowRateInletVelocityCoupledFvPatchVectorField
|
// directMappedFlowRateFvPatchVectorField
|
||||||
// onto a new patch
|
// onto a new patch
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField&,
|
const directMappedFlowRateFvPatchVectorField&,
|
||||||
const fvPatch&,
|
const fvPatch&,
|
||||||
const DimensionedField<vector, volMesh>&,
|
const DimensionedField<vector, volMesh>&,
|
||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct as copy
|
//- Construct as copy
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField&
|
const directMappedFlowRateFvPatchVectorField&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone
|
//- Construct and return a clone
|
||||||
@ -134,14 +129,14 @@ public:
|
|||||||
{
|
{
|
||||||
return tmp<fvPatchVectorField>
|
return tmp<fvPatchVectorField>
|
||||||
(
|
(
|
||||||
new flowRateInletVelocityCoupledFvPatchVectorField(*this)
|
new directMappedFlowRateFvPatchVectorField(*this)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
flowRateInletVelocityCoupledFvPatchVectorField
|
directMappedFlowRateFvPatchVectorField
|
||||||
(
|
(
|
||||||
const flowRateInletVelocityCoupledFvPatchVectorField&,
|
const directMappedFlowRateFvPatchVectorField&,
|
||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -153,7 +148,7 @@ public:
|
|||||||
{
|
{
|
||||||
return tmp<fvPatchVectorField>
|
return tmp<fvPatchVectorField>
|
||||||
(
|
(
|
||||||
new flowRateInletVelocityCoupledFvPatchVectorField(*this, iF)
|
new directMappedFlowRateFvPatchVectorField(*this, iF)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,13 +44,10 @@ void Foam::cyclicFvPatch::makeWeights(scalarField& w) const
|
|||||||
{
|
{
|
||||||
const cyclicFvPatch& nbrPatch = neighbFvPatch();
|
const cyclicFvPatch& nbrPatch = neighbFvPatch();
|
||||||
|
|
||||||
const scalarField& magFa = magSf();
|
|
||||||
const scalarField& nbrMagFa = nbrPatch.magSf();
|
|
||||||
|
|
||||||
const scalarField deltas(nf() & fvPatch::delta());
|
const scalarField deltas(nf() & fvPatch::delta());
|
||||||
const scalarField nbrDeltas(nbrPatch.nf() & nbrPatch.fvPatch::delta());
|
const scalarField nbrDeltas(nbrPatch.nf() & nbrPatch.fvPatch::delta());
|
||||||
|
|
||||||
forAll(magFa, facei)
|
forAll(deltas, facei)
|
||||||
{
|
{
|
||||||
scalar di = deltas[facei];
|
scalar di = deltas[facei];
|
||||||
scalar dni = nbrDeltas[facei];
|
scalar dni = nbrDeltas[facei];
|
||||||
|
|||||||
@ -409,11 +409,32 @@ Foam::label Foam::scotchDecomp::decomposeOneProc
|
|||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scalar velotabSum = sum(cWeights)/minWeights;
|
||||||
|
|
||||||
|
scalar rangeScale(1.0);
|
||||||
|
|
||||||
|
if (velotabSum > scalar(INT_MAX - 1))
|
||||||
|
{
|
||||||
|
// 0.9 factor of safety to avoid floating point round-off in
|
||||||
|
// rangeScale tipping the subsequent sum over the integer limit.
|
||||||
|
rangeScale = 0.9*scalar(INT_MAX - 1)/velotabSum;
|
||||||
|
|
||||||
|
WarningIn
|
||||||
|
(
|
||||||
|
"scotchDecomp::decompose"
|
||||||
|
"(const pointField&, const scalarField&)"
|
||||||
|
) << "Sum of weights has overflowed integer: " << velotabSum
|
||||||
|
<< ", compressing weight scale by a factor of " << rangeScale
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Convert to integers.
|
// Convert to integers.
|
||||||
velotab.setSize(cWeights.size());
|
velotab.setSize(cWeights.size());
|
||||||
|
|
||||||
forAll(velotab, i)
|
forAll(velotab, i)
|
||||||
{
|
{
|
||||||
velotab[i] = int(cWeights[i]/minWeights);
|
velotab[i] =
|
||||||
|
int((cWeights[i]/minWeights - 1)*rangeScale) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,3 @@
|
|||||||
/* derived patches */
|
|
||||||
|
|
||||||
derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2.C
|
|
||||||
derivedFvPatchFields/flowRateInletVelocityCoupled/flowRateInletVelocityCoupledFvPatchVectorField.C
|
|
||||||
derivedFvPatchFields/totalFlowRateAdvectiveDiffusiveFvPatchScalarField/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
|
|
||||||
derivedFvPatchFields/turbulentTemperatureRadiativeCoupledMixed/turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField.C
|
|
||||||
|
|
||||||
|
|
||||||
/* Pyrolysis models */
|
/* Pyrolysis models */
|
||||||
pyrolysisModel/pyrolysisModel.C
|
pyrolysisModel/pyrolysisModel.C
|
||||||
pyrolysisModel/pyrolysisModelNew.C
|
pyrolysisModel/pyrolysisModelNew.C
|
||||||
|
|||||||
@ -1,327 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2010-2011 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 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 "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2.H"
|
|
||||||
#include "addToRunTimeSelectionTable.H"
|
|
||||||
#include "fvPatchFieldMapper.H"
|
|
||||||
#include "volFields.H"
|
|
||||||
#include "directMappedPatchBase.H"
|
|
||||||
#include "mapDistribute.H"
|
|
||||||
#include "basicThermo.H"
|
|
||||||
#include "LESModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace compressible
|
|
||||||
{
|
|
||||||
namespace LESModels
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(p, iF),
|
|
||||||
nbrFieldName_("undefined-nbrFieldName"),
|
|
||||||
KName_("undefined-K")
|
|
||||||
{
|
|
||||||
this->refValue() = 0.0;
|
|
||||||
this->refGrad() = 0.0;
|
|
||||||
this->valueFraction() = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2& ptf,
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
|
||||||
const fvPatchFieldMapper& mapper
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(ptf, p, iF, mapper),
|
|
||||||
nbrFieldName_(ptf.nbrFieldName_),
|
|
||||||
KName_(ptf.KName_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
|
||||||
const dictionary& dict
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(p, iF),
|
|
||||||
nbrFieldName_(dict.lookup("nbrFieldName")),
|
|
||||||
KName_(dict.lookup("K"))
|
|
||||||
{
|
|
||||||
if (!isA<directMappedPatchBase>(this->patch().patch()))
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::"
|
|
||||||
"turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2\n"
|
|
||||||
"(\n"
|
|
||||||
" const fvPatch& p,\n"
|
|
||||||
" const DimensionedField<scalar, volMesh>& iF,\n"
|
|
||||||
" const dictionary& dict\n"
|
|
||||||
")\n"
|
|
||||||
) << "\n patch type '" << p.type()
|
|
||||||
<< "' not type '" << directMappedPatchBase::typeName << "'"
|
|
||||||
<< "\n for patch " << p.name()
|
|
||||||
<< " of field " << dimensionedInternalField().name()
|
|
||||||
<< " in file " << dimensionedInternalField().objectPath()
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
|
|
||||||
|
|
||||||
if (dict.found("refValue"))
|
|
||||||
{
|
|
||||||
// Full restart
|
|
||||||
refValue() = scalarField("refValue", dict, p.size());
|
|
||||||
refGrad() = scalarField("refGradient", dict, p.size());
|
|
||||||
valueFraction() = scalarField("valueFraction", dict, p.size());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Start from user entered data. Assume fixedValue.
|
|
||||||
refValue() = *this;
|
|
||||||
refGrad() = 0.0;
|
|
||||||
valueFraction() = 1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2& wtcsf,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(wtcsf, iF),
|
|
||||||
nbrFieldName_(wtcsf.nbrFieldName_),
|
|
||||||
KName_(wtcsf.KName_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
tmp<scalarField>
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::K() const
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = patch().boundaryMesh().mesh();
|
|
||||||
|
|
||||||
if (KName_ == "none")
|
|
||||||
{
|
|
||||||
const LESModel& model = db().lookupObject<LESModel>("LESProperties");
|
|
||||||
|
|
||||||
const basicThermo& thermo =
|
|
||||||
db().lookupObject<basicThermo>("thermophysicalProperties");
|
|
||||||
|
|
||||||
return
|
|
||||||
model.alphaEff()().boundaryField()[patch().index()]
|
|
||||||
*thermo.Cp()().boundaryField()[patch().index()];
|
|
||||||
}
|
|
||||||
else if (mesh.objectRegistry::foundObject<volScalarField>(KName_))
|
|
||||||
{
|
|
||||||
return patch().lookupPatchField<volScalarField, scalar>(KName_);
|
|
||||||
}
|
|
||||||
else if (mesh.objectRegistry::foundObject<volSymmTensorField>(KName_))
|
|
||||||
{
|
|
||||||
const symmTensorField& KWall =
|
|
||||||
patch().lookupPatchField<volSymmTensorField, scalar>(KName_);
|
|
||||||
|
|
||||||
vectorField n = patch().nf();
|
|
||||||
|
|
||||||
return n & KWall & n;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::K()"
|
|
||||||
" const"
|
|
||||||
) << "Did not find field " << KName_
|
|
||||||
<< " on mesh " << mesh.name() << " patch " << patch().name()
|
|
||||||
<< endl
|
|
||||||
<< "Please set 'K' to 'none', a valid volScalarField"
|
|
||||||
<< " or a valid volSymmTensorField." << exit(FatalError);
|
|
||||||
|
|
||||||
return scalarField(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::updateCoeffs()
|
|
||||||
{
|
|
||||||
if (updated())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the coupling information from the directMappedPatchBase
|
|
||||||
const directMappedPatchBase& mpp = refCast<const directMappedPatchBase>
|
|
||||||
(
|
|
||||||
patch().patch()
|
|
||||||
);
|
|
||||||
const polyMesh& nbrMesh = mpp.sampleMesh();
|
|
||||||
const fvPatch& nbrPatch = refCast<const fvMesh>
|
|
||||||
(
|
|
||||||
nbrMesh
|
|
||||||
).boundary()[mpp.samplePolyPatch().index()];
|
|
||||||
|
|
||||||
// Force recalculation of mapping and schedule
|
|
||||||
const mapDistribute& distMap = mpp.map();
|
|
||||||
|
|
||||||
tmp<scalarField> intFld = patchInternalField();
|
|
||||||
|
|
||||||
|
|
||||||
// Calculate the temperature by harmonic averaging
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2& nbrField =
|
|
||||||
refCast
|
|
||||||
<
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
>
|
|
||||||
(
|
|
||||||
nbrPatch.lookupPatchField<volScalarField, scalar>
|
|
||||||
(
|
|
||||||
nbrFieldName_
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Swap to obtain full local values of neighbour internal field
|
|
||||||
scalarField nbrIntFld = nbrField.patchInternalField();
|
|
||||||
mapDistribute::distribute
|
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
nbrIntFld
|
|
||||||
);
|
|
||||||
|
|
||||||
// Swap to obtain full local values of neighbour K*delta
|
|
||||||
scalarField nbrKDelta = nbrField.K()*nbrPatch.deltaCoeffs();
|
|
||||||
mapDistribute::distribute
|
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
nbrKDelta
|
|
||||||
);
|
|
||||||
|
|
||||||
tmp<scalarField> myKDelta = K()*patch().deltaCoeffs();
|
|
||||||
|
|
||||||
|
|
||||||
// Both sides agree on
|
|
||||||
// - temperature : (myKDelta*fld + nbrKDelta*nbrFld)/(myKDelta+nbrKDelta)
|
|
||||||
// - gradient : (temperature-fld)*delta
|
|
||||||
// We've got a degree of freedom in how to implement this in a mixed bc.
|
|
||||||
// (what gradient, what fixedValue and mixing coefficient)
|
|
||||||
// Two reasonable choices:
|
|
||||||
// 1. specify above temperature on one side (preferentially the high side)
|
|
||||||
// and above gradient on the other. So this will switch between pure
|
|
||||||
// fixedvalue and pure fixedgradient
|
|
||||||
// 2. specify gradient and temperature such that the equations are the
|
|
||||||
// same on both sides. This leads to the choice of
|
|
||||||
// - refGradient = zero gradient
|
|
||||||
// - refValue = neighbour value
|
|
||||||
// - mixFraction = nbrKDelta / (nbrKDelta + myKDelta())
|
|
||||||
|
|
||||||
|
|
||||||
this->refValue() = nbrIntFld;
|
|
||||||
|
|
||||||
this->refGrad() = 0.0;
|
|
||||||
|
|
||||||
this->valueFraction() = nbrKDelta / (nbrKDelta + myKDelta());
|
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
|
||||||
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
scalar Q = gSum(K()*patch().magSf()*snGrad());
|
|
||||||
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
|
||||||
<< patch().name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " <- "
|
|
||||||
<< nbrMesh.name() << ':'
|
|
||||||
<< nbrPatch.name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :"
|
|
||||||
<< " heat[W]:" << Q
|
|
||||||
<< " walltemperature "
|
|
||||||
<< " min:" << gMin(*this)
|
|
||||||
<< " max:" << gMax(*this)
|
|
||||||
<< " avg:" << gAverage(*this)
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2::write
|
|
||||||
(
|
|
||||||
Ostream& os
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
mixedFvPatchScalarField::write(os);
|
|
||||||
os.writeKeyword("nbrFieldName")<< nbrFieldName_
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
os.writeKeyword("K") << KName_ << token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
makePatchTypeField
|
|
||||||
(
|
|
||||||
fvPatchScalarField,
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace compressible
|
|
||||||
} // End namespace Foam
|
|
||||||
} // End namespace LESModels
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,190 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2010-2011 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 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::compressible::LESModels
|
|
||||||
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
|
|
||||||
Description
|
|
||||||
Mixed boundary condition for temperature, to be used for heat-transfer
|
|
||||||
on back-to-back baffles.
|
|
||||||
|
|
||||||
If my temperature is T1, neighbour is T2:
|
|
||||||
|
|
||||||
T1 > T2: my side becomes fixedValue T2 bc, other side becomes fixedGradient.
|
|
||||||
|
|
||||||
|
|
||||||
Example usage:
|
|
||||||
myInterfacePatchName
|
|
||||||
{
|
|
||||||
type compressible::turbulentTemperatureCoupledBaffleMixed;
|
|
||||||
nbrFieldName T;
|
|
||||||
K K; // or none
|
|
||||||
value uniform 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
Needs to be on underlying directMapped(Wall)FvPatch.
|
|
||||||
|
|
||||||
Note: if K is "none" looks up RASModel and basicThermo, otherwise expects
|
|
||||||
the solver to calculate a 'K' field.
|
|
||||||
|
|
||||||
Note: runs in parallel with arbitrary decomposition. Uses directMapped
|
|
||||||
functionality to calculate exchange.
|
|
||||||
|
|
||||||
Note: lags interface data so both sides use same data.
|
|
||||||
- problem: schedule to calculate average would interfere
|
|
||||||
with standard processor swaps.
|
|
||||||
- so: updateCoeffs sets both to same Twall. Only need to do
|
|
||||||
this for last outer iteration but don't have access to this.
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2_H
|
|
||||||
#define turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2_H
|
|
||||||
|
|
||||||
#include "mixedFvPatchFields.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace compressible
|
|
||||||
{
|
|
||||||
namespace LESModels
|
|
||||||
{
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
Class turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2 Declaration
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
class turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
:
|
|
||||||
public mixedFvPatchScalarField
|
|
||||||
{
|
|
||||||
// Private data
|
|
||||||
|
|
||||||
//- Name of field on the neighbour region
|
|
||||||
const word nbrFieldName_;
|
|
||||||
|
|
||||||
//- Name of thermal conductivity field
|
|
||||||
const word KName_;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
//- Runtime type information
|
|
||||||
TypeName("compressible::turbulentTemperatureCoupledBaffleMixed2");
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
|
||||||
|
|
||||||
//- Construct from patch and internal field
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct from patch, internal field and dictionary
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&,
|
|
||||||
const dictionary&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct by mapping given
|
|
||||||
// turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2 onto a
|
|
||||||
// new patch
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2&,
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&,
|
|
||||||
const fvPatchFieldMapper&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct and return a clone
|
|
||||||
virtual tmp<fvPatchScalarField> clone() const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchScalarField>
|
|
||||||
(
|
|
||||||
new turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
*this
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
|
||||||
turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2&,
|
|
||||||
const DimensionedField<scalar, volMesh>&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
|
||||||
virtual tmp<fvPatchScalarField> clone
|
|
||||||
(
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchScalarField>
|
|
||||||
(
|
|
||||||
new turbulentTemperatureCoupledBaffleMixedFvPatchScalarField2
|
|
||||||
(
|
|
||||||
*this,
|
|
||||||
iF
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Member functions
|
|
||||||
|
|
||||||
//- Get corresponding K field
|
|
||||||
tmp<scalarField> K() const;
|
|
||||||
|
|
||||||
//- Update the coefficients associated with the patch field
|
|
||||||
virtual void updateCoeffs();
|
|
||||||
|
|
||||||
//- Write
|
|
||||||
virtual void write(Ostream&) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace LESModels
|
|
||||||
} // End namespace compressible
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,539 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2010-2011 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 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 "turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField.H"
|
|
||||||
#include "addToRunTimeSelectionTable.H"
|
|
||||||
#include "fvPatchFieldMapper.H"
|
|
||||||
#include "volFields.H"
|
|
||||||
#include "directMappedPatchBase.H"
|
|
||||||
#include "mapDistribute.H"
|
|
||||||
#include "regionProperties.H"
|
|
||||||
#include "basicThermo.H"
|
|
||||||
#include "LESModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace compressible
|
|
||||||
{
|
|
||||||
|
|
||||||
template<>
|
|
||||||
const char*
|
|
||||||
NamedEnum
|
|
||||||
<
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
operationMode,
|
|
||||||
4
|
|
||||||
>::names[] =
|
|
||||||
{
|
|
||||||
"radiative_flux_from_neighbouring_region",
|
|
||||||
"radiative_flux_from_this_region",
|
|
||||||
"no_radiation_contribution",
|
|
||||||
"unknown"
|
|
||||||
};
|
|
||||||
|
|
||||||
const NamedEnum
|
|
||||||
<
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
operationMode,
|
|
||||||
4
|
|
||||||
>
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
operationModeNames;
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(p, iF),
|
|
||||||
neighbourFieldName_("undefined-neighbourFieldName"),
|
|
||||||
neighbourFieldRadiativeName_("undefined-neigbourFieldRadiativeName"),
|
|
||||||
fieldRadiativeName_("undefined-fieldRadiativeName"),
|
|
||||||
KName_("undefined-K"),
|
|
||||||
oldMode_(unknown)
|
|
||||||
{
|
|
||||||
this->refValue() = 0.0;
|
|
||||||
this->refGrad() = 0.0;
|
|
||||||
this->valueFraction() = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField& ptf,
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
|
||||||
const fvPatchFieldMapper& mapper
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(ptf, p, iF, mapper),
|
|
||||||
neighbourFieldName_(ptf.neighbourFieldName_),
|
|
||||||
neighbourFieldRadiativeName_(ptf.neighbourFieldRadiativeName_),
|
|
||||||
fieldRadiativeName_(ptf.fieldRadiativeName_),
|
|
||||||
KName_(ptf.KName_),
|
|
||||||
oldMode_(ptf.oldMode_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const fvPatch& p,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
|
||||||
const dictionary& dict
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(p, iF),
|
|
||||||
neighbourFieldName_(dict.lookup("neighbourFieldName")),
|
|
||||||
neighbourFieldRadiativeName_(dict.lookup("neighbourFieldRadiativeName")),
|
|
||||||
fieldRadiativeName_(dict.lookup("fieldRadiativeName")),
|
|
||||||
KName_(dict.lookup("K")),
|
|
||||||
oldMode_(unknown)
|
|
||||||
{
|
|
||||||
if (!isA<directMappedPatchBase>(this->patch().patch()))
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::"
|
|
||||||
"turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField\n"
|
|
||||||
"(\n"
|
|
||||||
" const fvPatch& p,\n"
|
|
||||||
" const DimensionedField<scalar, volMesh>& iF,\n"
|
|
||||||
" const dictionary& dict\n"
|
|
||||||
")\n"
|
|
||||||
) << "\n patch type '" << p.type()
|
|
||||||
<< "' not type '" << directMappedPatchBase::typeName << "'"
|
|
||||||
<< "\n for patch " << p.name()
|
|
||||||
<< " of field " << dimensionedInternalField().name()
|
|
||||||
<< " in file " << dimensionedInternalField().objectPath()
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
|
|
||||||
|
|
||||||
if (dict.found("refValue"))
|
|
||||||
{
|
|
||||||
// Full restart
|
|
||||||
refValue() = scalarField("refValue", dict, p.size());
|
|
||||||
refGrad() = scalarField("refGradient", dict, p.size());
|
|
||||||
valueFraction() = scalarField("valueFraction", dict, p.size());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Start from user entered data. Assume fixedValue.
|
|
||||||
refValue() = *this;
|
|
||||||
refGrad() = 0.0;
|
|
||||||
valueFraction() = 1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField&
|
|
||||||
wtcsf,
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
)
|
|
||||||
:
|
|
||||||
mixedFvPatchScalarField(wtcsf, iF),
|
|
||||||
neighbourFieldName_(wtcsf.neighbourFieldName_),
|
|
||||||
neighbourFieldRadiativeName_(wtcsf.neighbourFieldRadiativeName_),
|
|
||||||
fieldRadiativeName_(wtcsf.fieldRadiativeName_),
|
|
||||||
KName_(wtcsf.KName_),
|
|
||||||
oldMode_(wtcsf.oldMode_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
tmp<scalarField>
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::K() const
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = patch().boundaryMesh().mesh();
|
|
||||||
|
|
||||||
if (KName_ == "none")
|
|
||||||
{
|
|
||||||
const compressible::LESModel& model =
|
|
||||||
db().lookupObject<compressible::LESModel>("LESProperties");
|
|
||||||
|
|
||||||
const basicThermo& thermo =
|
|
||||||
db().lookupObject<basicThermo>("thermophysicalProperties");
|
|
||||||
|
|
||||||
return
|
|
||||||
model.alphaEff()().boundaryField()[patch().index()]
|
|
||||||
*thermo.Cp()().boundaryField()[patch().index()];
|
|
||||||
}
|
|
||||||
else if (mesh.objectRegistry::foundObject<volScalarField>(KName_))
|
|
||||||
{
|
|
||||||
return patch().lookupPatchField<volScalarField, scalar>(KName_);
|
|
||||||
}
|
|
||||||
else if (mesh.objectRegistry::foundObject<volSymmTensorField>(KName_))
|
|
||||||
{
|
|
||||||
const symmTensorField& KWall =
|
|
||||||
patch().lookupPatchField<volSymmTensorField, scalar>(KName_);
|
|
||||||
|
|
||||||
vectorField n = patch().nf();
|
|
||||||
|
|
||||||
return n & KWall & n;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::K()"
|
|
||||||
" const"
|
|
||||||
) << "Did not find field " << KName_
|
|
||||||
<< " on mesh " << mesh.name() << " patch " << patch().name()
|
|
||||||
<< endl
|
|
||||||
<< "Please set 'K' to 'none', a valid volScalarField"
|
|
||||||
<< " or a valid volSymmTensorField." << exit(FatalError);
|
|
||||||
|
|
||||||
return scalarField(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::
|
|
||||||
updateCoeffs()
|
|
||||||
{
|
|
||||||
if (updated())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the coupling information from the directMappedPatchBase
|
|
||||||
const directMappedPatchBase& mpp = refCast<const directMappedPatchBase>
|
|
||||||
(
|
|
||||||
patch().patch()
|
|
||||||
);
|
|
||||||
const polyMesh& nbrMesh = mpp.sampleMesh();
|
|
||||||
const fvPatch& nbrPatch = refCast<const fvMesh>
|
|
||||||
(
|
|
||||||
nbrMesh
|
|
||||||
).boundary()[mpp.samplePolyPatch().index()];
|
|
||||||
|
|
||||||
// Force recalculation of mapping and schedule
|
|
||||||
const mapDistribute& distMap = mpp.map();
|
|
||||||
|
|
||||||
scalarField intFld = patchInternalField();
|
|
||||||
|
|
||||||
const turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField&
|
|
||||||
nbrField =
|
|
||||||
refCast
|
|
||||||
<
|
|
||||||
const turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
>
|
|
||||||
(
|
|
||||||
nbrPatch.lookupPatchField<volScalarField, scalar>
|
|
||||||
(
|
|
||||||
neighbourFieldName_
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Swap to obtain full local values of neighbour internal field
|
|
||||||
scalarField nbrIntFld = nbrField.patchInternalField();
|
|
||||||
mapDistribute::distribute
|
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
nbrIntFld
|
|
||||||
);
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
|
||||||
<< patch().name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :"
|
|
||||||
<< " internalT "
|
|
||||||
<< " min:" << gMin(*this)
|
|
||||||
<< " max:" << gMax(*this)
|
|
||||||
<< " avg:" << gAverage(*this)
|
|
||||||
<< endl;
|
|
||||||
|
|
||||||
Info<< nbrMesh.name() << ':'
|
|
||||||
<< nbrPatch.name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :"
|
|
||||||
<< " internalT "
|
|
||||||
<< " min:" << gMin(nbrIntFld)
|
|
||||||
<< " max:" << gMax(nbrIntFld)
|
|
||||||
<< " avg:" << gAverage(nbrIntFld)
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Check how to operate
|
|
||||||
operationMode mode = unknown;
|
|
||||||
{
|
|
||||||
if (neighbourFieldRadiativeName_ != "none")
|
|
||||||
{
|
|
||||||
if
|
|
||||||
(
|
|
||||||
nbrMesh.foundObject<volScalarField>
|
|
||||||
(
|
|
||||||
neighbourFieldRadiativeName_
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
mode = radFromNeighbour;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mode = noRad;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if
|
|
||||||
(
|
|
||||||
patch().boundaryMesh().mesh().foundObject<volScalarField>
|
|
||||||
(
|
|
||||||
fieldRadiativeName_
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
mode = radFromMe;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mode = noRad;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do some warnings if change of mode.
|
|
||||||
if (mode != oldMode_)
|
|
||||||
{
|
|
||||||
WarningIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField"
|
|
||||||
"::updateCoeffs()"
|
|
||||||
) << "Switched from mode " << operationModeNames[oldMode_]
|
|
||||||
<< " to mode " << operationModeNames[mode]
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
oldMode_ = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Swap to obtain full local values of neighbour K*delta
|
|
||||||
scalarField nbrKDelta = nbrField.K()*nbrPatch.deltaCoeffs();
|
|
||||||
mapDistribute::distribute
|
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
nbrKDelta
|
|
||||||
);
|
|
||||||
|
|
||||||
scalarField myKDelta = K()*patch().deltaCoeffs();
|
|
||||||
|
|
||||||
scalarField nbrConvFlux = nbrKDelta*(*this - nbrIntFld);
|
|
||||||
|
|
||||||
scalarField nbrTotalFlux = nbrConvFlux;
|
|
||||||
scalarList nbrRadField(nbrPatch.size(), 0.0);
|
|
||||||
scalarList myRadField(patch().size(), 0.0);
|
|
||||||
|
|
||||||
// solid
|
|
||||||
if (mode == radFromNeighbour)
|
|
||||||
{
|
|
||||||
nbrRadField =
|
|
||||||
nbrPatch.lookupPatchField<volScalarField, scalar>
|
|
||||||
(
|
|
||||||
neighbourFieldRadiativeName_
|
|
||||||
);
|
|
||||||
|
|
||||||
// Note: the Qr radiative flux is positive outgoing.
|
|
||||||
// For a hot solid radiating into a cold fluid Qr will be negative.
|
|
||||||
|
|
||||||
|
|
||||||
// Swap to obtain full local values of neighbour radiative heat flux
|
|
||||||
// field
|
|
||||||
mapDistribute::distribute
|
|
||||||
(
|
|
||||||
Pstream::defaultCommsType,
|
|
||||||
distMap.schedule(),
|
|
||||||
distMap.constructSize(),
|
|
||||||
distMap.subMap(), // what to send
|
|
||||||
distMap.constructMap(), // what to receive
|
|
||||||
nbrRadField
|
|
||||||
);
|
|
||||||
|
|
||||||
nbrTotalFlux -= nbrRadField;
|
|
||||||
|
|
||||||
const scalarField Twall =
|
|
||||||
(nbrRadField + myKDelta*intFld + nbrKDelta*nbrIntFld)
|
|
||||||
/(myKDelta + nbrKDelta);
|
|
||||||
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
scalar Qr = gSum(nbrRadField*patch().magSf());
|
|
||||||
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
|
||||||
<< patch().name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :" << nl
|
|
||||||
<< " radiative heat [W] : " << Qr << nl
|
|
||||||
<< " predicted wallT [K] : " << gAverage(Twall) << nl
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
label nFixed = 0;
|
|
||||||
|
|
||||||
forAll(*this, i)
|
|
||||||
{
|
|
||||||
|
|
||||||
this->refValue()[i] = Twall[i];
|
|
||||||
this->refGrad()[i] = 0.0; // not used
|
|
||||||
this->valueFraction()[i] = 1.0;
|
|
||||||
nFixed++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
Pout<< "Using " << nFixed << " fixedValue out of " << this->size()
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (mode == radFromMe) //fluid
|
|
||||||
{
|
|
||||||
const scalarField& myRadField =
|
|
||||||
patch().lookupPatchField<volScalarField, scalar>
|
|
||||||
(
|
|
||||||
fieldRadiativeName_
|
|
||||||
);
|
|
||||||
|
|
||||||
const scalarField Twall =
|
|
||||||
(myRadField + myKDelta*intFld + nbrKDelta*nbrIntFld)
|
|
||||||
/(myKDelta + nbrKDelta);
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
scalar Qr = gSum(myRadField*patch().magSf());
|
|
||||||
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
|
||||||
<< patch().name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :" << nl
|
|
||||||
<< " radiative heat [W] : " << Qr << nl
|
|
||||||
<< " predicted wallT [K] : " << gAverage(Twall) << nl
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
this->refValue() = Twall;
|
|
||||||
this->refGrad() = 0.0; // not used
|
|
||||||
this->valueFraction() = 1.0;
|
|
||||||
}
|
|
||||||
else if (mode == noRad)
|
|
||||||
{
|
|
||||||
this->refValue() = nbrIntFld;
|
|
||||||
this->refGrad() = 0.0;
|
|
||||||
this->valueFraction() = nbrKDelta / (nbrKDelta + myKDelta);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField"
|
|
||||||
"::updateCoeffs()"
|
|
||||||
) << "Illegal mode " << operationModeNames[mode]
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
scalar Qc = gSum(nbrConvFlux*patch().magSf());
|
|
||||||
scalar Qr = gSum(nbrRadField*patch().magSf());
|
|
||||||
scalar Qt = gSum(nbrTotalFlux*patch().magSf());
|
|
||||||
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
|
||||||
<< patch().name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " <- "
|
|
||||||
<< nbrMesh.name() << ':'
|
|
||||||
<< nbrPatch.name() << ':'
|
|
||||||
<< this->dimensionedInternalField().name() << " :" << nl
|
|
||||||
<< " convective heat[W] : " << Qc << nl
|
|
||||||
<< " radiative heat [W] : " << Qr << nl
|
|
||||||
<< " total heat [W] : " << Qt << nl
|
|
||||||
<< " walltemperature "
|
|
||||||
<< " min:" << gMin(*this)
|
|
||||||
<< " max:" << gMax(*this)
|
|
||||||
<< " avg:" << gAverage(*this)
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField::write
|
|
||||||
(
|
|
||||||
Ostream& os
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
mixedFvPatchScalarField::write(os);
|
|
||||||
os.writeKeyword("neighbourFieldName")<< neighbourFieldName_
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
os.writeKeyword("neighbourFieldRadiativeName")<<
|
|
||||||
neighbourFieldRadiativeName_ << token::END_STATEMENT << nl;
|
|
||||||
os.writeKeyword("fieldRadiativeName")<< fieldRadiativeName_
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
os.writeKeyword("K") << KName_ << token::END_STATEMENT << nl;
|
|
||||||
// temperatureCoupledBase::write(os);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
makePatchTypeField
|
|
||||||
(
|
|
||||||
fvPatchScalarField,
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace compressible
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,221 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2010-2011 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 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::
|
|
||||||
compressible::
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
|
|
||||||
Description
|
|
||||||
Mixed boundary condition for temperature, to be used for heat-transfer
|
|
||||||
on back-to-back baffles.
|
|
||||||
|
|
||||||
If my temperature is T1, neighbour is T2:
|
|
||||||
|
|
||||||
T1 > T2: my side becomes fixedValue T2 bc, other side becomes fixedGradient.
|
|
||||||
|
|
||||||
|
|
||||||
Example usage:
|
|
||||||
myInterfacePatchName
|
|
||||||
{
|
|
||||||
type compressible::turbulentTemperatureRadiationCoupledMixedST;
|
|
||||||
neighbourFieldName T;
|
|
||||||
K lookup;
|
|
||||||
KName K;
|
|
||||||
|
|
||||||
neighbourFieldRadiativeName Qr; // or none. Use on solid side
|
|
||||||
fieldRadiativeName Qr; // fluid. Use on fluid side
|
|
||||||
|
|
||||||
value uniform 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
Needs to be on underlying directMapped(Wall)FvPatch.
|
|
||||||
|
|
||||||
Note: K : heat conduction at patch. Gets supplied how to lookup/calculate K:
|
|
||||||
- 'lookup' : lookup volScalarField (or volSymmTensorField) with name
|
|
||||||
- 'basicThermo' : use basicThermo and compressible::RASmodel to calculate K
|
|
||||||
- 'solidThermo' : use basicSolidThermo K()
|
|
||||||
- 'directionalSolidThermo' directionalK()
|
|
||||||
|
|
||||||
Note: runs in parallel with arbitrary decomposition. Uses directMapped
|
|
||||||
functionality to calculate exchange.
|
|
||||||
|
|
||||||
Note: lags interface data so both sides use same data.
|
|
||||||
- problem: schedule to calculate average would interfere
|
|
||||||
with standard processor swaps.
|
|
||||||
- so: updateCoeffs sets both to same Twall. Only need to do
|
|
||||||
this for last outer iteration but don't have access to this.
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField_H
|
|
||||||
#define turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField_H
|
|
||||||
|
|
||||||
#include "mixedFvPatchFields.H"
|
|
||||||
//#include "temperatureCoupledBase.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace compressible
|
|
||||||
{
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
Class turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
Declaration
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
class turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
:
|
|
||||||
public mixedFvPatchScalarField
|
|
||||||
// public temperatureCoupledBase
|
|
||||||
{
|
|
||||||
// Private data
|
|
||||||
|
|
||||||
//- Name of field on the neighbour region
|
|
||||||
const word neighbourFieldName_;
|
|
||||||
|
|
||||||
//- Name of the radiative heat flux in the neighbout region
|
|
||||||
const word neighbourFieldRadiativeName_;
|
|
||||||
|
|
||||||
//- Name of the radiative heat flux in the my region
|
|
||||||
const word fieldRadiativeName_;
|
|
||||||
|
|
||||||
//- Name of thermal conductivity field
|
|
||||||
const word KName_;
|
|
||||||
|
|
||||||
//- how to obtain radiative flux
|
|
||||||
enum operationMode
|
|
||||||
{
|
|
||||||
radFromNeighbour,
|
|
||||||
radFromMe,
|
|
||||||
noRad,
|
|
||||||
unknown
|
|
||||||
};
|
|
||||||
static const NamedEnum<operationMode, 4> operationModeNames;
|
|
||||||
|
|
||||||
//- Previous iteration mode
|
|
||||||
operationMode oldMode_;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
//- Runtime type information
|
|
||||||
TypeName("compressible::turbulentTemperatureRadiationCoupledMixedST");
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
|
||||||
|
|
||||||
//- Construct from patch and internal field
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct from patch, internal field and dictionary
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&,
|
|
||||||
const dictionary&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct by mapping given
|
|
||||||
// turbulentTemperatureCoupledBaffleMixedFvPatchScalarField onto a
|
|
||||||
// new patch
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField&,
|
|
||||||
const fvPatch&,
|
|
||||||
const DimensionedField<scalar, volMesh>&,
|
|
||||||
const fvPatchFieldMapper&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct and return a clone
|
|
||||||
virtual tmp<fvPatchScalarField> clone() const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchScalarField>
|
|
||||||
(
|
|
||||||
new
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
*this
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
const
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField&,
|
|
||||||
const DimensionedField<scalar, volMesh>&
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
|
||||||
virtual tmp<fvPatchScalarField> clone
|
|
||||||
(
|
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchScalarField>
|
|
||||||
(
|
|
||||||
new
|
|
||||||
turbulentTemperatureRadiationCoupledMixedSTFvPatchScalarField
|
|
||||||
(
|
|
||||||
*this,
|
|
||||||
iF
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Member functions
|
|
||||||
|
|
||||||
//- Get corresponding K field
|
|
||||||
tmp<scalarField> K() const;
|
|
||||||
|
|
||||||
//- Update the coefficients associated with the patch field
|
|
||||||
virtual void updateCoeffs();
|
|
||||||
|
|
||||||
//- Write
|
|
||||||
virtual void write(Ostream&) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace compressible
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,5 +1,4 @@
|
|||||||
derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
|
derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
|
||||||
derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
|
derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
|
||||||
|
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libregionCoupling
|
LIB = $(FOAM_LIBBIN)/libregionCoupling
|
||||||
|
|||||||
@ -8,6 +8,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/solid/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/solid/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basicSolidThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basicSolidThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels \
|
-I$(LIB_SRC)/turbulenceModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
|
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
|
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
|
||||||
|
|||||||
@ -3,5 +3,7 @@ regionModel/regionModel.C
|
|||||||
singleLayerRegion/singleLayerRegion.C
|
singleLayerRegion/singleLayerRegion.C
|
||||||
regionModel1D/regionModel1D.C
|
regionModel1D/regionModel1D.C
|
||||||
|
|
||||||
|
/* Boundary conditions */
|
||||||
|
derivedFvPatches/directMappedVariableThicknessWall/directMappedVariableThicknessWallFvPatch.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libregionModels
|
LIB = $(FOAM_LIBBIN)/libregionModels
|
||||||
|
|||||||
@ -64,13 +64,12 @@ noThermo::~noThermo()
|
|||||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void noThermo::preEvolveRegion()
|
void noThermo::preEvolveRegion()
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void noThermo::evolveRegion()
|
void noThermo::evolveRegion()
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
const tmp<volScalarField> noThermo::Cp() const
|
const tmp<volScalarField> noThermo::Cp() const
|
||||||
{
|
{
|
||||||
@ -103,6 +102,7 @@ const volScalarField& noThermo::kappa() const
|
|||||||
return volScalarField::null();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& noThermo::rho() const
|
const volScalarField& noThermo::rho() const
|
||||||
{
|
{
|
||||||
FatalErrorIn("const volScalarField& noThermo::rho() const")
|
FatalErrorIn("const volScalarField& noThermo::rho() const")
|
||||||
@ -110,6 +110,7 @@ const volScalarField& noThermo::rho() const
|
|||||||
return volScalarField::null();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& noThermo::K() const
|
const volScalarField& noThermo::K() const
|
||||||
{
|
{
|
||||||
FatalErrorIn("const volScalarField& noThermo::K() const")
|
FatalErrorIn("const volScalarField& noThermo::K() const")
|
||||||
@ -117,6 +118,7 @@ const volScalarField& noThermo::K() const
|
|||||||
return volScalarField::null();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& noThermo::T() const
|
const volScalarField& noThermo::T() const
|
||||||
{
|
{
|
||||||
FatalErrorIn("const volScalarField& noThermo::T() const")
|
FatalErrorIn("const volScalarField& noThermo::T() const")
|
||||||
|
|||||||
@ -131,7 +131,6 @@ void thermoBaffle2D::solveEnergy()
|
|||||||
TEqn.solve();
|
TEqn.solve();
|
||||||
|
|
||||||
thermo_->correct();
|
thermo_->correct();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -217,8 +216,7 @@ thermoBaffle2D::~thermoBaffle2D()
|
|||||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void thermoBaffle2D::preEvolveRegion()
|
void thermoBaffle2D::preEvolveRegion()
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void thermoBaffle2D::evolveRegion()
|
void thermoBaffle2D::evolveRegion()
|
||||||
@ -229,31 +227,37 @@ void thermoBaffle2D::evolveRegion()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const tmp<volScalarField> thermoBaffle2D::Cp() const
|
const tmp<volScalarField> thermoBaffle2D::Cp() const
|
||||||
{
|
{
|
||||||
return thermo_->Cp();
|
return thermo_->Cp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& thermoBaffle2D::kappa() const
|
const volScalarField& thermoBaffle2D::kappa() const
|
||||||
{
|
{
|
||||||
return thermo_->kappa();
|
return thermo_->kappa();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& thermoBaffle2D::rho() const
|
const volScalarField& thermoBaffle2D::rho() const
|
||||||
{
|
{
|
||||||
return thermo_->rho();
|
return thermo_->rho();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& thermoBaffle2D::K() const
|
const volScalarField& thermoBaffle2D::K() const
|
||||||
{
|
{
|
||||||
return thermo_->K();
|
return thermo_->K();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const volScalarField& thermoBaffle2D::T() const
|
const volScalarField& thermoBaffle2D::T() const
|
||||||
{
|
{
|
||||||
return T_;
|
return T_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void thermoBaffle2D::info() const
|
void thermoBaffle2D::info() const
|
||||||
{
|
{
|
||||||
Info<< indent << "min/max(T) = " << min(T_).value() << ", "
|
Info<< indent << "min/max(T) = " << min(T_).value() << ", "
|
||||||
@ -275,6 +279,7 @@ void thermoBaffle2D::info() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // end namespace thermoBaffleModels
|
} // end namespace thermoBaffleModels
|
||||||
|
|||||||
@ -80,6 +80,7 @@ protected:
|
|||||||
//- Number of non orthogonal correctors
|
//- Number of non orthogonal correctors
|
||||||
label nNonOrthCorr_;
|
label nNonOrthCorr_;
|
||||||
|
|
||||||
|
|
||||||
// Thermo properties
|
// Thermo properties
|
||||||
|
|
||||||
//- Solid thermo
|
//- Solid thermo
|
||||||
@ -88,6 +89,7 @@ protected:
|
|||||||
//- Temperature / [K]
|
//- Temperature / [K]
|
||||||
volScalarField& T_;
|
volScalarField& T_;
|
||||||
|
|
||||||
|
|
||||||
// Source term fields
|
// Source term fields
|
||||||
|
|
||||||
//- Surface energy source / [J/m2/s]
|
//- Surface energy source / [J/m2/s]
|
||||||
|
|||||||
@ -50,7 +50,7 @@ inline tmp<scalarField> thermoBaffle2D::hs
|
|||||||
const label patchI
|
const label patchI
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const scalarField& Cp = thermo_->Cp()().boundaryField()[patchI];
|
const scalarField Cp(thermo_->Cp(patchI));
|
||||||
return Cp*(T - 298.15);
|
return Cp*(T - 298.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -74,7 +74,7 @@ thermoBaffleModel::thermoBaffleModel(const word& modelType, const fvMesh& mesh)
|
|||||||
{
|
{
|
||||||
const polyBoundaryMesh& rbm = regionMesh().boundaryMesh();
|
const polyBoundaryMesh& rbm = regionMesh().boundaryMesh();
|
||||||
|
|
||||||
// Check if region mesh in oneD
|
// Check if region mesh in 1-D
|
||||||
label nTotalEdges = 0;
|
label nTotalEdges = 0;
|
||||||
const label patchi = intCoupledPatchIDs_[0];
|
const label patchi = intCoupledPatchIDs_[0];
|
||||||
nTotalEdges = 2*nLayers_*rbm[patchi].nInternalEdges();
|
nTotalEdges = 2*nLayers_*rbm[patchi].nInternalEdges();
|
||||||
@ -113,10 +113,10 @@ thermoBaffleModel::thermoBaffleModel(const word& modelType, const fvMesh& mesh)
|
|||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
"thermoBaffleModel::thermoBaffleModel"
|
"thermoBaffleModel::thermoBaffleModel"
|
||||||
"(\n"
|
"("
|
||||||
" const word& modelType,"
|
" const word&,"
|
||||||
" const fvMesh& mesh"
|
" const fvMesh&"
|
||||||
")\n"
|
")"
|
||||||
) << "\n patch type '" << pp.type()
|
) << "\n patch type '" << pp.type()
|
||||||
<< "' not type '"
|
<< "' not type '"
|
||||||
<< directMappedVariableThicknessWallPolyPatch::typeName
|
<< directMappedVariableThicknessWallPolyPatch::typeName
|
||||||
@ -129,10 +129,10 @@ thermoBaffleModel::thermoBaffleModel(const word& modelType, const fvMesh& mesh)
|
|||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
"thermoBaffleModel::thermoBaffleModel"
|
"thermoBaffleModel::thermoBaffleModel"
|
||||||
"(\n"
|
"("
|
||||||
" const word& modelType,"
|
" const word&,"
|
||||||
" const fvMesh& mesh"
|
" const fvMesh&"
|
||||||
")\n"
|
")"
|
||||||
) << "\n patch type '" << pp.type()
|
) << "\n patch type '" << pp.type()
|
||||||
<< "' not type '"
|
<< "' not type '"
|
||||||
<< directMappedWallPolyPatch::typeName
|
<< directMappedWallPolyPatch::typeName
|
||||||
@ -161,8 +161,8 @@ thermoBaffleModel::thermoBaffleModel(const word& modelType, const fvMesh& mesh)
|
|||||||
(
|
(
|
||||||
"thermoBaffleModel::thermoBaffleModel"
|
"thermoBaffleModel::thermoBaffleModel"
|
||||||
"("
|
"("
|
||||||
" const word& modelType,"
|
" const word&,"
|
||||||
" const fvMesh& mesh"
|
" const fvMesh&"
|
||||||
")"
|
")"
|
||||||
) << " coupled patches in thermoBaffle are " << nl
|
) << " coupled patches in thermoBaffle are " << nl
|
||||||
<< " different sizes from list thickness" << nl
|
<< " different sizes from list thickness" << nl
|
||||||
@ -188,7 +188,6 @@ thermoBaffleModel::thermoBaffleModel(const word& modelType, const fvMesh& mesh)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,8 +201,7 @@ thermoBaffleModel::~thermoBaffleModel()
|
|||||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void thermoBaffleModel::preEvolveRegion()
|
void thermoBaffleModel::preEvolveRegion()
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
@ -173,7 +173,6 @@ public:
|
|||||||
|
|
||||||
//- Pre-evolve region
|
//- Pre-evolve region
|
||||||
virtual void preEvolveRegion();
|
virtual void preEvolveRegion();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -38,8 +38,6 @@ SourceFiles
|
|||||||
#include "ODEChemistryModel.H"
|
#include "ODEChemistryModel.H"
|
||||||
#include "IOdictionary.H"
|
#include "IOdictionary.H"
|
||||||
#include "scalarField.H"
|
#include "scalarField.H"
|
||||||
#include "autoPtr.H"
|
|
||||||
#include "runTimeSelectionTables.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -69,21 +67,6 @@ public:
|
|||||||
TypeName("chemistrySolver");
|
TypeName("chemistrySolver");
|
||||||
|
|
||||||
|
|
||||||
// Declare runtime constructor selection table
|
|
||||||
declareRunTimeSelectionTable
|
|
||||||
(
|
|
||||||
autoPtr,
|
|
||||||
chemistrySolver,
|
|
||||||
dictionary,
|
|
||||||
(
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const word& ODEModelName,
|
|
||||||
const word& thermoType
|
|
||||||
),
|
|
||||||
(mesh, ODEModelName, thermoType)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from components
|
//- Construct from components
|
||||||
|
|||||||
@ -7,5 +7,7 @@ derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupl
|
|||||||
derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
|
derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
|
||||||
derivedFvPatchFields/turbulentTemperatureCoupledBaffle/regionProperties.C
|
derivedFvPatchFields/turbulentTemperatureCoupledBaffle/regionProperties.C
|
||||||
derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarFields.C
|
derivedFvPatchFields/temperatureThermoBaffle1D/temperatureThermoBaffle1DFvPatchScalarFields.C
|
||||||
|
derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
|
||||||
|
derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libcompressibleTurbulenceModel
|
LIB = $(FOAM_LIBBIN)/libcompressibleTurbulenceModel
|
||||||
|
|||||||
@ -13,5 +13,6 @@ LIB_LIBS = \
|
|||||||
-lspecie \
|
-lspecie \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-lsolid
|
-lsolid \
|
||||||
|
-lradiationModels
|
||||||
|
|
||||||
|
|||||||
@ -29,7 +29,7 @@ License
|
|||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "surfaceFields.H"
|
#include "surfaceFields.H"
|
||||||
#include "IOobjectList.H"
|
#include "IOobjectList.H"
|
||||||
#include "LESModel.H"
|
#include "turbulenceModel.H"
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
@ -149,10 +149,10 @@ void Foam::totalFlowRateAdvectiveDiffusiveFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchI = patch().index();
|
const label patchI = patch().index();
|
||||||
|
|
||||||
const compressible::LESModel& turbulence =
|
const compressible::turbulenceModel& turbulence =
|
||||||
db().lookupObject<compressible::LESModel>
|
db().lookupObject<compressible::turbulenceModel>
|
||||||
(
|
(
|
||||||
"LESProperties"
|
"turbulenceModel"
|
||||||
);
|
);
|
||||||
|
|
||||||
const fvsPatchField<scalar>& phip =
|
const fvsPatchField<scalar>& phip =
|
||||||
@ -175,7 +175,7 @@ void Foam::totalFlowRateAdvectiveDiffusiveFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
scalar phi = gSum(-phip*(*this));// + alphap*snGrad());
|
scalar phi = gSum(-phip*(*this));
|
||||||
|
|
||||||
Info<< patch().boundaryMesh().mesh().name() << ':'
|
Info<< patch().boundaryMesh().mesh().name() << ':'
|
||||||
<< patch().name() << ':'
|
<< patch().name() << ':'
|
||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -179,8 +179,6 @@ public:
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -9,10 +9,16 @@ rm -rf constant/polyMesh/sets
|
|||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/bottomAir.stl bottomAir
|
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/bottomAir.stl bottomAir
|
||||||
|
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.bottom
|
||||||
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/heater.stl heater
|
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/heater.stl heater
|
||||||
|
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.heater
|
||||||
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/leftSolid.stl leftSolid
|
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/leftSolid.stl leftSolid
|
||||||
|
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.leftSolid
|
||||||
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/rightSolid.stl rightSolid
|
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/rightSolid.stl rightSolid
|
||||||
|
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.rightSolid
|
||||||
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/topAir.stl topAir
|
runApplication surfaceFeatureExtract -includedAngle 150 constant/triSurface/topAir.stl topAir
|
||||||
|
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.topAir
|
||||||
|
|
||||||
runApplication snappyHexMesh -overwrite
|
runApplication snappyHexMesh -overwrite
|
||||||
runApplication splitMeshRegions -cellZones -overwrite
|
runApplication splitMeshRegions -cellZones -overwrite
|
||||||
|
|
||||||
|
|||||||
@ -299,7 +299,7 @@ meshQualityControls
|
|||||||
// <0 = inside out tet,
|
// <0 = inside out tet,
|
||||||
// 0 = flat tet
|
// 0 = flat tet
|
||||||
// 1 = regular tet
|
// 1 = regular tet
|
||||||
minTetQuality 1e-9;
|
minTetQuality 1e-30;
|
||||||
|
|
||||||
//- Minimum face area. Set to <0 to disable.
|
//- Minimum face area. Set to <0 to disable.
|
||||||
minArea -1;
|
minArea -1;
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object H2O;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object N2;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.79;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object O2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.21;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
location "0";
|
||||||
|
class volScalarField;
|
||||||
|
object T;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Tf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Uf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 -0.075 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object deltaf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object H2O;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object N2;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.79;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object O2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.21;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/T
Normal file
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/T
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
location "0";
|
||||||
|
class volScalarField;
|
||||||
|
object T;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
47
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/U
Normal file
47
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/U
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/p
Normal file
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/p
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Tf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Uf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 -0.075 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object deltaf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
13
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean
Executable file
13
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Source tutorial clean functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
|
cleanCase
|
||||||
|
|
||||||
|
rm -rf constant/wallFilmRegion
|
||||||
|
rm -rf 0
|
||||||
|
cp -rf 0.org 0
|
||||||
|
|
||||||
|
rm -f *.obj
|
||||||
|
|
||||||
|
#rm -rf VTK
|
||||||
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun
Executable file
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
./Allrun.pre
|
||||||
|
|
||||||
|
application=`getApplication`
|
||||||
|
|
||||||
|
runApplication $application
|
||||||
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre
Executable file
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
|
||||||
|
runApplication setSet -batch wallFilmRegion.setSet
|
||||||
|
mv log.setSet log.wallFilmRegion.setSet
|
||||||
|
|
||||||
|
runApplication extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object additionalControls;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvePrimaryRegion false; // true;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object chemistryProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
psiChemistryModel ODEChemistryModel<gasThermoPhysics>;
|
||||||
|
|
||||||
|
chemistry off;
|
||||||
|
|
||||||
|
turbulentReaction off;
|
||||||
|
|
||||||
|
chemistrySolver noChemistrySolver;
|
||||||
|
|
||||||
|
initialChemicalTimeStep 1e-07;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object combustionProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
combustionModel none;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object foam.dat;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
O2
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 31.9988;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 3.69758 0.00061352 -1.25884e-07 1.77528e-11 -1.13644e-15 -1233.93 3.18917 );
|
||||||
|
lowCpCoeffs ( 3.21294 0.00112749 -5.75615e-07 1.31388e-09 -8.76855e-13 -1005.25 6.03474 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
H2O
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 18.0153;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 2.67215 0.00305629 -8.73026e-07 1.201e-10 -6.39162e-15 -29899.2 6.86282 );
|
||||||
|
lowCpCoeffs ( 3.38684 0.00347498 -6.3547e-06 6.96858e-09 -2.50659e-12 -30208.1 2.59023 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
N2
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 28.0134;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 2.92664 0.00148798 -5.68476e-07 1.0097e-10 -6.75335e-15 -922.798 5.98053 );
|
||||||
|
lowCpCoeffs ( 3.29868 0.00140824 -3.96322e-06 5.64152e-09 -2.44486e-12 -1020.9 3.95037 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
species
|
||||||
|
(
|
||||||
|
O2
|
||||||
|
H2O
|
||||||
|
N2
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
reactions
|
||||||
|
{}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ 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);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object scalarListList;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
// (x y z) (u v w) d rho mDot T cp (Y0..Y2) (Yg0..YgN) (Yl0..YlN) (Ys0..YsN)
|
||||||
|
(
|
||||||
|
(0.050 0.025 0.09) (0 0 -5) 0.001 1000 0.002 300 4200 (1)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant/polyMesh";
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
// front
|
||||||
|
( 0 0 1)
|
||||||
|
( 0.125 0 1)
|
||||||
|
( 0.625 0 1)
|
||||||
|
( 0.750 0 1)
|
||||||
|
( 0 1 1)
|
||||||
|
( 0.125 1 1)
|
||||||
|
( 0.625 1 1)
|
||||||
|
( 0.750 1 1)
|
||||||
|
|
||||||
|
// back
|
||||||
|
( 0 0 0)
|
||||||
|
( 0.125 0 0)
|
||||||
|
( 0.625 0 0)
|
||||||
|
( 0.750 0 0)
|
||||||
|
( 0 1 0)
|
||||||
|
( 0.125 1 0)
|
||||||
|
( 0.625 1 0)
|
||||||
|
( 0.750 1 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 9 8 4 5 13 12) (30 1 240) simpleGrading (1 1 1)
|
||||||
|
hex (1 2 10 9 5 6 14 13) (120 1 240) simpleGrading (1 1 1)
|
||||||
|
hex (2 3 11 10 6 7 15 14) (30 1 240) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
edges
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(5 6 14 13)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 9 8)
|
||||||
|
(1 2 10 9)
|
||||||
|
(2 3 11 10)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(8 0 4 12)
|
||||||
|
(15 7 3 11)
|
||||||
|
(13 5 4 12)
|
||||||
|
(15 7 6 14)
|
||||||
|
(8 12 13 9)
|
||||||
|
(9 13 14 10)
|
||||||
|
(10 14 15 11)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
filmWalls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 5 4)
|
||||||
|
(1 2 6 5)
|
||||||
|
(2 3 7 6)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mergePatchPairs
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object radiationProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
radiation off;
|
||||||
|
|
||||||
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object reactingCloud1Properties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solution
|
||||||
|
{
|
||||||
|
active no;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object SurfaceFilmProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
surfaceFilmModel kinematicSingleLayer;
|
||||||
|
|
||||||
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
|
active true;
|
||||||
|
|
||||||
|
kinematicSingleLayerCoeffs
|
||||||
|
{
|
||||||
|
thermoModel constant;
|
||||||
|
constantThermoCoeffs
|
||||||
|
{
|
||||||
|
rho0 rho0 [1 -3 0 0 0] 1000;
|
||||||
|
mu0 mu0 [1 -1 -1 0 0] 1e-3;
|
||||||
|
sigma0 sigma0 [1 0 -2 0 0] 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
injectionModels ();
|
||||||
|
|
||||||
|
forces
|
||||||
|
(
|
||||||
|
contactAngle
|
||||||
|
surfaceShear
|
||||||
|
thermocapillary
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
contactAngleCoeffs
|
||||||
|
{
|
||||||
|
deltaWet 1e-4;
|
||||||
|
Ccf 1;
|
||||||
|
contactAngleDistribution
|
||||||
|
{
|
||||||
|
type normal;
|
||||||
|
normalDistribution
|
||||||
|
{
|
||||||
|
minValue 50;
|
||||||
|
maxValue 100;
|
||||||
|
expectation 75;
|
||||||
|
variance 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
surfaceShearCoeffs
|
||||||
|
{
|
||||||
|
Cf 0.001;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object thermophysicalProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
thermoType hsPsiMixtureThermo<reactingMixture<gasThermoPhysics>>;
|
||||||
|
|
||||||
|
chemistryReader foamChemistryReader;
|
||||||
|
|
||||||
|
foamChemistryFile "$FOAM_CASE/constant/foam.inp";
|
||||||
|
|
||||||
|
foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat";
|
||||||
|
|
||||||
|
inertSpecie N2;
|
||||||
|
|
||||||
|
|
||||||
|
liquids
|
||||||
|
{
|
||||||
|
liquidComponents (H2O);
|
||||||
|
|
||||||
|
H2O
|
||||||
|
{
|
||||||
|
defaultCoeffs yes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
solids
|
||||||
|
{
|
||||||
|
solidComponents ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
# Create face sets
|
||||||
|
faceSet sideFaces1 new boxToFace (-0.00001 -0.00001 -1) (0.10001 0.00001 1)
|
||||||
|
faceSet sideFaces2 new boxToFace ( 0.09999 -0.00001 -1) (0.10001 0.05001 1)
|
||||||
|
faceSet sideFaces3 new boxToFace (-0.00001 0.04999 -1) (1.00001 0.05001 1)
|
||||||
|
faceSet sideFaces4 new boxToFace (-0.00001 -0.00001 -1) (0.00001 0.05001 1)
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application reactingParcelFilmFoam;
|
||||||
|
|
||||||
|
startFrom latestTime; // startTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 3;
|
||||||
|
|
||||||
|
deltaT 1e-04;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 0.02;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 10;
|
||||||
|
|
||||||
|
writeCompression uncompressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 6;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep yes;
|
||||||
|
|
||||||
|
maxCo 0.3;
|
||||||
|
|
||||||
|
maxDeltaT 1e-03;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object createPatchDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
// This application/dictionary controls:
|
||||||
|
// - optional: create new patches from boundary faces (either given as
|
||||||
|
// a set of patches or as a faceSet)
|
||||||
|
// - always: order faces on coupled patches such that they are opposite. This
|
||||||
|
// is done for all coupled faces, not just for any patches created.
|
||||||
|
// - optional: synchronise points on coupled patches.
|
||||||
|
|
||||||
|
// 1. Create cyclic:
|
||||||
|
// - specify where the faces should come from
|
||||||
|
// - specify the type of cyclic. If a rotational specify the rotationAxis
|
||||||
|
// and centre to make matching easier
|
||||||
|
// - always create both halves in one invocation with correct 'neighbourPatch'
|
||||||
|
// setting.
|
||||||
|
// - optionally pointSync true to guarantee points to line up.
|
||||||
|
|
||||||
|
// 2. Correct incorrect cyclic:
|
||||||
|
// This will usually fail upon loading:
|
||||||
|
// "face 0 area does not match neighbour 2 by 0.0100005%"
|
||||||
|
// " -- possible face ordering problem."
|
||||||
|
// - in polyMesh/boundary file:
|
||||||
|
// - loosen matchTolerance of all cyclics to get case to load
|
||||||
|
// - or change patch type from 'cyclic' to 'patch'
|
||||||
|
// and regenerate cyclic as above
|
||||||
|
|
||||||
|
|
||||||
|
// Do a synchronisation of coupled points after creation of any patches.
|
||||||
|
// Note: this does not work with points that are on multiple coupled patches
|
||||||
|
// with transformations (i.e. cyclics).
|
||||||
|
pointSync false;
|
||||||
|
|
||||||
|
// Patches to create.
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
// none
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
|
method metis;
|
||||||
|
|
||||||
|
simpleCoeffs
|
||||||
|
{
|
||||||
|
n ( 2 2 1 );
|
||||||
|
delta 0.001;
|
||||||
|
}
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n ( 1 1 1 );
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
metisCoeffs
|
||||||
|
{
|
||||||
|
processorWeights ( 1 1 1 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
manualCoeffs
|
||||||
|
{
|
||||||
|
dataFile "";
|
||||||
|
}
|
||||||
|
|
||||||
|
distributed no;
|
||||||
|
|
||||||
|
roots ( );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object extrudeToRegionMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
region wallFilmRegion;
|
||||||
|
|
||||||
|
faceZones (wallFilmFaces);
|
||||||
|
|
||||||
|
oneD false;
|
||||||
|
|
||||||
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
|
nLayers 1;
|
||||||
|
|
||||||
|
expansionRatio 1;
|
||||||
|
|
||||||
|
adaptMesh yes; // apply directMapped to both regions
|
||||||
|
|
||||||
|
linearNormalCoeffs
|
||||||
|
{
|
||||||
|
thickness 0.01;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss upwind;
|
||||||
|
div(phiU,p) Gauss upwind;
|
||||||
|
div(phi,h) Gauss upwind;
|
||||||
|
div(phi,k) Gauss upwind;
|
||||||
|
div(phi,epsilon) Gauss upwind;
|
||||||
|
div(U) Gauss linear;
|
||||||
|
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
||||||
|
div(phi,Yi_hs) Gauss upwind;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p_rgh;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
"(rho|G)"
|
||||||
|
{
|
||||||
|
solver PCG;
|
||||||
|
preconditioner DIC;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(rho|G)Final"
|
||||||
|
{
|
||||||
|
$rho;
|
||||||
|
tolerance 1e-05;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(U|hs)"
|
||||||
|
{
|
||||||
|
solver PBiCG;
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(U|hs)Final"
|
||||||
|
{
|
||||||
|
$U;
|
||||||
|
relTol 0;
|
||||||
|
tolerance 1e-05;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(k|epsilon)"
|
||||||
|
{
|
||||||
|
$UFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
p_rgh
|
||||||
|
{
|
||||||
|
solver PCG;
|
||||||
|
preconditioner DIC;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
p_rghFinal
|
||||||
|
{
|
||||||
|
$p_rgh;
|
||||||
|
tolerance 1e-06;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(Yi|O2|N2|H2O)"
|
||||||
|
{
|
||||||
|
$hsFinal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PIMPLE
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
momentumPredictor yes;
|
||||||
|
}
|
||||||
|
|
||||||
|
relaxationFactors
|
||||||
|
{
|
||||||
|
".*Final" 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object createPatchDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
// This application/dictionary controls:
|
||||||
|
// - optional: create new patches from boundary faces (either given as
|
||||||
|
// a set of patches or as a faceSet)
|
||||||
|
// - always: order faces on coupled patches such that they are opposite. This
|
||||||
|
// is done for all coupled faces, not just for any patches created.
|
||||||
|
// - optional: synchronise points on coupled patches.
|
||||||
|
|
||||||
|
// 1. Create cyclic:
|
||||||
|
// - specify where the faces should come from
|
||||||
|
// - specify the type of cyclic. If a rotational specify the rotationAxis
|
||||||
|
// and centre to make matching easier
|
||||||
|
// - always create both halves in one invocation with correct 'neighbourPatch'
|
||||||
|
// setting.
|
||||||
|
// - optionally pointSync true to guarantee points to line up.
|
||||||
|
|
||||||
|
// 2. Correct incorrect cyclic:
|
||||||
|
// This will usually fail upon loading:
|
||||||
|
// "face 0 area does not match neighbour 2 by 0.0100005%"
|
||||||
|
// " -- possible face ordering problem."
|
||||||
|
// - in polyMesh/boundary file:
|
||||||
|
// - loosen matchTolerance of all cyclics to get case to load
|
||||||
|
// - or change patch type from 'cyclic' to 'patch'
|
||||||
|
// and regenerate cyclic as above
|
||||||
|
|
||||||
|
|
||||||
|
// Do a synchronisation of coupled points after creation of any patches.
|
||||||
|
// Note: this does not work with points that are on multiple coupled patches
|
||||||
|
// with transformations (i.e. cyclics).
|
||||||
|
pointSync false;
|
||||||
|
|
||||||
|
// Patches to create.
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side1;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side2;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side3;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces3;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side4;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces4;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system/wallFilmRegion";
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
ddt(deltaf*rhof) Euler;
|
||||||
|
ddt(rhof,deltaf) Euler;
|
||||||
|
ddt(deltaf*rhof,Uf) Euler;
|
||||||
|
ddt(deltaf*rhof,hsf) Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,Uf) Gauss upwind;
|
||||||
|
div(phid,deltaf) Gauss upwind;
|
||||||
|
div(phi,hsf) Gauss upwind;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
grad(pL) Gauss linear;
|
||||||
|
grad(sigmaf) Gauss linear;
|
||||||
|
snGradCorr(deltaf) Gauss linear;
|
||||||
|
snGradCorr(pp) Gauss linear;
|
||||||
|
snGradCorr(pu) Gauss linear;
|
||||||
|
grad(nHat) Gauss linear;
|
||||||
|
|
||||||
|
grad(alpha) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(sigmaf,deltaf) Gauss linear uncorrected;
|
||||||
|
laplacian(deltaCoeff,deltaf) Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
snGrad(p) uncorrected;
|
||||||
|
snGrad(deltaf) uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
deltaf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system/wallFilmRegion";
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
"(Uf|hsf|deltaf\*rhof)"
|
||||||
|
{
|
||||||
|
solver PBiCG;
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-10;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
deltaf
|
||||||
|
{
|
||||||
|
solver PBiCG; // PCG;
|
||||||
|
preconditioner DILU; // DIC;
|
||||||
|
tolerance 1e-10;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
momentumPredictor true;
|
||||||
|
nOuterCorr 1;
|
||||||
|
nCorr 1;
|
||||||
|
nNonOrthCorr 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
relaxationFactors
|
||||||
|
{}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
# Create face set
|
||||||
|
faceSet wallFilmFaces new patchToFace filmWalls
|
||||||
|
faceZoneSet wallFilmFaces new setToFaceZone wallFilmFaces
|
||||||
@ -292,7 +292,7 @@ meshQualityControls
|
|||||||
// <0 = inside out tet,
|
// <0 = inside out tet,
|
||||||
// 0 = flat tet
|
// 0 = flat tet
|
||||||
// 1 = regular tet
|
// 1 = regular tet
|
||||||
minTetQuality 1e-9;
|
minTetQuality 1e-30;
|
||||||
|
|
||||||
//- Minimum face area. Set to <0 to disable.
|
//- Minimum face area. Set to <0 to disable.
|
||||||
minArea -1;
|
minArea -1;
|
||||||
|
|||||||
@ -320,7 +320,7 @@ meshQualityControls
|
|||||||
// <0 = inside out tet,
|
// <0 = inside out tet,
|
||||||
// 0 = flat tet
|
// 0 = flat tet
|
||||||
// 1 = regular tet
|
// 1 = regular tet
|
||||||
minTetQuality 1e-9;
|
minTetQuality 1e-30;
|
||||||
|
|
||||||
//- Minimum face area. Set to <0 to disable.
|
//- Minimum face area. Set to <0 to disable.
|
||||||
minArea -1;
|
minArea -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user