BMI

From CSDMS
Revision as of 15:20, 19 October 2011 by Huttone (talk | contribs) (Description of the CSDMS BMI)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)