exponential exp/std#

Description#

exp transform: element-wise exponential of a tracer field.

Computes \(y = e^x\) for each grid cell of the input tracer.

This transform is typically used when the control vector is optimised in log-space to enforce positivity (e.g. for emission fluxes), so that the physical field is the exponential of the optimised variable: \(x_{phys} = e^{x_{ctrl}}\).

Adjoint: \(s_{ctrl} = s_{phys} \cdot e^{x_{ctrl}}\) (product of the output sensitivity and the forward value, reloaded from disk).

The forward input is saved to chain/product/ inside the run sub-directory so the adjoint can reload it without re-running the forward.

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:

Mandatory arguments#

parameter : str, mandatory

Tracer of the input tracers of which exponential is taken

component : str, mandatory

Component of the input tracers of which exponential is taken

Optional arguments#

orig_parameter_plg : Plugin, optional

Plugin object on which the transform works on

orig_component_plg : Plugin, optional

Corresponding component object on which the transform works on

successor : str, optional

Name of the successor transform

precursor : str, optional

Name of the precursor transform

Requirements#

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

model

Model

False

True

None

None

YAML template#

Please find below a template for a YAML configuration:

 1transform:
 2  plugin:
 3    name: exp
 4    version: std
 5    type: transform
 6
 7  # Mandatory arguments
 8  parameter: XXXXX  # str
 9  component: XXXXX  # str
10
11  # Optional arguments
12  orig_parameter_plg: XXXXX  # Plugin
13  orig_component_plg: XXXXX  # Plugin
14  successor: XXXXX  # str
15  precursor: XXXXX  # str