More...

#include <Endocrine.h>

Inherits SEEndocrineSystem, PulseEndocrineSystem, and PulseSystem.

Public Member Functions

virtual ~Endocrine ()
 
void Clear ()
 
- Public Member Functions inherited from SEEndocrineSystem
 SEEndocrineSystem (Logger *logger)
 
virtual ~SEEndocrineSystem ()
 
virtual const SEScalarGetScalar (const std::string &name)
 
virtual bool HasInsulinSynthesisRate () const
 
virtual SEScalarAmountPerTimeGetInsulinSynthesisRate ()
 
virtual double GetInsulinSynthesisRate (const AmountPerTimeUnit &unit) const
 
- Public Member Functions inherited from SESystem
 SESystem (Logger *logger)
 
virtual ~SESystem ()
 
- Public Member Functions inherited from Loggable
 Loggable ()
 
 Loggable (Logger *log)
 
virtual ~Loggable ()
 
virtual LoggerGetLogger () const
 
virtual void Debug (std::string const &msg, std::string const &origin=empty) const
 
virtual void Debug (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Debug (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Info (std::string const &msg, std::string const &origin=empty) const
 
virtual void Info (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (const std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::string const &msg, std::string const &origin=empty) const
 
virtual void Warning (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Error (std::string const &msg, std::string const &origin=empty) const
 
virtual void Error (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Error (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::string const &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::ostream &msg, std::string const &origin=empty) const
 

Protected Member Functions

 Endocrine (PulseController &data)
 
void Initialize ()
 Initializes system properties to valid homeostatic values. More...
 
void SetUp ()
 
void AtSteadyState ()
 Notify systems that steady state has been achieved. More...
 
void PreProcess ()
 
void Process ()
 Endocrine process function. More...
 
void PostProcess ()
 
void SynthesizeInsulin ()
 Calculate the rate of insulin production. More...
 
void ReleaseEpinephrine ()
 Release epinephrine into the bloodstream and handle sympathetic responses. More...
 

Protected Attributes

PulseControllerm_data
 
double m_dt_s
 
double m_insulinMolarMass_g_Per_mol
 
SELiquidSubstanceQuantitym_aortaGlucose = nullptr
 
SELiquidSubstanceQuantitym_aortaEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_rKidneyEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_lKidneyEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_splanchnicInsulin = nullptr
 
- Protected Attributes inherited from SEEndocrineSystem
SEScalarAmountPerTimem_InsulinSynthesisRate
 
- Protected Attributes inherited from SESystem
std::stringstream m_ss
 
- Protected Attributes inherited from Loggable
Loggerm_Logger
 

Friends

class PBPulsePhysiology
 
class PulseController
 
class PulseEngineTest
 

Additional Inherited Members

- Static Public Member Functions inherited from SESystem
static const SEScalarGetScalar (const std::string &name, std::vector< SESystem *> *systems)
 
- Static Public Attributes inherited from Loggable
static const std::string empty
 

Detailed Description

The PulseŽ endocrine system is a rudimentary system with only one stimulus (increased carbon dioxide partial pressure in the blood stream) and two hormones (epinephrine and norepinephrine). The release of the hormones in response to the stimuli to represent the response of the sympathetic nervous system. In the future, additional stimuli and additional hormones will be added.

Constructor & Destructor Documentation

◆ Endocrine()

Endocrine::Endocrine ( PulseController data)
protected

◆ ~Endocrine()

Endocrine::~Endocrine ( )
virtual

Member Function Documentation

◆ AtSteadyState()

void Endocrine::AtSteadyState ( )
protectedvirtual

Notify systems that steady state has been achieved.

Reimplemented from PulseSystem.

◆ Clear()

void Endocrine::Clear ( )
virtual

Reimplemented from SEEndocrineSystem.

◆ Initialize()

void Endocrine::Initialize ( )
protectedvirtual

Initializes system properties to valid homeostatic values.

Reimplemented from PulseSystem.

◆ PostProcess()

void Endocrine::PostProcess ( )
inlineprotectedvirtual

Implements PulseSystem.

◆ PreProcess()

void Endocrine::PreProcess ( )
inlineprotectedvirtual

Implements PulseSystem.

◆ Process()

void Endocrine::Process ( )
protectedvirtual

Endocrine process function.

Currently, only two hormones exists in the Pulse system: epinephrine and insulin. If the metabolic rate rises above the basal rate, epinephrine is released. This is meant to simulate a sympathetic nervous system response. The masses of the hormones are increased in the kidneys' efferent arterioles. The hormones will then circulate using the transport and substances methodology.

Implements PulseSystem.

◆ ReleaseEpinephrine()

void Endocrine::ReleaseEpinephrine ( )
protected

Release epinephrine into the bloodstream and handle sympathetic responses.

Epinephrine is released at a basal rate of .18 ug/min [16] from the kidneys. During certain events, the release rate of epinephrine increases. This is sympathetic response.

◆ SetUp()

void Endocrine::SetUp ( )
protectedvirtual

Implements PulseSystem.

◆ SynthesizeInsulin()

void Endocrine::SynthesizeInsulin ( )
protected

Calculate the rate of insulin production.

The insulin production rate is calculated based on the relevant range of glucose and instantaneous concentration of glucose in the aorta (representative of the body). The equation for insulin production is from [tolic2000insulin]

Friends And Related Function Documentation

◆ PBPulsePhysiology

friend class PBPulsePhysiology
friend

◆ PulseController

friend class PulseController
friend

◆ PulseEngineTest

friend class PulseEngineTest
friend

Member Data Documentation

◆ m_aortaEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_aortaEpinephrine = nullptr
protected

◆ m_aortaGlucose

SELiquidSubstanceQuantity* Endocrine::m_aortaGlucose = nullptr
protected

◆ m_data

PulseController& Endocrine::m_data
protected

◆ m_dt_s

double Endocrine::m_dt_s
protected

◆ m_insulinMolarMass_g_Per_mol

double Endocrine::m_insulinMolarMass_g_Per_mol
protected

◆ m_lKidneyEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_lKidneyEpinephrine = nullptr
protected

◆ m_rKidneyEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_rKidneyEpinephrine = nullptr
protected

◆ m_splanchnicInsulin

SELiquidSubstanceQuantity* Endocrine::m_splanchnicInsulin = nullptr
protected