Documentation for ICRP Publication 66 Lung Deposition Model

ICRP Pub 66 Lung Deposition Model

Calculates the percentage deposition of aerosols to specific regions of the lungs:

The Lung Deposition Model was developed (in C++) by Stefanie Holmes as part of her ERULF project in the summer of 1999.   This web implementation was developed by Lin Ahmad as part of her ORNL/NSF research project in the summer of 2002.   This code is an implementation of the ICRP Human Respiratory Tract Model for Deposition in the Lung (ICRP Publication 66). This implementation has been validated against a previous FORTRAN version.   The web CGI scripts are written in perl and the documentation uses Extensible Markup Language including structured vector graphics (SVG) and MATHML.

As input the Model uses 1) a file containing physiological parameters (such as tidal volume, breathing rates, etc.) and 2) a file containing environmental factors (aerosol size and shape) along with characteristics of the test subject (gender, height, etc.).    To run the Model, the user enters the information in this second file. At the present time the user cannot change the information in the file containing physiological parameters.    A perl script captures and validates the user's input.   User's input is written to a file.   This file together with physiological data (in a file) are used as inputs to the C++ Object Oriented implementation of the Lung Deposition Model.   The results of the computation are displayed to the user's web browser.

The following tables explain the input parameters to the model, the physiological data, and the the C++ methods in the application (depmono2) developed by Stefanie Holmes.

Model Parameters

Description of Parameter
Units
Example of Input
Subject's gender
m or f
f
Subject's height
cm
176
Subject's breathing habit
n=nasal    m=mouth
n
Wind speed
m/s
0
Mono or Poly disperse
m=mono    p=poly
m
Particle shape factor
Unitless
1.5
Particle density
micron
3.5109
Standard deviation (if known) for polydisperse
Unitless
0
Sleep
Hours
8
Sitting
Hours
8
Light exercise
Hours
8
Heavy exercise
Hours
0

Documentation of C++ Object Oriented Code:

Class: Person
Variables associated with the class Units Comments Variables associated with the class Units Comments
double height cm Subject's height double SFt Unitless BB scale factor
double Vt mL Volume of tidal airflow double SFb Unitless bb scale factor
double Vdot mL/s Ventilatory airflow double SFa Unitless AI scale factor
double VdET mL Anatomical dead space double tB   Transit Time
double VdBB mL Anatomical dead space - Bronchial double tb   Transit Time
double Vdbb mL Anatomical dead space - bronchiolar double ta Units Transit Time
double Fn Units Fraction of total ventilatory airflow passing through nose char gender m=male   f=female Subject's gender (m or f)
double FRC mL Functional residual capacity char breathe n=nasal   m=mouth Nose or mouth breather
double B m^3/h Ventilation rate    
Methods associated with the class Units Comments Methods associated with the class Units Comments
void calcTB();   Calculate transit time in the BB region void calcTb();   Calculate transit time in the bb region
void calcTa();   Calculate transit time in the AI region      


Class: Environment
Variables associated with the class Units Comments Variables associated with the class Units Comments
double U m/s environmental wind speed Person *body   A reference to the class Person
Methods associated with the class Units Comments Methods associated with the class Units Comments
double getU()   Get the wind speed      

Class: Particle
Variables associated with the class Units Comments Variables associated with the class Units Comments
char disp m or p Mono or poly disperse double dae micron Aerodynamic diameter (mono) or AMTD (poly)
double dth micron Thermodynamic diameter (mono) or AMTD (poly) double psith   Correction coefficient for thermodynamic deposition caused by nonlaimnar flow
double D   Diffusion coefficient double rho g cm^-3 Particle density
double chi   Particle shape factor double fs   Slow-cleared fraction
Methods associated with the class Units Comments Methods associated with the class Units Comments
double calcCd();     void calcD();   Calculate diffusion coefficient
void calcPsith();   Calculate correction coefficient for thermodynamic deposition caused by nonlaminar flow double correctDth();   Calculate thermodynamic diameter
void calcDae();   Calculate aerodynamic diameter void calcFs();    

Class: Region
Variables associated with the class Units Comments Variables associated with the class Units Comments
double eta Unitless Total filtration efficiency double phi Unitless Fraction of tidal airflow volume
double xi Unitless Ratio of this region's phi to the previous region's phi double DE Unitless Deposition fraction
double aeroA Unitless Parameter for calculating aerodynamic efficiency double aeroR Unitless Parameter for calculating aerodynamic efficiency
double aeroP Unitless Parameter for calculating aerodynamic efficiency double thermA Unitless Parameter for calculating aerodynamic efficiency
double thermR Unitless Parameter for calculating aerodynamic efficiency double thermP Unitless Parameter for calculating aerodynamic efficiency
static char exertType[4][MAX_NAME]   Type of physical activity static double exertTime[4] Hours Length of time spent doing each activity
Methods associated with the class Units Comments Methods associated with the class Units Comments
calc_aRp(double _a, double _r, double _p)   Calculates a*(R^p) calcEta()   Calculates filtration efficiency
calcXi(double prevPhi)   Ratio of this region's phi to the previous region's phi calcDE(double prevDE, double prevEta)   Calculates deposition fraction

Class: FilterX
Variables associated with the class Units Comments Variables associated with the class Units Comments
double aeroEta   Aerodynamic deposition efficiency double thermaEta   Thermodynamic deposition efficiency
Methods associated with the class Units Comments Methods associated with the class Units Comments
void FilterX::calcA()     void FilterX::calcR()    
void FilterX::calcP()     double FilterX::calcEta()    
double FilterX::calcPhi(double prevPhi)     double FilterX::calcDE(double prevEta)    
doulbe FilterX::calcDE(double prevDE, double prevEta)          

Main Function
Variables associated with the class Units Comments Variables associated with the class Units Comments
double totalDE[h] Unitless Accumulated deposition in each of the compartments (ET1, ET2, BB, bb, and AI) bxt m^3 Breathing rate for the particular activity * duration
_prevEtaNO Unitless   _prevEtaMO Unitless  
_prevPhiNO Unitless   _prevPhiMO Unitless  
_prevEtaN Unitless At each filter stage, the previous value of eta _currEtaN Unitless At each filter stage, the current value of eta
_prevPhiN Unitless At each filter stage, the previous value of phi _currPhiN Unitless At each filter stage, the current value of phi
_prevDeN Unitless At each filter stage, the previous value of DE _currDeN Unitless At each filter stage, the current value of DE
Methods associated with the class Units Comments Methods associated with the class Units Comments
void calcFn(Person *person, int num) unitless Gives fraction of breathe going thourgh nasal passage double combineN(double de, Person *person, int n)    
double combineM(double de, Person *person, int n)     void compDep(Particle *dust, double dep[])    
getData1(_body, fio, x)   _body is a pointer to the object, body, of the class Person. fio is the stream open for reading. double x[NUM_DATA} getData2(_body, fio, x)