models class#

class pycif.utils.classes.models.Model(**kwargs)[source]#

Bases: Plugin

Plugin type for atmospheric transport models.

Provides forward and adjoint run interfaces, input/output conversion methods between native model format and pyCIF data structures, and auxiliary utilities (compilation, mapper initialisation, perturbation).

Concrete implementations live in pycif/plugins/models/.

initiate_template()[source]#

Initialise the Model plugin template.

Loads the registered model module and attaches all standard methods (run, make_input, make_auxiliary, ini_periods, native2inputs, outputs2native, native2inputs_adj, outputs2native_adj, compile, ini_mapper, perturb_model) as bound methods. Also wraps ini_data to call ini_periods() automatically after data initialisation.

run(*args, **kwargs)[source]#

Default empty run method

native2inputs(*args, **kwargs)[source]#

Default empty native2inputs method

native2inputs_adj(*args, **kwargs)[source]#

Default empty native2inputs_adj method

make_auxiliary(*args, **kwargs)[source]#

Default empty make_auxiliary method

outputs2native(*args, **kwargs)[source]#

Default empty outputs2native method

outputs2native_adj(*args, **kwargs)[source]#

Default empty outputs2native_adj method

make_input(*args, **kwargs)[source]#

Default empty make_input method

flushrun(*args, **kwargs)[source]#

Default empty flushrun method

ini_periods(*args, **kwargs)[source]#

Default empty ini_periods method

perturb_model(*args, **kwargs)[source]#

Default empty perturb_model method

classmethod register_plugin(name, version, module, subtype='', **kwargs)[source]#

Register a module for a plugin and version with possibly options

Parameters:
  • name (str) – name of the plugin

  • version (str) – version of the plugin

  • module (types.ModuleType) – module defining the interface between pyCIF and the plugin

  • plugin_type (str) – type of plugin

  • **kwargs (dictionary) – default options for module

ini_mapper(*args, **kwargs)[source]#

Default empty ini_mapper method