#include <Energy.h>

Static Public Member Functions | |
static size_t | TypeHash () |
static constexpr char const *const | TypeTag () |
![]() | |
static size_t | TypeHash () |
static constexpr char const *const | TypeTag () |
![]() | |
static const SEScalar * | GetScalar (const char *name, std::vector< SESystem * > *systems) |
static const SEScalar * | GetScalar (const std::string &name, std::vector< SESystem * > *systems) |
Protected Member Functions | |
Energy (BioGears &bg) | |
virtual void | Unload (CDM::BioGearsEnergySystemData &data) const |
void | SetUp () override |
Initializes the energy specific quantities. More... | |
void | ManageEnergyDeficit () |
Tracks gap in energy supply / demand due to pathophysiological states. More... | |
void | ProcessOverride () |
determine override requirements from user defined inputs More... | |
void | OverrideControlLoop () |
![]() | |
void | Unload (CDM::EnergySystemData &data) const |
![]() | |
void | Unload (CDM::SystemData &data) const |
![]() | |
virtual void | Debug (const char *msg, const char *origin="") const |
virtual void | Debug (const std::string &msg, const std::string &origin=empty) const |
virtual void | Debug (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Info (const char *msg, const char *origin="") const |
virtual void | Info (const std::string &msg, const std::string &origin=empty) const |
virtual void | Info (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Warning (const char *msg, const char *origin="") const |
virtual void | Warning (const std::string &msg, const std::string &origin=empty) const |
virtual void | Warning (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Error (const char *msg, const char *origin="") const |
virtual void | Error (const std::string msg, const std::string origin=empty) const |
virtual void | Error (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Fatal (const char *msg, const char *origin="") const |
virtual void | Fatal (const std::string &msg, const std::string &origin=empty) const |
virtual void | Fatal (std::ostream &msg, const std::string &origin=empty) const |
![]() | |
virtual void | LoadState () |
Static Protected Member Functions | |
static auto | make_unique (BioGears &bg) -> std::unique_ptr< Energy > |
Protected Attributes | |
BioGears & | m_data |
![]() | |
SEScalarFraction * | m_AchievedExerciseLevel |
SEScalarMass * | m_ChlorideLostToSweat |
SEScalarTemperature * | m_CoreTemperature |
SEScalarAmountPerTime * | m_CreatinineProductionRate |
SEScalarPower * | m_EnergyDeficit |
SEScalarPower * | m_ExerciseEnergyDemand |
SEScalarPressure * | m_ExerciseMeanArterialPressureDelta |
SEScalarFraction * | m_FatigueLevel |
SEScalarAmountPerTime * | m_LactateProductionRate |
SEScalarMass * | m_PotassiumLostToSweat |
SEScalarTemperature * | m_SkinTemperature |
SEScalarMass * | m_SodiumLostToSweat |
SEScalarMassPerTime * | m_SweatRate |
SEScalarPower * | m_TotalMetabolicRate |
SEScalarFraction * | m_TotalWorkRateLevel |
![]() | |
std::stringstream | m_ss |
![]() | |
Logger * | m_Logger |
Private Member Functions | |
void | CalculateMetabolicHeatGeneration () |
Calculates the metabolic rate, depending on the current state of the patient. More... | |
void | CalculateSweatRate () |
Calculates the sweat rate if the core temperature is too high. More... | |
void | UpdateHeatResistance () |
Updates the variable core to skin heat transfer resistance. More... | |
void | Exercise () |
The exercise function updates the patient's metabolic rate if the exercise action is present. More... | |
void | CalculateBasalMetabolicRate () |
Calculates the basal metabolic rate from the Harris-Benedict formula. More... | |
void | CalculateVitalSigns () |
Checks the patient's thermal and metabolic state. More... | |
Friends | |
class | BioGears |
class | BioGearsEngineTest |
Additional Inherited Members | |
![]() | |
static const std::string | empty |
static const char * | empty_cStr |
Detailed Description
Constructor & Destructor Documentation
|
protected |
|
override |
Member Function Documentation
|
overridevirtual |
Notify systems that steady state has been achieved.
Reimplemented from biogears::BioGearsSystem.
|
private |
Calculates the basal metabolic rate from the Harris-Benedict formula.
The Harris-Benedict formula uses the patient height, weight age and sex to determine the basal metabolic requirements.
|
private |
Calculates the metabolic rate, depending on the current state of the patient.
The metabolic rate is dictated by the current state of the core temperature. This function includes states of increased metabolic rate due to shivering or severe hyperthermia. Additionally, an extreme drop in core temperature leads to decreasing metabolic rate. If the core temperature does not meet any of the criteria for increases/decreases, the metabolic rate will be calculated as the basal metabolic rate.
[herman2008physics]
|
private |
Calculates the sweat rate if the core temperature is too high.
The sweat rate is calculated from a core temperature control function. The mass lost due to sweating is accounted for and a flow source from the skin extravascular to ground path is updated to ensure fluid loss
Determine the maximum evaporative capacity to limit the amount of cooling due to sweat on the patient [265]
- Todo:
- Convert to sweat density once specific gravity calculation is in
[herman2008physics]
|
private |
Checks the patient's thermal and metabolic state.
The core and skin temperatures are recorded in this function. In addition, the current metabolic state of the patient may trigger the following events: hypothermia, hyperthermia, and metabolic acidosis/alkalosis. These events are only triggered if the current state falls within the criteria of the specific event
[Stocks2004HumanPhysiologicalResponseCold]
[mallet2001hypothermia]
- Event:
- Patient: Core temperature has fallen below 35 degrees Celsius. Patient is hypothermic.
- Irreversible:
- State: Core temperature has fallen below 20 degrees Celsius.
- Event:
- Patient: Core temperature has exceeded 38.8 degrees Celsius. Patient is hyperthermic.
- Todo:
- Move to blood chemistry
- Event:
- The patient is in a state of metabolic acidosis
- Irreversible:
- State: arterial blood pH has dropped below 6.5.
- Event:
- The patient has exited the state state of metabolic acidosis
- Event:
- The patient is in a state of metabolic alkalosis
- Irreversible:
- State: arterial blood pH has increased above 8.5.
- Event:
- The patient has exited the state of metabolic alkalosis
|
inlineoverridevirtual |
Reimplemented from biogears::SEEnergySystem.
|
overridevirtual |
Reimplemented from biogears::SEEnergySystem.
|
private |
The exercise function updates the patient's metabolic rate if the exercise action is present.
The exercise function adds to the body's basal metabolic rate a value that is specified by the exercise action. The actual metabolic rate is ramped up to this value. The body's actual work rate is determined by the nutrients and oxygen available. Exercise-related outputs are set in Tissue::CalculateMetabolicConsumptionAndProduction().
|
inlineoverridevirtual |
Reimplemented from biogears::SEEnergySystem.
|
overridevirtual |
Initializes system properties to valid homeostatic values.
[herman2008physics]
Reimplemented from biogears::BioGearsSystem.
|
virtual |
|
protected |
Tracks gap in energy supply / demand due to pathophysiological states.
Pathophysiology such as hypoperfusion secondary to hemorrhage or sepsis cause the tissues to extract more oxygen from the bloodstream to make up for mitochondrial dysfunction and increased capillary diffusion distance. Since we do not currently model this mechanistically, we track a pathophysiological energy debt that we use to force the tissue to consume more O2 and pull it from the vascular space, giving symptoms such as decreased pH and O2 saturation. Currently, only triggered by hemorrhage. Will add sepsis, burn wound.
|
protected |
|
overridevirtual |
Updates the parameters for the temperature circuit.
Updates the resulting heat transfer rates, temperatures and nodal heat values; effectively moving the next values to the current ones before time can be advanced.
Implements biogears::BioGearsSystem.
|
overridevirtual |
Prepares the energy system for the circuit solver.
The PreProcess function performs function in preparation to update the thermal circuit. It also processes energy-related actions (exercise) and computes a sweat rate.
Implements biogears::BioGearsSystem.
|
overridevirtual |
Processes the temperature circuit and calculates extravascular transport.
The Process function solves the temperature circuit for all path heat transfer rates and nodal temperatures. Additionally, the process function also initiates the flow transport of the metabolic substance quantities from the vascular to extravascular space. After this is complete, the vital signs of the patient are updated with regards to the new state.
Implements biogears::BioGearsSystem.
|
protected |
determine override requirements from user defined inputs
User specified override outputs that are specific to the cardiovascular system are implemented here. If overrides aren't present for this system then this function will not be called during preprocess.
|
overrideprotectedvirtual |
Initializes the energy specific quantities.
The energy local member variables, system level quantities, and metabolic-specific substance quantities are initialized here. These variables are used in the numerous metabolic and thermal regulation functions contained in the energy system. Encompassing them in this function allows for easy initialization either at the beginning of a simulation or after a system crash
Implements biogears::BioGearsSystem.
|
inlinestatic |
|
inlinestatic |
|
overridevirtual |
Reimplemented from biogears::SEEnergySystem.
|
protectedvirtual |
|
private |
Updates the variable core to skin heat transfer resistance.
The variable core to skin heat transfer resistance is updated here according to the inverse of the skin blood flow.
Friends And Related Function Documentation
|
friend |
|
friend |
Member Data Documentation
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |