gausscost / std

Description

The Bayesian cost function is the basic quadratic form derived from the Gaussian assumption in the application of the Bayesian theorem for data assimilation as described here. The defining equation is:

\[J(\mathbf{x}) = \frac{1}{2} (\mathbf{x} - \mathbf{x}^\textrm{b})^\textrm{T} (\mathbf{P}^\textrm{b})^{-1} (\mathbf{x} - \mathbf{x}^\textrm{b}) + \frac{1}{2} (\mathcal{H}(\mathbf{x}) - \mathbf{y}^\textrm{o})^\textrm{T}\mathbf{R}^{-1}(\mathcal{H}(\mathbf{x}) - \mathbf{y}^\textrm{o})\]

The Plugin returns both the cost function and its gradient. The gradient is computed using the formula:

\[\nabla J_\mathbf{x} = (\mathbf{P}^\textrm{b})^{-1} (\mathbf{x} - \mathbf{x}^\textrm{b}) + \mathcal{H}^*\left[\mathbf{R}^{-1}(\mathcal{H}(\mathbf{x}) - \mathbf{y}^\textrm{o})\right]\]

All computations of the cost function and its gradient are saved in the folder $workdir/simulator to make debugging easier, as well as monitoring conveniently variational inversions during their computation.

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

reload_from_previous: (optional): False

Use results from previous computations, i.e., reload simulated concentrations, or adjoint sensitivities from previous observation operator computations

accepted type: <class ‘bool’>

do_svd: (optional): False

Computes the cost function based on the SVD decomposition

accepted type: <class ‘bool’>

Requirements

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

controlvect

ControlVect

True

True

standard

std

obsvect

ObsVect

False

True

standard

std

obsoperator

ObsOperator

True

True

standard

std

Yaml template

Please find below a template for a Yaml configuration:

 1simulator:
 2  plugin:
 3    name: gausscost
 4    version: std
 5    type: simulator
 6
 7
 8  # Optional arguments
 9  reload_from_previous: XXXXX
10  do_svd: XXXXX