/* * Guyton Model: thirst_drinking_and_salt_appetite * * Model Status * * This CellML model has been validated. Due to the differences * between procedural code (in this case C-code) and declarative * languages (CellML), some aspects of the original model were * not able to be encapsulated by the CellML model (such as the * damping of variables). This may affect the transient behaviour * of the model, however the steady-state behaviour would remain * the same. The equations in this file and the steady-state output * from the model conform to the results from the MODSIM program. * * Model Structure * * Arthur Guyton (1919-2003) was an American physiologist who became * famous for his 1950s experiments in which he studied the physiology * of cardiac output and its relationship with the peripheral circulation. * The results of these experiments challenged the conventional * wisdom that it was the heart itself that controlled cardiac * output. Instead Guyton demonstrated that it was the need of * the body tissues for oxygen which was the real regulator of * cardiac output. The "Guyton Curves" describe the relationship * between right atrial pressures and cardiac output, and they * form a foundation for understanding the physiology of circulation. * * The Guyton model of fluid, electrolyte, and circulatory regulation * is an extensive mathematical model of human circulatory physiology, * capable of simulating a variety of experimental conditions, * and contains a number of linked subsystems relating to circulation * and its neuroendocrine control. * * This is a CellML translation of the Guyton model of the regulation * of the circulatory system. The complete model consists of separate * modules each of which characterise a separate physiological * subsystems. The Circulation Dynamics is the primary system, * to which other modules/blocks are connected. The other modules * characterise the dynamics of the kidney, electrolytes and cell * water, thirst and drinking, hormone regulation, autonomic regulation, * cardiovascular system etc, and these feedback on the central * circulation model. The CellML code in these modules is based * on the C code from the programme C-MODSIM created by Dr Jean-Pierre * Montani. * * This particular CellML model describes the mechanisms underlying * salt appetite and thirst. The salt appetite is considered in * this model to be related to the adequacy of body metabolism, * as measured by the PO2 level in the non-muscle tissue cells * (POT). Also when the concentration of angiotensin increases * (ANM), this too increases salt intake. For instance in circulatory * shock, when the adequacy of metabolism falls, the person develops * a salt appetite. Due to a lack of information, no control function * of salt concentration per se has been assumed, merely that when * the body salt falls, circulatory effectiveness falls, angiotensin * increases, and a salt appetite develops. Regarding thirst, three * separate factors are assumed to drive the thirst mechanism: * first, the concentration of antidiuretic hormone, which in turn * is driven by changes in electrolyte composition (as detailed * in another model); second, the effect of angiotensin on thirst, * and; thirdly, the effect of the salt appetite stimulation on * thirst. * * model diagram * * [[Image file: full_model.png]] * * A systems analysis diagram for the full Guyton model describing * circulation regulation. * * model diagram * * [[Image file: thirst.png]] * * A schematic diagram of the components and processes described * in the current CellML model. * * There are several publications referring to the Guyton model. * One of these papers is cited below: * * Circulation: Overall Regulation, A.C. Guyton, T.G. Coleman, * and H.J. Granger, 1972, Annual Review of Physiology , 34, 13-44. * PubMed ID: 4334846 */ import nsrunit; unit conversion on; unit minute=60 second^1; unit per_minute=.01666667 second^(-1); //Warning: unit mmHg_ renamed from mmHg, as the latter is predefined in JSim with different fundamental units. unit mmHg_=133.322 kilogram^1*meter^(-1)*second^(-2); unit per_mmHg2=5.6259564E-5 kilogram^(-2)*meter^2*second^4; unit monovalent_mEq=.001 mole^1; unit monovalent_mEq_per_minute=1.6666667E-5 second^(-1)*mole^1; unit monovalent_mEq_per_litre=1 meter^(-3)*mole^1; unit monovalent_mEq_per_litre_per_minute=.01666667 meter^(-3)*second^(-1)*mole^1; unit litre2_per_monovalent_mEq_per_minute=1.6666667E-5 meter^6*second^(-1)*mole^(-1); unit L_per_minute=1.6666667E-5 meter^3*second^(-1); unit L_per_minute_per_mmHg=1.2501063E-7 kilogram^(-1)*meter^4*second^1; math main { realDomain time minute; time.min=0; extern time.max; extern time.delta; real ADHC dimensionless; ADHC=1.0; real ANM dimensionless; ANM=0.987545; real POT mmHg_; POT=35.1148; real STH dimensionless; real ANMSLT dimensionless; ANMSLT=2; real Z10 mmHg_; Z10=45; real Z11 per_mmHg2; Z11=0.01; real ANMSML dimensionless; real STH1 dimensionless; real AHCM dimensionless; real AHTHM dimensionless; AHTHM=2; real ANMTH dimensionless; real ANMTM dimensionless; ANMTM=1.5; real TVD(time) L_per_minute; when(time=time.min) TVD=0.000980838; real DR L_per_minute; DR=0; real TVDDL minute; TVDDL=30; real AHTH dimensionless; real AHTH1 dimensionless; real TVZ L_per_minute; real TVZ1 L_per_minute; // // // ANMSML=((ANM-1)*ANMSLT+1); STH1=((Z10-POT)^2*Z11*ANMSML); STH=(if (STH1<.8) .8 else if (STH1>8) 8 else STH1); // AHCM=((ADHC-1)*AHTHM+1); // ANMTH=((ANM-1)*ANMTM*.001); // AHTH1=(AHCM*STH*.001); AHTH=(if (AHTH1<0) 0 else AHTH1); TVZ1=((ANMTH+AHTH)*(1 L_per_minute)); TVZ=(if (TVZ1<(0 L_per_minute)) (0 L_per_minute) else TVZ1); TVD:time=((TVZ+DR-TVD)/TVDDL); // }