/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see .
Class
Foam::turbulentHeatFluxTemperatureFvPatchScalarField
Description
Fixed heat boundary condition to specify temperature gradient. Input
heat source either specified in terms of an absolute power [W], or as a
flux [W/m^2].
\heading Patch usage
\table
Property | Description | Required | Default value
heatSource | 'power' [W] or 'flux' [W/m^2] | yes |
q | heat power or flux field | yes |
kappa | inherited from Foam::temperatureCoupledBase | yes |
Qr | name of the radiative flux field | yes |
value | initial temperature value | no | calculated
gradient | initial gradient value | no | 0.0
\endtable
Example usage:
\verbatim
hotWall
{
type compressible::turbulentHeatFluxTemperature;
heatSource flux;
q uniform 10;
kappa fluidThermo;
Qr none;
gradient uniform 0;
value uniform 300;
}
\endverbatim
SeeAlso
Foam::temperatureCoupledBase
SourceFiles
turbulentHeatFluxTemperatureFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H
#define turbulentHeatFluxTemperatureFvPatchScalarFields_H
#include "fixedGradientFvPatchFields.H"
#include "temperatureCoupledBase.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace compressible
{
/*---------------------------------------------------------------------------*\
Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/
class turbulentHeatFluxTemperatureFvPatchScalarField
:
public fixedGradientFvPatchScalarField,
public temperatureCoupledBase
{
public:
// Data types
//- Enumeration listing the possible hest source input modes
enum heatSourceType
{
hsPower,
hsFlux
};
private:
// Private data
//- Heat source type names
static const NamedEnum heatSourceTypeNames_;
//- Heat source type
heatSourceType heatSource_;
//- Heat power [W] or flux [W/m2]
scalarField q_;
//- Name of radiative in flux field
word QrName_;
public:
//- Runtime type information
TypeName("compressible::turbulentHeatFluxTemperature");
// Constructors
//- Construct from patch and internal field
turbulentHeatFluxTemperatureFvPatchScalarField
(
const fvPatch&,
const DimensionedField&
);
//- Construct from patch, internal field and dictionary
turbulentHeatFluxTemperatureFvPatchScalarField
(
const fvPatch&,
const DimensionedField&,
const dictionary&
);
//- Construct by mapping given
// turbulentHeatFluxTemperatureFvPatchScalarField onto
// a new patch
turbulentHeatFluxTemperatureFvPatchScalarField
(
const turbulentHeatFluxTemperatureFvPatchScalarField&,
const fvPatch&,
const DimensionedField&,
const fvPatchFieldMapper&
);
//- Construct as copy
turbulentHeatFluxTemperatureFvPatchScalarField
(
const turbulentHeatFluxTemperatureFvPatchScalarField&
);
//- Construct and return a clone
virtual tmp clone() const
{
return tmp
(
new turbulentHeatFluxTemperatureFvPatchScalarField(*this)
);
}
//- Construct as copy setting internal field reference
turbulentHeatFluxTemperatureFvPatchScalarField
(
const turbulentHeatFluxTemperatureFvPatchScalarField&,
const DimensionedField&
);
//- Construct and return a clone setting internal field reference
virtual tmp clone
(
const DimensionedField& iF
) const
{
return tmp
(
new turbulentHeatFluxTemperatureFvPatchScalarField
(
*this,
iF
)
);
}
// Member functions
// Mapping functions
//- Map (and resize as needed) from self given a mapping object
virtual void autoMap(const fvPatchFieldMapper&);
//- Reverse map the given fvPatchField onto this fvPatchField
virtual void rmap
(
const fvPatchScalarField&,
const labelList&
);
// Evaluation functions
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
// I-O
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace compressible
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //