TPCCLIB
Loading...
Searching...
No Matches
o2.c File Reference

Default parameters and helper functions for oxygen metabolism. More...

#include "libtpcmodel.h"

Go to the source code of this file.

Functions

double mo2k1k2 (const double OER, const double SaO2, const double p50Hb, const double p50Mb, const double nHb, const double cHb, const double cMb, const int verbose)
 Calculates K1/k2 ratio for [O-15]O2 in muscle, based on OER.
 
double mo2pO2 (const double OER, const double K1k2, const double SaO2, const double p50Mb, const double cHb, const double cMb, const int verbose)
 

Variables

double SaO2 =0.97
 
double p50Hb =3.6
 
double p50Mb =0.319
 
double nHb =2.7
 
double cHb =150.0
 
double cMb =4.7
 

Detailed Description

Default parameters and helper functions for oxygen metabolism.

Author
Vesa Oikonen

Definition in file o2.c.

Function Documentation

◆ mo2k1k2()

double mo2k1k2 ( const double OER,
const double SaO2,
const double p50Hb,
const double p50Mb,
const double nHb,
const double cHb,
const double cMb,
const int verbose )

Calculates K1/k2 ratio for [O-15]O2 in muscle, based on OER.

Returns
Returns K1/k2.
Parameters
OEROxygen extraction ratio; assumptions hold only in the range OER=0.2-0.9
SaO2Arterial oxygen saturation fraction; you can enter DEFAULT_SAO2
p50HbHalf-saturation pressure p50 (kPa) for hemoglobin; you can enter DEFAULT_P50HB
p50MbHalf-saturation pressure p50 (kPa) p50 for myoglobin; you can enter DEFAULT_P50MB
nHbHill coefficient n for hemoglobin; you can enter DEFAULT_NHB
cHbHemoglobin concentration in blood (mg/g); you can enter DEFAULT_CHB
cMbMyoglobin concentration in muscle (mg/g); you can enter DEFAULT_CMB
verboseVerbose level; if zero, then nothing is printed into stdout or stderr

Definition at line 29 of file o2.c.

48 {
49 if(verbose>0) printf("mo2k1k2()\n");
50 if(verbose>1) {
51 printf("input:\n");
52 printf(" OER := %g\n", OER);
53 printf(" SaO2 := %g\n", SaO2);
54 printf(" p50Hb := %g\n", p50Hb);
55 printf(" p50Mb := %g\n", p50Mb);
56 printf(" nHb := %g\n", nHb);
57 printf(" cHb := %g\n", cHb);
58 printf(" cMb := %g\n", cMb);
59 }
60 double SHb=(1.0-OER)*SaO2;
61 if(verbose>2) printf("SHb := %g\n", SHb);
62
63 double pO2=p50Hb*pow(SHb/(1.0-SHb), 1.0/nHb);
64 if(verbose>2) printf("pO2 := %g\n", pO2);
65
66 double SMb=pO2/(pO2+p50Mb);
67 if(verbose>2) printf("SMb := %g\n", SMb);
68
69 double rO2=cMb/cHb;
70 if(verbose>2) printf("rO2 := %g\n", rO2);
71
72 double k1k2=rO2*(SMb/SHb);
73 if(verbose>1) printf("K1/k2 := %g\n", k1k2);
74
75 return(k1k2);
76}
double p50Mb
Definition o2.c:16
double nHb
Definition o2.c:18
double p50Hb
Definition o2.c:14
double cHb
Definition o2.c:20
double SaO2
Definition o2.c:12
double cMb
Definition o2.c:22

◆ mo2pO2()

double mo2pO2 ( const double OER,
const double K1k2,
const double SaO2,
const double p50Mb,
const double cHb,
const double cMb,
const int verbose )

Calculates the partial pressure of oxygen in muscle, based on OER and K1/k2.

Returns
Returns pO2 (kPa).
Parameters
OEROxygen extraction ratio; assumptions hold only in the range OER=0.2-0.9
K1k2K1/k2 ratio for [O-15]O2
SaO2Arterial oxygen saturation fraction; you can enter DEFAULT_SAO2
p50MbHalf-saturation pressure p50 (kPa) p50 for myoglobin; you can enter DEFAULT_P50MB
cHbHemoglobin concentration in blood (mg/g); you can enter DEFAULT_CHB
cMbMyoglobin concentration in muscle (mg/g); you can enter DEFAULT_CMB
verboseVerbose level; if zero, then nothing is printed into stdout or stderr

Definition at line 83 of file o2.c.

99 {
100 if(verbose>0) printf("mo2pO2()\n");
101 if(verbose>1) {
102 printf("input:\n");
103 printf(" OER := %g\n", OER);
104 printf(" K1/k2 := %g\n", K1k2);
105 printf(" SaO2 := %g\n", SaO2);
106 printf(" cHb := %g\n", cHb);
107 printf(" cMb := %g\n", cMb);
108 printf(" p50Mb := %g\n", p50Mb);
109 }
110 double SHb=(1.0-OER)*SaO2;
111 if(verbose>2) printf("SHb := %g\n", SHb);
112
113 double rO2=cMb/cHb;
114 if(verbose>2) printf("rO2 := %g\n", rO2);
115
116 double SMb=K1k2*(1.0-OER)*SaO2/rO2;
117 if(verbose>2) printf("SMb := %g\n", SMb);
118
119 double pO2=SMb*p50Mb/(1.0-SMb);
120 if(verbose>1) printf("pO2 := %g\n", pO2);
121
122 return(pO2);
123}

Variable Documentation

◆ cHb

double cHb =150.0

Hemoglobin concentration in blood (mg/g)

Definition at line 20 of file o2.c.

Referenced by mo2k1k2(), and mo2pO2().

◆ cMb

double cMb =4.7

Myoglobin concentration in muscle (mg/g)

Definition at line 22 of file o2.c.

Referenced by mo2k1k2(), and mo2pO2().

◆ nHb

double nHb =2.7

Hill coefficient n for hemoglobin

Definition at line 18 of file o2.c.

Referenced by mo2k1k2().

◆ p50Hb

double p50Hb =3.6

Half-saturation pressure p50 (kPa) for hemoglobin

Definition at line 14 of file o2.c.

Referenced by mo2k1k2().

◆ p50Mb

double p50Mb =0.319

Half-saturation pressure p50 (kPa) p50 for myoglobin

Definition at line 16 of file o2.c.

Referenced by mo2k1k2(), and mo2pO2().

◆ SaO2

double SaO2 =0.97

Arterial oxygen saturation fraction

Definition at line 12 of file o2.c.

Referenced by mo2k1k2(), and mo2pO2().