Kitware
Open Source
Toggle navigation
About
Pulse in Action
Resources
Publications
Documentation
Blog
Forums
Wiki
Newsletter
Methodology
Anesthesia Machine
Blood Chemistry
Bag Valve Mask
Cardiovascular
Circuit
Drugs
Endocrine
Energy
Environment
Gastrointestinal
Inhaler
Mechancial Ventilator
Nervous
Patient
Renal
Respiratory
Substance Transport
System
Tissue
Downloads
Contact Kitware
Pulse Support
pulse
engine
src
cpp
engine
common
system
Model.h
1
/* Distributed under the Apache License, Version 2.0.
2
See accompanying NOTICE file for details.*/
3
4
#pragma once
5
6
#include "engine/CommonDefs.h"
7
#include "engine/common/controller/Controller.h"
8
9
namespace
pulse
10
{
11
class
Data;
15
class
PULSE_DECL Model
16
{
17
public
:
18
Model(Data& data) : m_data(data) {}
19
virtual
~Model() =
default
;
20
21
virtual
void
Clear() = 0;
22
24
virtual
void
Initialize() { SetUp(); }
// NOT called when loading a state
25
virtual
void
SetUp() = 0;
// Called after Initialize if stablizing, or after serialization if loading in a state
26
28
virtual
void
AtSteadyState() = 0;
29
virtual
void
PreProcess() = 0;
30
// This is where any circuits would be solved or graphs transported
31
virtual
void
Process(
bool
solve_and_transport =
true
) = 0;
32
virtual
void
PostProcess(
bool
solve_and_transport =
true
) = 0;
33
34
protected
:
35
Data& m_data;
36
};
37
END_NAMESPACE
pulse
Definition:
Logger.h:14
Distributed under the
Apache License, Version 2.0
.
See accompanying
NOTICE
file for details.