NGen
Loading...
Searching...
No Matches
models::bmi::AbstractCLibBmiAdapter Class Referenceabstract

#include <AbstractCLibBmiAdapter.hpp>

+ Inheritance diagram for models::bmi::AbstractCLibBmiAdapter:
+ Collaboration diagram for models::bmi::AbstractCLibBmiAdapter:

Public Member Functions

 AbstractCLibBmiAdapter (const std::string &type_name, std::string library_file_path, std::string bmi_init_config, bool has_fixed_time_step, std::string registration_func)
 Main public constructor.
 
 ~AbstractCLibBmiAdapter () override
 Class destructor.
 
void Finalize () override
 Perform tear-down task for this object and its backing model.
 
virtual bool is_model_initialized ()=0
 Whether the backing model has been initialized yet.
 
double get_time_convert_factor ()
 Determine backing model's time units and return an appropriate conversion factor.
 
double convert_model_time_to_seconds (const double &model_time_val)
 Convert model time value to value in seconds.
 
double convert_seconds_to_model_time (const double &seconds_val)
 Convert a given number of seconds to equivalent in model time units.
 
virtual const std::string get_analogous_cxx_type (const std::string &external_type_name, const size_t item_size)=0
 Get the name string for the C++ type analogous to the described type in the backing model.
 
void Initialize ()
 Initialize the wrapped BMI model functionality using the value from the bmi_init_config member variable and the API's Initialize function.
 
void Initialize (std::string config_file) override
 Initialize the wrapped BMI model object using the given config file and the object's Initialize function.
 
bool isInitialized ()
 Get whether this instance has been initialized properly.
 
std::string get_model_name ()
 Get the model name.
 
virtual void Update ()=0
 
virtual void UpdateUntil (double time)=0
 
virtual std::string GetComponentName ()=0
 
virtual int GetInputItemCount ()=0
 
virtual int GetOutputItemCount ()=0
 
virtual std::vector< std::string > GetInputVarNames ()=0
 
virtual std::vector< std::string > GetOutputVarNames ()=0
 
virtual int GetVarGrid (std::string name)=0
 
virtual std::string GetVarType (std::string name)=0
 
virtual std::string GetVarUnits (std::string name)=0
 
virtual int GetVarItemsize (std::string name)=0
 
virtual int GetVarNbytes (std::string name)=0
 
virtual std::string GetVarLocation (std::string name)=0
 
virtual double GetCurrentTime ()=0
 
virtual double GetStartTime ()=0
 
virtual double GetEndTime ()=0
 
virtual std::string GetTimeUnits ()=0
 
virtual double GetTimeStep ()=0
 
virtual void GetValue (std::string name, void *dest)=0
 
virtual void * GetValuePtr (std::string name)=0
 
virtual void GetValueAtIndices (std::string name, void *dest, int *inds, int count)=0
 
virtual void SetValue (std::string name, void *src)=0
 
virtual void SetValueAtIndices (std::string name, int *inds, int count, void *src)=0
 
virtual int GetGridRank (const int grid)=0
 
virtual int GetGridSize (const int grid)=0
 
virtual std::string GetGridType (const int grid)=0
 
virtual void GetGridShape (const int grid, int *shape)=0
 
virtual void GetGridSpacing (const int grid, double *spacing)=0
 
virtual void GetGridOrigin (const int grid, double *origin)=0
 
virtual void GetGridX (const int grid, double *x)=0
 
virtual void GetGridY (const int grid, double *y)=0
 
virtual void GetGridZ (const int grid, double *z)=0
 
virtual int GetGridNodeCount (const int grid)=0
 
virtual int GetGridEdgeCount (const int grid)=0
 
virtual int GetGridFaceCount (const int grid)=0
 
virtual void GetGridEdgeNodes (const int grid, int *edge_nodes)=0
 
virtual void GetGridFaceEdges (const int grid, int *face_edges)=0
 
virtual void GetGridFaceNodes (const int grid, int *face_nodes)=0
 
virtual void GetGridNodesPerFace (const int grid, int *nodes_per_face)=0
 

Protected Member Functions

void dynamic_library_load ()
 Dynamically load and obtain this instance's handle to the shared library.
 
void * dynamic_load_symbol (const std::string &symbol_name, bool is_null_valid)
 Load and return the address of the given symbol from the loaded dynamic model shared library.
 
void * dynamic_load_symbol (const std::string &symbol_name)
 Convenience for.
 
const std::string & get_bmi_registration_function ()
 
const void * get_dyn_lib_handle ()
 
virtual void construct_and_init_backing_model ()=0
 Construct the backing BMI model object, then call its BMI-native Initialize() function.
 

Protected Attributes

std::string bmi_init_config
 Path (as a string) to the BMI config file for initializing the backing model (empty if none).
 
bool bmi_model_has_fixed_time_step = true
 Whether this particular model has a time step size that cannot be changed internally or externally.
 
double bmi_model_time_convert_factor
 Conversion factor for converting values for model time in model's unit type to equivalent in seconds.
 
std::shared_ptr< double > bmi_model_time_step_size = nullptr
 Pointer to stored time step size value of backing model, if it is fixed and has been retrieved.
 
std::string init_exception_msg
 Message from an exception (if encountered) on the first attempt to initialize the backing model.
 
std::shared_ptr< std::vector< std::string > > input_var_names
 Pointer to collection of input variable names for backing model, used by GetInputVarNames().
 
bool model_initialized = false
 Whether the backing model has been initialized yet, which is always initially false.
 
std::string model_name
 
std::shared_ptr< std::vector< std::string > > output_var_names
 Pointer to collection of output variable names for backing model, used by GetOutputVarNames().
 

Private Member Functions

void finalizeForLibAbstraction ()
 A non-virtual equivalent for the virtual.
 

Private Attributes

std::string bmi_lib_file
 Path to the BMI shared library file, for dynamic linking.
 
const std::string bmi_registration_function
 Name of the function that registers BMI struct's function pointers to the right module functions.
 
void * dyn_lib_handle = nullptr
 Handle for dynamically loaded library file.
 

Constructor & Destructor Documentation

◆ AbstractCLibBmiAdapter()

models::bmi::AbstractCLibBmiAdapter::AbstractCLibBmiAdapter ( const std::string & type_name,
std::string library_file_path,
std::string bmi_init_config,
bool has_fixed_time_step,
std::string registration_func )

Main public constructor.

Parameters
type_nameThe name of the backing BMI module/model type.
library_file_pathThe string path to the shared library file for external module.
bmi_init_configThe string path to the BMI initialization config file for the module.
has_fixed_time_stepWhether the model has a fixed time step size.
registration_funcThe name for the
See also
bmi_registration_function.
Parameters
outputThe output stream handler.

◆ ~AbstractCLibBmiAdapter()

models::bmi::AbstractCLibBmiAdapter::~AbstractCLibBmiAdapter ( )
override

Class destructor.

Note that this performs the logic in the Finalize() function for cleaning up this object and its backing BMI model.

References finalizeForLibAbstraction().

Member Function Documentation

◆ construct_and_init_backing_model()

virtual void models::bmi::Bmi_Adapter::construct_and_init_backing_model ( )
protectedpure virtualinherited

Construct the backing BMI model object, then call its BMI-native Initialize() function.

Implementations should return immediately without taking any further action if model_initialized is already true.

The call to the BMI native Initialize(string) should pass the value stored in bmi_init_config.

Implemented in models::bmi::Bmi_C_Adapter, and models::bmi::Bmi_Cpp_Adapter.

Referenced by models::bmi::Bmi_Adapter::Initialize().

◆ convert_model_time_to_seconds()

double models::bmi::Bmi_Adapter::convert_model_time_to_seconds ( const double & model_time_val)
inherited

Convert model time value to value in seconds.

Performs necessary lookup and conversion of some given model time value - as from GetCurrentTime() or GetStartTime() - and returns the equivalent value when represented in seconds.

Parameters
model_time_valArbitrary model time value in units provided by GetTimeUnits()
Returns
Equivalent model time value to value in seconds.

References models::bmi::Bmi_Adapter::bmi_model_time_convert_factor.

Referenced by realization::Bmi_C_Formulation::convert_model_time(), and realization::Bmi_Cpp_Formulation::convert_model_time().

◆ convert_seconds_to_model_time()

double models::bmi::Bmi_Adapter::convert_seconds_to_model_time ( const double & seconds_val)
inherited

Convert a given number of seconds to equivalent in model time units.

Parameters
seconds_val
Returns

References models::bmi::Bmi_Adapter::bmi_model_time_convert_factor.

Referenced by realization::Bmi_Module_Formulation::get_response().

◆ dynamic_library_load()

void models::bmi::AbstractCLibBmiAdapter::dynamic_library_load ( )
protected

◆ dynamic_load_symbol() [1/2]

void * models::bmi::AbstractCLibBmiAdapter::dynamic_load_symbol ( const std::string & symbol_name)
inlineprotected

Convenience for.

See also
dynamic_load_symbol(std::string, bool) where the symbol address must be found.

This serves as a convenience overload for the function of the same name, in cases when a sought symbol must be found and the return of a null address is not valid.

Parameters
symbol_nameThe name of the symbol to load.
Returns
A void pointer to the address of the desired symbol in memory.
Exceptions
``std::runtime_error``If there is not a valid handle already to the shared library.
``::external::ExternalIntegrationException``If symbol could not be found for the shared library.
See also
dynamic_load_symbol(std::string, bool)

References dynamic_load_symbol().

◆ dynamic_load_symbol() [2/2]

void * models::bmi::AbstractCLibBmiAdapter::dynamic_load_symbol ( const std::string & symbol_name,
bool is_null_valid )
protected

Load and return the address of the given symbol from the loaded dynamic model shared library.

The initial primary purpose for this is to obtain a function pointer for accessing the registration function for a dynamically loaded library, as done in

See also
dynamic_library_load. Other function pointers (or pointers to other valid symbols) can also be returned.

It is possible for a symbol pointer to actually be null in some cases. However, this may not be valid in the context in which a call to this function was made. To control whether this is treated as a valid case, and thus whether null should be returned (instead of an exception thrown), there is the is_null_valid parameter. When true, a null symbol will be returned by the function.

Typically, a call to

See also
dynamic_library_load must happen (though not necessarily have completed) before a call to this function to ensure
dyn_lib_handle is set. If it is not set, an exception is thrown.
Parameters
symbol_nameThe name of the symbol to load.
is_null_validWhether a null address for the symbol is valid, as opposed to implying there was simply a failure finding it.
Returns
A void pointer to the address of the desired symbol in memory.
Exceptions
``std::runtime_error``If there is not a valid handle already to the shared library.
``::external::ExternalIntegrationException``If symbol could not be found for the shared library.

References bmi_lib_file, dyn_lib_handle, models::bmi::Bmi_Adapter::init_exception_msg, and models::bmi::Bmi_Adapter::model_name.

Referenced by dynamic_load_symbol(), models::bmi::Bmi_Cpp_Adapter::execModuleCreation(), models::bmi::Bmi_C_Adapter::execModuleRegistration(), and models::bmi::Bmi_Cpp_Adapter::finalizeForCppAdapter().

◆ Finalize()

void models::bmi::AbstractCLibBmiAdapter::Finalize ( )
overridevirtual

Perform tear-down task for this object and its backing model.

The function will simply return if either the pointer to the backing model is nullptr (e.g., after use in a move constructor) or if the model has not been initialized. Otherwise, it will execute its internal tear-down logic, including a nested call to finalize() for the backing model.

Note that because of how model initialization state is determined, regardless of whether the call to the model's finalize() function is successful (i.e., according to the function's return code value), the model will subsequently be consider not initialized. This essentially means that if backing model tear-down fails, it cannot be retried.

Exceptions
models::external::State_ExceptionThrown if nested model finalize() call is not successful.

Implements bmi::Bmi.

Reimplemented in models::bmi::Bmi_C_Adapter, and models::bmi::Bmi_Cpp_Adapter.

References finalizeForLibAbstraction().

◆ finalizeForLibAbstraction()

void models::bmi::AbstractCLibBmiAdapter::finalizeForLibAbstraction ( )
private

A non-virtual equivalent for the virtual.

See also
Finalize.

This function should be kept private. If its logic needs to be invoked externally, that should be done via the destructor or via the public interface

See also
Finalize function.

Primarily, this exists to contain the functionality appropriate for

See also
Finalize in a function that is non-virtual, and can therefore be called by a destructor.

References dyn_lib_handle.

Referenced by ~AbstractCLibBmiAdapter(), and Finalize().

◆ get_analogous_cxx_type()

virtual const std::string models::bmi::Bmi_Adapter::get_analogous_cxx_type ( const std::string & external_type_name,
const size_t item_size )
pure virtualinherited

Get the name string for the C++ type analogous to the described type in the backing model.

The supported languages for BMI modules support different types than C++ in general, but it is necessary to map "external" types to the appropriate C++ type for certain interactions; e.g., setting a variable value. This function encapsulates the translation specific to the particular language.

Note that the size of an individual item is also required, as this can vary in certain situations depending on the implementation language of a backing model.

Implementations should all throw the same type of exception (currently, std::runtime_error) if/when an unrecognized external type name parameter is provided.

Parameters
external_type_nameThe string name of some type in backing model's implementation language.
item_sizeThe particular size in bytes for items of the involved analogous types.
Returns
The name string for the C++ type analogous to the described type in the backing model.
Exceptions
std::runtime_errorIf an unrecognized external type name parameter is provided.

Implemented in models::bmi::Bmi_C_Adapter, and models::bmi::Bmi_Cpp_Adapter.

Referenced by models::bmi::GetValue(), realization::Bmi_Module_Formulation::set_initial_bmi_parameters(), and realization::Bmi_Module_Formulation::set_model_inputs_prior_to_update().

◆ get_bmi_registration_function()

const std::string & models::bmi::AbstractCLibBmiAdapter::get_bmi_registration_function ( )
inlineprotected

◆ get_dyn_lib_handle()

const void * models::bmi::AbstractCLibBmiAdapter::get_dyn_lib_handle ( )
inlineprotected

◆ get_model_name()

std::string models::bmi::Bmi_Adapter::get_model_name ( )
inherited

Get the model name.

Returns
The name of the model connected to the adapter.

References models::bmi::Bmi_Adapter::model_name.

Referenced by models::bmi::GetValue().

◆ get_time_convert_factor()

double models::bmi::Bmi_Adapter::get_time_convert_factor ( )
inherited

Determine backing model's time units and return an appropriate conversion factor.

A backing BMI model may use arbitrary units for time, but it will expose what those units are via the BMI GetTimeUnits function. This function retrieves (and interprets) its model's units and return an appropriate factor for converting its internal time values to equivalent representations within the model, and vice versa. This function complies with the BMI get_time_units standard

Exceptions
runtime_errorIf the delegated BMI functions to query time throw an exception, the exception is caught and wrapped in a runtime_error

References UnitsHelper::get_converted_value(), and bmi::Bmi::GetTimeUnits().

Referenced by models::bmi::Bmi_C_Adapter::Bmi_C_Adapter(), models::bmi::Bmi_Cpp_Adapter::Bmi_Cpp_Adapter(), and models::bmi::Bmi_Adapter::Initialize().

◆ GetComponentName()

virtual std::string bmi::Bmi::GetComponentName ( )
pure virtualinherited

◆ GetCurrentTime()

virtual double bmi::Bmi::GetCurrentTime ( )
pure virtualinherited

◆ GetEndTime()

virtual double bmi::Bmi::GetEndTime ( )
pure virtualinherited

◆ GetGridEdgeCount()

virtual int bmi::Bmi::GetGridEdgeCount ( const int grid)
pure virtualinherited

◆ GetGridEdgeNodes()

virtual void bmi::Bmi::GetGridEdgeNodes ( const int grid,
int * edge_nodes )
pure virtualinherited

◆ GetGridFaceCount()

virtual int bmi::Bmi::GetGridFaceCount ( const int grid)
pure virtualinherited

◆ GetGridFaceEdges()

virtual void bmi::Bmi::GetGridFaceEdges ( const int grid,
int * face_edges )
pure virtualinherited

◆ GetGridFaceNodes()

virtual void bmi::Bmi::GetGridFaceNodes ( const int grid,
int * face_nodes )
pure virtualinherited

◆ GetGridNodeCount()

virtual int bmi::Bmi::GetGridNodeCount ( const int grid)
pure virtualinherited

◆ GetGridNodesPerFace()

virtual void bmi::Bmi::GetGridNodesPerFace ( const int grid,
int * nodes_per_face )
pure virtualinherited

◆ GetGridOrigin()

virtual void bmi::Bmi::GetGridOrigin ( const int grid,
double * origin )
pure virtualinherited

◆ GetGridRank()

virtual int bmi::Bmi::GetGridRank ( const int grid)
pure virtualinherited

◆ GetGridShape()

virtual void bmi::Bmi::GetGridShape ( const int grid,
int * shape )
pure virtualinherited

◆ GetGridSize()

virtual int bmi::Bmi::GetGridSize ( const int grid)
pure virtualinherited

◆ GetGridSpacing()

virtual void bmi::Bmi::GetGridSpacing ( const int grid,
double * spacing )
pure virtualinherited

◆ GetGridType()

virtual std::string bmi::Bmi::GetGridType ( const int grid)
pure virtualinherited

◆ GetGridX()

virtual void bmi::Bmi::GetGridX ( const int grid,
double * x )
pure virtualinherited

◆ GetGridY()

virtual void bmi::Bmi::GetGridY ( const int grid,
double * y )
pure virtualinherited

◆ GetGridZ()

virtual void bmi::Bmi::GetGridZ ( const int grid,
double * z )
pure virtualinherited

◆ GetInputItemCount()

virtual int bmi::Bmi::GetInputItemCount ( )
pure virtualinherited

◆ GetInputVarNames()

◆ GetOutputItemCount()

virtual int bmi::Bmi::GetOutputItemCount ( )
pure virtualinherited

◆ GetOutputVarNames()

◆ GetStartTime()

virtual double bmi::Bmi::GetStartTime ( )
pure virtualinherited

◆ GetTimeStep()

virtual double bmi::Bmi::GetTimeStep ( )
pure virtualinherited

◆ GetTimeUnits()

virtual std::string bmi::Bmi::GetTimeUnits ( )
pure virtualinherited

◆ GetValue()

virtual void bmi::Bmi::GetValue ( std::string name,
void * dest )
pure virtualinherited

◆ GetValueAtIndices()

virtual void bmi::Bmi::GetValueAtIndices ( std::string name,
void * dest,
int * inds,
int count )
pure virtualinherited

◆ GetValuePtr()

virtual void * bmi::Bmi::GetValuePtr ( std::string name)
pure virtualinherited

◆ GetVarGrid()

virtual int bmi::Bmi::GetVarGrid ( std::string name)
pure virtualinherited

◆ GetVarItemsize()

◆ GetVarLocation()

virtual std::string bmi::Bmi::GetVarLocation ( std::string name)
pure virtualinherited

◆ GetVarNbytes()

◆ GetVarType()

virtual std::string bmi::Bmi::GetVarType ( std::string name)
pure virtualinherited

◆ GetVarUnits()

virtual std::string bmi::Bmi::GetVarUnits ( std::string name)
pure virtualinherited

◆ Initialize() [1/2]

void models::bmi::Bmi_Adapter::Initialize ( )
inherited

Initialize the wrapped BMI model functionality using the value from the bmi_init_config member variable and the API's Initialize function.

If no attempt to initialize the model has yet been made (i.e., model_initialized is false when this function is called), then an initialization is attempted for the model. This is handled by a nested call to the construct_and_init_backing_model function. If initialization fails, an exception will be raised, with it's message saved as part of this object's state. However, regardless of the success of initialization, model_initialized is set to true after the attempt.

Additionally, if a successful model initialization is performed, bmi_model_time_convert_factor is immediately thereafter set by passing it by reference in a call to acquire_time_conversion_factor.

If an attempt to initialize the model has already been made (i.e., model_initialized is true), this function will either simply return or will throw a runtime_error, with its message including the message of the exception from the earlier attempt.

Exceptions
runtime_errorIf called again after earlier call that resulted in an exception, or if BMI config file could not be read.
models::external::State_ExceptionIf initialize() in nested model does not return successful.

References models::bmi::Bmi_Adapter::bmi_init_config, models::bmi::Bmi_Adapter::bmi_model_time_convert_factor, models::bmi::Bmi_Adapter::construct_and_init_backing_model(), utils::FileChecker::file_is_readable(), models::bmi::Bmi_Adapter::get_time_convert_factor(), models::bmi::Bmi_Adapter::init_exception_msg, models::bmi::Bmi_Adapter::model_initialized, and models::bmi::Bmi_Adapter::model_name.

Referenced by models::bmi::Bmi_Adapter::Initialize().

◆ Initialize() [2/2]

void models::bmi::Bmi_Adapter::Initialize ( std::string config_file)
overridevirtualinherited

Initialize the wrapped BMI model object using the given config file and the object's Initialize function.

If the given file is not the same as what is in bmi_init_configand the model object has not already been initialized, this function will produce a warning message about the difference, then subsequently updatebmi_init_config`` to the given file. It will then proceed with initialization.

However, if the given file is not the same as what is in bmi_init_config`, but the model has already been initialized, a runtime_error exception is thrown.

This otherwise operates using the logic of Initialize().

Parameters
config_file
See also
Initialize()
Exceptions
models::external::State_ExceptionIf initialize() in nested model is not successful.
runtime_errorIf already initialized but using a different file than the passed argument.

Implements bmi::Bmi.

References models::bmi::Bmi_Adapter::bmi_init_config, models::bmi::Bmi_Adapter::Initialize(), models::bmi::Bmi_Adapter::model_initialized, logging::warning(), and models::external::State_Exception::what().

◆ is_model_initialized()

virtual bool models::bmi::Bmi_Adapter::is_model_initialized ( )
pure virtualinherited

Whether the backing model has been initialized yet.

Returns
Whether the backing model has been initialized yet.

Implemented in models::bmi::Bmi_C_Adapter, and models::bmi::Bmi_Cpp_Adapter.

Referenced by realization::Bmi_Module_Formulation::inner_create_formulation(), and realization::Bmi_Cpp_Formulation::is_model_initialized().

◆ isInitialized()

bool models::bmi::Bmi_Adapter::isInitialized ( )
inherited

Get whether this instance has been initialized properly.

Returns
Whether this instance has been initialized properly.

References models::bmi::Bmi_Adapter::model_initialized.

◆ SetValue()

virtual void bmi::Bmi::SetValue ( std::string name,
void * src )
pure virtualinherited

◆ SetValueAtIndices()

virtual void bmi::Bmi::SetValueAtIndices ( std::string name,
int * inds,
int count,
void * src )
pure virtualinherited

◆ Update()

virtual void bmi::Bmi::Update ( )
pure virtualinherited

◆ UpdateUntil()

virtual void bmi::Bmi::UpdateUntil ( double time)
pure virtualinherited

Member Data Documentation

◆ bmi_init_config

std::string models::bmi::Bmi_Adapter::bmi_init_config
protectedinherited

◆ bmi_lib_file

std::string models::bmi::AbstractCLibBmiAdapter::bmi_lib_file
private

Path to the BMI shared library file, for dynamic linking.

Referenced by dynamic_library_load(), and dynamic_load_symbol().

◆ bmi_model_has_fixed_time_step

bool models::bmi::Bmi_Adapter::bmi_model_has_fixed_time_step = true
protectedinherited

Whether this particular model has a time step size that cannot be changed internally or externally.

Referenced by models::bmi::Bmi_C_Adapter::get_bmi_model_time_step_size_ptr(), and models::bmi::Bmi_Cpp_Adapter::get_bmi_model_time_step_size_ptr().

◆ bmi_model_time_convert_factor

double models::bmi::Bmi_Adapter::bmi_model_time_convert_factor
protectedinherited

◆ bmi_model_time_step_size

std::shared_ptr<double> models::bmi::Bmi_Adapter::bmi_model_time_step_size = nullptr
protectedinherited

Pointer to stored time step size value of backing model, if it is fixed and has been retrieved.

Referenced by models::bmi::Bmi_C_Adapter::get_bmi_model_time_step_size_ptr(), and models::bmi::Bmi_Cpp_Adapter::get_bmi_model_time_step_size_ptr().

◆ bmi_registration_function

const std::string models::bmi::AbstractCLibBmiAdapter::bmi_registration_function
private

Name of the function that registers BMI struct's function pointers to the right module functions.

Referenced by dynamic_library_load(), and get_bmi_registration_function().

◆ dyn_lib_handle

void* models::bmi::AbstractCLibBmiAdapter::dyn_lib_handle = nullptr
private

Handle for dynamically loaded library file.

Referenced by dynamic_library_load(), dynamic_load_symbol(), finalizeForLibAbstraction(), and get_dyn_lib_handle().

◆ init_exception_msg

std::string models::bmi::Bmi_Adapter::init_exception_msg
protectedinherited

◆ input_var_names

std::shared_ptr<std::vector<std::string> > models::bmi::Bmi_Adapter::input_var_names
protectedinherited

Pointer to collection of input variable names for backing model, used by GetInputVarNames().

Referenced by models::bmi::Bmi_C_Adapter::GetInputVarNames().

◆ model_initialized

◆ model_name

◆ output_var_names

std::shared_ptr<std::vector<std::string> > models::bmi::Bmi_Adapter::output_var_names
protectedinherited

Pointer to collection of output variable names for backing model, used by GetOutputVarNames().

Referenced by models::bmi::Bmi_C_Adapter::GetOutputVarNames().


The documentation for this class was generated from the following files: