Heat exchanger source model, in which the heat exchanger is defined as an energy source using a selection of cells. More...
Public Member Functions | |
TypeName ("effectivenessHeatExchangerSource") | |
Runtime type information. More... | |
effectivenessHeatExchangerSource (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
virtual | ~effectivenessHeatExchangerSource ()=default |
Destructor. More... | |
virtual void | addSup (fvMatrix< scalar > &eqn, const label fieldi) |
Scalar. More... | |
virtual void | addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi) |
Scalar. More... | |
virtual bool | read (const dictionary &dict) |
Read dictionary. More... | |
Public Member Functions inherited from cellSetOption | |
TypeName ("cellSetOption") | |
Runtime type information. More... | |
cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
virtual | ~cellSetOption ()=default |
Destructor. More... | |
scalar | timeStart () const |
Return const access to the time start. More... | |
scalar | duration () const |
Return const access to the duration. More... | |
bool | inTimeLimits (const scalar time) const |
Return true if within time limits. More... | |
const selectionModeType & | selectionMode () const |
Return const access to the cell selection mode. More... | |
const word & | cellSetName () const |
Return const access to the name of cell set for "cellSet". More... | |
scalar | V () const |
Return const access to the total cell volume. More... | |
const labelList & | cells () const |
Return const access to the cell set. More... | |
scalar & | timeStart () |
Return access to the time start. More... | |
scalar & | duration () |
Return access to the duration. More... | |
virtual bool | isActive () |
Is the source active? More... | |
Public Member Functions inherited from option | |
TypeName ("option") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh)) | |
option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
autoPtr< option > | clone () const |
Return clone. More... | |
virtual | ~option ()=default |
Destructor. More... | |
const word & | name () const |
Return const access to the source name. More... | |
const fvMesh & | mesh () const |
Return const access to the mesh database. More... | |
const dictionary & | coeffs () const |
Return dictionary. More... | |
bool | active () const |
Return const access to the source active flag. More... | |
void | setApplied (const label fieldi) |
Set the applied flag to true for field index fieldi. More... | |
Switch & | active () |
Return access to the source active flag. More... | |
virtual label | applyToField (const word &fieldName) const |
Return index of field name if found in fieldNames list. More... | |
virtual void | checkApplied () const |
Check that the source has been applied. More... | |
virtual void | addSup (fvMatrix< vector > &eqn, const label fieldi) |
virtual void | addSup (fvMatrix< symmTensor > &eqn, const label fieldi) |
virtual void | addSup (fvMatrix< sphericalTensor > &eqn, const label fieldi) |
virtual void | addSup (fvMatrix< tensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi) |
virtual void | constrain (fvMatrix< scalar > &eqn, const label fieldi) |
virtual void | constrain (fvMatrix< vector > &eqn, const label fieldi) |
virtual void | constrain (fvMatrix< sphericalTensor > &eqn, const label fieldi) |
virtual void | constrain (fvMatrix< symmTensor > &eqn, const label fieldi) |
virtual void | constrain (fvMatrix< tensor > &eqn, const label fieldi) |
virtual void | correct (volScalarField &field) |
virtual void | correct (volVectorField &field) |
virtual void | correct (volSphericalTensorField &field) |
virtual void | correct (volSymmTensorField &field) |
virtual void | correct (volTensorField &field) |
virtual void | writeHeader (Ostream &) const |
Write the source header information. More... | |
virtual void | writeFooter (Ostream &) const |
Write the source footer information. More... | |
virtual void | writeData (Ostream &) const |
Write the source properties. More... | |
Protected Attributes | |
scalar | secondaryMassFlowRate_ |
Secondary flow mass rate [kg/s]. More... | |
scalar | secondaryInletT_ |
Inlet secondary temperature [K]. More... | |
scalar | primaryInletT_ |
Primary air temperature at the heat exchanger inlet [K]. More... | |
bool | userPrimaryInletT_ |
Flag to use a user-specified primary inlet temperature. More... | |
bool | targetQdotActive_ |
Flag to use target heat rejection. More... | |
scalar | targetQdot_ |
Target heat rejection. More... | |
label | targetQdotCalcInterval_ |
Target heat rejection calculation interval. More... | |
scalar | targetQdotRelax_ |
Target heat rejection temperature under-relaxation coefficient. More... | |
autoPtr< interpolation2DTable< scalar > > | eTable_ |
2D look up table efficiency = function of primary and secondary More... | |
word | UName_ |
Name of velocity field; default = U. More... | |
word | TName_ |
Name of temperature field; default = T. More... | |
word | phiName_ |
Name of the flux. More... | |
word | faceZoneName_ |
Name of the faceZone at the heat exchange inlet. More... | |
labelList | faceId_ |
Local list of face IDs. More... | |
labelList | facePatchId_ |
Local list of patch ID per face. More... | |
labelList | faceSign_ |
List of +1/-1 representing face flip map (1 use as is, -1 negate) More... | |
Protected Attributes inherited from cellSetOption | |
scalar | timeStart_ |
Time start. More... | |
scalar | duration_ |
Duration. More... | |
selectionModeType | selectionMode_ |
Cell selection mode. More... | |
word | cellSetName_ |
Name of set/zone for "cellSet" and "cellZone" selectionMode. More... | |
List< point > | points_ |
List of points for "points" selectionMode. More... | |
labelList | cells_ |
Set of cells to apply source to. More... | |
scalar | V_ |
Sum of cell volumes. More... | |
Protected Attributes inherited from option | |
const word | name_ |
Source name. More... | |
const word | modelType_ |
Model type. More... | |
const fvMesh & | mesh_ |
Reference to the mesh database. More... | |
dictionary | dict_ |
Top level source dictionary. More... | |
dictionary | coeffs_ |
Dictionary containing source coefficients. More... | |
Switch | active_ |
Source active flag. More... | |
wordList | fieldNames_ |
Field names to apply source to - populated by derived models. More... | |
List< bool > | applied_ |
Applied flag list - corresponds to each fieldNames_ entry. More... | |
Additional Inherited Members | |
Public Types inherited from cellSetOption | |
enum | selectionModeType { smPoints, smCellSet, smCellZone, smAll } |
Enumeration for selection mode types. More... | |
Static Public Member Functions inherited from option | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
Return a reference to the selected fvOption model. More... | |
Public Attributes inherited from option | |
bool | log |
Switch write log to Info. More... | |
Static Public Attributes inherited from cellSetOption | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
List of selection mode type names. More... | |
Protected Member Functions inherited from cellSetOption | |
void | setSelection (const dictionary &dict) |
Set the cellSet or points selection. More... | |
void | setCellSet () |
Set the cell set based on the user input selection mode. More... | |
void | setVol () |
Recalculate the volume. More... | |
Heat exchanger source model, in which the heat exchanger is defined as an energy source using a selection of cells.
The total heat exchange source is given by:
\[ Q_t = e(\phi, \dot{m}_2) (T_2 - T_1) \phi c_p \]
where:
\( Q_t \) | = | total heat source |
\( e(\phi,\dot{m}_2) \) | = | effectivenes table |
\( \phi \) | = | net mass flux entering heat exchanger [kg/s] |
\( \dot{m}_2 \) | = | secondary mass flow rate [kg/s] |
\( T_1 \) | = | primary inlet temperature [K] |
\( T_2 \) | = | secondary inlet temperature [K] |
\( c_p \) | = | specific heat capacity [J/kg/K] |
The distribution inside the heat exchanger is given by:
\[ Q_c = \frac{V_c |U_c| (T_c - T_{ref})}{\sum(V_c |U_c| (T_c - T_{ref}))} \]
where:
\( Q_c \) | = | source for cell |
\( V_c \) | = | volume of the cell [m3] |
\( U_c \) | = | local cell velocity [m/s] |
\( T_c \) | = | local call temperature [K] |
\( T_{ref} \) | = | min or max(T) in cell zone depending on the sign of Q_t [K] |
effectivenessHeatExchangerSource1 { type effectivenessHeatExchangerSource; active yes; selectionMode cellZone; cellZone porosity; secondaryMassFlowRate 1.0; secondaryInletT 336; faceZone facesZoneInletOriented; outOfBounds clamp; file "effTable"; // Optional // primaryInletT 293; // targetQdot 1500; }
Optional entries:
primaryInletT
: sets the primary inlet temperature. If not set, the flux-averaged temperature is used.targetQdot
: target heat rejectionThe effectiveness table is described in terms of the primary and secondary mass flow rates. For example, the table:
secondary MFR | 0.1 0.2 0.3 -----+----------------- 0.02 | A B C primary MFR 0.04 | D E F 0.06 | G H I
is specified by the following:
( ( 0.02 ( (0.1 A) (0.2 B) (0.3 C) ) ) ( 0.04 ( (0.1 D) (0.2 E) (0.3 F) ) ) ( 0.06 ( (0.1 G) (0.2 H) (0.3 I) ) ) );
file
should have the same units as the secondary mass flow rate and kg/s for phifaceZone
is the faces at the inlet of the cellzone
, it needs to be created with flip map flags. It is used to integrate the net mass flow rate into the heat exchangerDefinition at line 218 of file effectivenessHeatExchangerSource.H.
effectivenessHeatExchangerSource | ( | const word & | name, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from components.
Definition at line 136 of file effectivenessHeatExchangerSource.C.
References dict, dictionary::dictName(), and Foam::read().
|
virtualdefault |
Destructor.
TypeName | ( | "effectivenessHeatExchangerSource" | ) |
Runtime type information.
Scalar.
Reimplemented from option.
Definition at line 325 of file effectivenessHeatExchangerSource.H.
References NotImplemented.
|
virtual |
Scalar.
Reimplemented from option.
Definition at line 182 of file effectivenessHeatExchangerSource.C.
References Foam::constant::atomic::alpha, Foam::decrIndent(), dictionary::dictName(), Foam::endl(), forAll, Foam::gMax(), Foam::gMin(), Foam::incrIndent(), Foam::indent(), Foam::Info, Foam::fvc::interpolate(), Foam::mag(), Foam::max(), Foam::name(), Foam::nl, phi, Foam::reduce(), fvMatrix< Type >::source(), Foam::T(), Foam::type(), U, and Foam::Zero.
|
virtual |
Read dictionary.
Reimplemented from cellSetOption.
Definition at line 315 of file effectivenessHeatExchangerSource.C.
References dict, Foam::endl(), Foam::indent(), Foam::Info, Foam::name(), Foam::nl, cellSetOption::read(), and Foam::type().
|
protected |
Secondary flow mass rate [kg/s].
Definition at line 228 of file effectivenessHeatExchangerSource.H.
|
protected |
Inlet secondary temperature [K].
Definition at line 231 of file effectivenessHeatExchangerSource.H.
|
protected |
Primary air temperature at the heat exchanger inlet [K].
Definition at line 234 of file effectivenessHeatExchangerSource.H.
|
protected |
Flag to use a user-specified primary inlet temperature.
Definition at line 237 of file effectivenessHeatExchangerSource.H.
|
protected |
Flag to use target heat rejection.
Definition at line 240 of file effectivenessHeatExchangerSource.H.
|
protected |
Target heat rejection.
Definition at line 243 of file effectivenessHeatExchangerSource.H.
|
protected |
Target heat rejection calculation interval.
Definition at line 246 of file effectivenessHeatExchangerSource.H.
|
protected |
Target heat rejection temperature under-relaxation coefficient.
Definition at line 249 of file effectivenessHeatExchangerSource.H.
|
protected |
2D look up table efficiency = function of primary and secondary
mass flow rates [kg/s]
Definition at line 253 of file effectivenessHeatExchangerSource.H.
|
protected |
Name of velocity field; default = U.
Definition at line 256 of file effectivenessHeatExchangerSource.H.
|
protected |
Name of temperature field; default = T.
Definition at line 259 of file effectivenessHeatExchangerSource.H.
|
protected |
Name of the flux.
Definition at line 262 of file effectivenessHeatExchangerSource.H.
|
protected |
Name of the faceZone at the heat exchange inlet.
Definition at line 265 of file effectivenessHeatExchangerSource.H.
|
protected |
Local list of face IDs.
Definition at line 268 of file effectivenessHeatExchangerSource.H.
|
protected |
Local list of patch ID per face.
Definition at line 271 of file effectivenessHeatExchangerSource.H.
|
protected |
List of +1/-1 representing face flip map (1 use as is, -1 negate)
Definition at line 274 of file effectivenessHeatExchangerSource.H.