34#include <protocol.hpp>
35#include <nonstd/expected.hpp>
37namespace models{
namespace bmi{
namespace protocols{
38 using nonstd::expected;
99 auto run(
const ModelPtr& model,
const Context& ctx)
const -> expected<void, ProtocolError>
override;
Definition protocol.hpp:92
Definition mass_balance.hpp:54
nsel_NODISCARD auto check_support(const ModelPtr &model) -> expected< void, ProtocolError > override
Check if the mass balance protocol is supported by the model.
Definition mass_balance.cpp:91
auto run(const ModelPtr &model, const Context &ctx) const -> expected< void, ProtocolError > override
Run the mass balance protocol.
Definition mass_balance.cpp:39
bool is_fatal
Definition mass_balance.hpp:151
bool supported
Definition mass_balance.hpp:148
double tolerance
Definition mass_balance.hpp:144
bool check
Definition mass_balance.hpp:150
virtual ~NgenMassBalance() override
bool is_supported() const override final
Whether the protocol is supported by the model.
Definition mass_balance.cpp:191
NgenMassBalance()
Construct a new, default Ngen Mass Balance object.
Definition mass_balance.cpp:35
int frequency
Definition mass_balance.hpp:146
auto initialize(const ModelPtr &model, const Properties &properties) -> expected< void, ProtocolError > override
Check the model for support and initialize the mass balance protocol from the given properties.
Definition mass_balance.cpp:138
constexpr const char *const FREQUENCY_KEY
Definition mass_balance.hpp:52
constexpr const char *const CHECK_KEY
Definition mass_balance.hpp:51
constexpr const char *const STORED_MASS_NAME
Definition mass_balance.hpp:42
constexpr const char *const LEAKED_MASS_NAME
Definition mass_balance.hpp:43
std::shared_ptr< models::bmi::Bmi_Adapter > ModelPtr
Definition protocol.hpp:89
geojson::PropertyMap Properties
Definition protocol.hpp:90
constexpr const char *const OUTPUT_MASS_NAME
Definition mass_balance.hpp:41
constexpr const char *const FATAL_KEY
Definition mass_balance.hpp:50
constexpr const char *const CONFIGURATION_KEY
Configuration keys for defining configurable properties of the protocol.
Definition mass_balance.hpp:47
constexpr const char *const INPUT_MASS_NAME
Mass balance variable names.
Definition mass_balance.hpp:40
constexpr const char *const TOLERANCE_KEY
Definition mass_balance.hpp:49
Definition AbstractCLibBmiAdapter.hpp:6
Definition protocol.hpp:82