INT: age/comfort: New field function objects

Merged Kutalmış Berçin requested to merge feature-age-comfort into develop

(Explanatory content by @THO - I just added/removed few things)


Function object: age

This functionObject calculates the so called age of air inside any domain. This is useful in HVAC analysis to check the ventilation of a room, office, theater, cinema, academic rooms etc.

The function object is similar to use the scalarTransport function object + adding a source term via fvOptions. However, the main advantage of the age functionObject is that the user does not have to provide the volScalarField. It is generated automatically based on the patches a user uses:

  • All patches of type patch (mainly used for inlet/outlets in HVAC) does get an inletOutlet boundary type while the inletValue is set to 0 (fresh air)
  • All other patches of any other type, e.g., walls, are set to zeroGradient
  • The volScalarField is generated during the execute routine - could be improved by checking if it is in the registry already, if yes take it otherwise create it
  • For each time-step the steady-state solution of the age is calculated, and therefore the user can control the convergence:
    • by setting the tolerance for the initial residual
    • nCorrs for how many corrector loops are executed
  • If either the nCorrs or the tolerance is reached, the loop is left and the field is stored

Function object: comfort

This functionObject calculated values based on the ISO EN 7730:2005 for human behavior inside rooms. This is mainly used in HVAC analysis. The functionObject calculated (until now) three quantities:

PPD - predicted percentag of dissatisfaction
PMV - predicted mean vote
DR - draught rate

The calculations of PPD, PMV, and DR are normally single values for a single room: so its just rough guess. With CFD we have the possibility to evaluate each numerical cell separately and hence, HVAC analysis can predict more accurate and more understandable results. HVAC analysis also used for swimming bath, sauna areas and much more.

These quantities are based on the following computed fields:

Turbulent kinetic energy (if available)

Optional input parameters:

Clothing factor (what people wear - data are given in ISO EN 7730)
Methabolic rate
externalWork (commonly 0)
radiation temperature, if not given calculated based on surface-temperatures
relative humidity
saturation pressure, if not given will be calculated in the function object otherwise
tolerance (for the loop in a sub-function to calculate the clothing temperature)
maxClothIter (number of iterations to calculate the clothing temperature)
meanVelocity; either use the local cell velocity field for each 

Resolved bugs


Details of new models

Function object: age

  • Based on laboratory experiments:
  Bartak, M., Cermak, M., Clarke, J.A., Denev, J.,
  Drkal, F., Lain, M., Macdonald, I.A., Majer, M., Stankov, P., 2001.
  Experimental and numerical study of local mean age of air.
  In: Proceedings of the 7th International Building Performance
  Simulation Association (IBPSA) Conference, Rio de Janeiro, Brazil.

  Bartak, M., Beausoleil-Morrison, I., Clarke, J.A., Denev, J., Drkal, F.,
  Lain, M., Macdonald, I.A., Melikov, A., Popiolek, Z., Stankov, P., 2002.
  Integrating CFD and building simulation. Building and Environment 37, 865–871.
  • A laboratory experiment of a test room with mixing ventilation, where the measurements were taken by a tracer-gas concentration-decay method.
    • "At first a uniform tracer-gas distribution in the test room was reached, then the tracer-gas marking was cut off and the decay of the tracer-gas concentration due to the fresh (non-marked) ventilating air was measured."



Function object: comfort

Unluckily, there is no validation case available for this function object. The only possible "check" is to use a one-cell domain, set parameters (as given in the EN ISO 7730:2005) and check if the same results are outputted.


  • No changes in user input
  • No changes in existing output
Edited by Kutalmış Berçin

Merge request reports