ENH: adjust thermalPorousZone to match documentation

eg, dictionary entry:

        thermalModel
        {
            type        none; // fixedTemperature;
            // fixedTemperature coefficients
            T           350;
        }

A missing thermalModel is treated as 'none'
This commit is contained in:
Mark Olesen
2011-03-31 13:53:48 +02:00
parent 5c3c1b2db1
commit 3177e81566
12 changed files with 51 additions and 35 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -445,6 +445,13 @@ void Foam::porousZone::writeDict(Ostream& os, bool subDict) const
dictPtr->write(os);
}
// thermalModel
if (const dictionary* dictPtr = dict_.subDictPtr("thermalModel"))
{
os << indent << "thermalModel";
dictPtr->write(os);
}
os << decrIndent << indent << token::END_BLOCK << endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -51,8 +51,8 @@ namespace porousMedia
Foam::porousMedia::fixedTemperature::fixedTemperature(const porousZone& pZone)
:
thermalModel(pZone, typeName),
T_(readScalar(coeffDict_.lookup("T")))
thermalModel(pZone),
T_(readScalar(thermalCoeffs_.lookup("T")))
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,6 @@ Description
#define fixedTemperature_H
#include "thermalModel.H"
#include "autoPtr.H"
#include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -81,7 +80,7 @@ public:
//- Add the thermal source to the enthalpy equation
virtual void addEnthalpySource
(
const basicThermo& thermo,
const basicThermo&,
const volScalarField& rho,
fvScalarMatrix& hEqn
) const;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,6 @@ Description
#define noThermalModel_H
#include "thermalModel.H"
#include "autoPtr.H"
#include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -73,7 +72,7 @@ public:
//- Add the thermal source to the enthalpy equation
virtual void addEnthalpySource
(
const basicThermo& thermo,
const basicThermo&,
const volScalarField& rho,
fvScalarMatrix& hEqn
) const;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -42,18 +42,18 @@ namespace porousMedia
Foam::porousMedia::thermalModel::thermalModel(const porousZone& pZone)
:
pZone_(pZone),
coeffDict_(dictionary::null)
thermalCoeffs_(pZone.dict().subDictPtr("thermalModel"))
{}
Foam::porousMedia::thermalModel::thermalModel
(
const porousZone& pZone,
const word& modelType
const dictionary& thermalCoeffs
)
:
pZone_(pZone),
coeffDict_(pZone_.dict().subDict(modelType + "Coeffs"))
thermalCoeffs_(thermalCoeffs)
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -63,8 +63,8 @@ protected:
//- Reference to the porous zone
const porousZone& pZone_;
//- Sub-model coefficients dictionary
const dictionary coeffDict_;
//- Thermal model coefficients dictionary
const dictionary thermalCoeffs_;
public:
@ -87,11 +87,11 @@ public:
// Constructors
//- Construct null from porous zone
//- Construct from porous zone, coefficients from "thermalModel" entry
thermalModel(const porousZone&);
//- Construct from porous zone and model type name
thermalModel(const porousZone&, const word& modelType);
//- Construct from porous zone and thermal model coefficients
thermalModel(const porousZone&, const dictionary& thermalCoeffs);
//- Destructor
@ -107,7 +107,7 @@ public:
//- Add the thermal source to the enthalpy equation
virtual void addEnthalpySource
(
const basicThermo& thermo,
const basicThermo&,
const volScalarField& rho,
fvScalarMatrix& hEqn
) const = 0;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,13 @@ Foam::porousMedia::thermalModel::New
const porousZone& pZone
)
{
const word modelType(pZone.dict().lookup("thermalModel"));
// a missing thermalModel is the same as type "none"
word modelType("none");
if (const dictionary* dictPtr = pZone.dict().subDictPtr("thermalModel"))
{
dictPtr->lookup("type") >> modelType;
}
Info<< "Selecting thermalModel " << modelType << endl;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -51,7 +51,10 @@ void Foam::thermalPorousZone::addEnthalpySource
fvScalarMatrix& hEqn
) const
{
if (model_.valid())
{
model_->addEnthalpySource(thermo, rho, hEqn);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -127,7 +127,7 @@ public:
//- Add the thermal source to the enthalpy equation
void addEnthalpySource
(
const basicThermo& thermo,
const basicThermo&,
const volScalarField& rho,
fvScalarMatrix& hEqn
) const;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,7 +32,8 @@ Description
thermalPorousZone.
The input file \c constant/thermalPorousZone is implemented as
IOPtrList\<thermalPorousZone\> and contains the following type of data:
IOPtrList\<thermalPorousZone\> (but written as a dictionary)
and contains the following type of data:
\verbatim
1
@ -94,7 +95,7 @@ public:
//- Add the thermal source to the enthalpy equation
void addEnthalpySource
(
const basicThermo& thermo,
const basicThermo&,
const volScalarField& rho,
fvScalarMatrix& hEqn
) const;

View File

@ -31,10 +31,11 @@ FoamFile
f f [0 -1 0 0 0 0 0] (0 0 0);
}
thermalModel none; // fixedTemperature;
fixedTemperatureCoeffs
thermalModel
{
type none; // fixedTemperature;
// fixedTemperature coefficients
T 350;
}
}