Response functions (response_functions / std)

Description

Computes response functions based on a given observation operator, control vector and observation vector.

It explicitly computes the observation operator \(\mathcal{H}(\mathbf{x})\), which is assumed to be linear by running so-called base functions or response functions.

To do so, it computes \(\mathcal{H}(\mathbf{x}_i)\; orall 1 \leq i \leq \mathrm{dim}(\mathbf{x})\), where \(\mathbf{x}_i\) is the control vector with nulled values, except the :math:`i`th element.

Response functions functions are computed as individual pyCIF simulations and are stored in $workdir/base_functions/

Warning

As one forward simulation per dimension of the control vector is needed for this mode, please first check the dimension of your control vector and the time required for each forward run. You can check this by using the option dryrun (see below)

Yaml arguments

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Optional arguments

dryrun: (optional): False

accepted type: bool

run_mode: (optional): tl

accepted values: [‘fwd’, ‘tl’]

crop_to_simulation_window: (optional): True

crop response functions periods to the simulation window

accepted type: bool

full_period: (optional): False

Run the response functions over the whole simulation windows. This argument cannot be set to true if the ‘spin_up’ or ‘spin_down’ arguments are used.

accepted type: bool

spin_up: (optional)

Valid pandas period alias

accepted type: str

spin_down: (optional)

Valid pandas period alias

accepted type: str

Requirements

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

platform

Platform

True

True

None

None

obsoperator

ObsOperator

True

True

standard

std

obsvect

ObsVect

False

True

standard

std

controlvect

ControlVect

True

True

standard

std

datavect

DataVect

True

True

standard

std

Yaml template

Please find below a template for a Yaml configuration:

 1mode:
 2  plugin:
 3    name: response_functions
 4    version: std
 5    type: mode
 6
 7  # Optional arguments
 8  dryrun: XXXXX  # bool
 9  run_mode: XXXXX  # fwd|tl
10  crop_to_simulation_window: XXXXX  # bool
11  full_period: XXXXX  # bool
12  spin_up: XXXXX  # str
13  spin_down: XXXXX  # str