Hi Pulse Community,
A new version of Pulse is coming out towards the end of this month.
We have added a new BVM system and our Mechanical Ventilator has gone through an extensive validation phase and is ready for the community to use. We also are finalizing a few new drugs, and we have also upgraded to using C++17.
We will bump up our Major version to 4 with this release.
In general, the API is staying the same, but we are really striving to have our C++/C#/Java/Python APIs consistent, so there may be a few odds and ends updated that will require a code change.
The biggest contributing factor to 4.x API changes was in finalizing our architectural support for different physiology engines. We started this move when we began 3.x, and we now have finalized those changes with the implementation of a second engine. There is a bit of reshuffling of include files from the original 3.x design, but overall multiple engine support is working pretty well.
Our new engine is the Ventilation Mechanics engine. This engine is not a whole body physiology engine, but only encapsulates our respiratory and mechanical ventilation systems. Creating this engine helped us to exercise our ability to break up, extend, and group various model implementations into a specific physiology engine. This break up also helped us to validate our improved respiratory and ventilation models.
We don’t anticipate the ventilation mechanics engine being used by applications, but this framework will serve as the foundation for future whole body physiology engines, such as a pediatric engine. All of our supported languages support the ability to specify the back end engine model. You still use Pulse the same way, but now when you instantiate an engine, you can specify the back end physiology models to use.
PulseEngine pulse = new PulseEngine(eModelType.HumanAdultWholeBody);
PulseEngine pulse = new PulseEngine(eModelType.HumanAdultVentilationMechanics);
(default is the HumanAdultWholeBody engine models)
We are still adding in some namespaces and updating Java and Python interfaces, but if you have the time, check out our 4.x branch and let us know if you run into any issues or have any suggestions.