BMI: Difference between revisions
From CSDMS
(Description of the CSDMS BMI) |
m (formatting) |
||
Line 1: | Line 1: | ||
== IRF Functions == | == IRF Functions == | ||
<syntaxhighlight lang=sidl> | <syntaxhighlight lang=sidl> | ||
opaque initialize( in string config_file ) | opaque initialize (in string config_file) | ||
void update( in double dt ) // (Advance model variables by one time step.) | void update (in double dt) // (Advance model variables by one time step.) | ||
void finalize() | void finalize () | ||
void run_model( in string config_file ) // (Do a complete model run. Not needed for CMI.)) | void run_model (in string config_file) // (Do a complete model run. Not needed for CMI.)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 15:24, 19 October 2011
IRF Functions
opaque initialize (in string config_file)
void update (in double dt) // (Advance model variables by one time step.)
void finalize ()
void run_model (in string config_file) // (Do a complete model run. Not needed for CMI.))
Model description
array<string> get_input_var_names()
array<string> get_output_var_names()
string get_attribute( in string att_name ) // (for mesh_type, time_step_type, etc.)
string get_model_name() // (absorbed this into get_attribute()
Variable description
string get_var_type( in string long_var_name ) // ( returns type_string, e.g. ‘double’)
string get_var_units( in string long_var_name ) // ( returns unit_string, e.g. ‘meters’ )
int get_var_rank( in string long_var_name ) // ( returns array rank or 0 for scalar)
string get_var_name( in string long_var_name ) // ( returns model’s internal, short name )
double get_time_step() // (returns the model’s current timestep; adaptive or fixed.)
string get_time_units() // (returns unit string for model time, e.g. ‘seconds’, ‘years’)
double get_start_time()
double get_current_time()
double get_end_time()
Variable getters and setters
double get_0d_double( in string long_var_name )
array<double> get_1d_double( in string long_var_name )
array<double,2> get_2d_double( in string long_var_name )
array<double> get_2d_double_at_indices( in string long_var_name, array<int> indices )
void set_0d_double( in string long_var_name, in double scalar )
void set_1d_double( in string long_var_name, in array<double> array)
void set_2d_double( in string long_var_name, in array<double,2> array)
void set_2d_double_at_indices( in string long_var_name, in array<int> indices, in array<double,2> array)
Grid description
Uniform Rectilinear
array<double, 1> get_grid_spacing (in string long_var_name)
array<double, 1> get_grid_lower_left_corner (in string long_var_name) # (SDP. I added “_left”.)
array<int, 1> get_grid_shape (in string long_var_name)
Rectilinear
array<double, 1> get_grid_x (in string long_var_name)
array<double, 1> get_grid_y (in string long_var_name)
array<double, 1> get_grid_z (in string long_var_name)
array<int, 1> get_grid_shape (in string long_var_name)
Structured Mesh
array<double, 1> get_grid_vertices (in string long_var_name)
array<int, 1> get_grid_shape (in string long_var_name)
Unstructured Mesh
array<double, 1> get_grid_vertices (in string long_var_name)
array<int, 1> get_grid_connectivity (in string long_var_name)
array<int, 1> get_grid_offset (in string long_var_name)