py__cvt_adj_ens_pdaf()

The adjoint control variable transformation involving ensembles.

Here, this function performs \(\mathbf{U}^\mathrm{T} \mathbf{v}_h\). Here, the input vector can be \(\mathbf{v}_h = \mathbf{H}^\mathrm{T}\mathbf{R}^{-1}\delta \mathbf{x}\) with \(\delta \mathbf{x}\) the innovation vector.

The control vector transform is given by \(\mathbf{U}\mathbf{v}\) with \(\mathbf{v}\) the control vector and \(\mathbf{U}\) the transformation matrix, which can be \(\mathbf{B}^\frac{1}{2}\).

This function is used in 3DEnVar and hybrid 3DVar.

Parameters

iter: int

Current optimisation iteration number.

dim_p: int

Dimension of the state vector.

dim_ens: int

Dimension of the ensemble.

dim_cv_ens_p: int

Dimension of the control vector.

ens_p: np.ndarray[np.float, dim=2]

Ensemble matrix. shape: (dim_p, dim_ens)

vcv_p: np.ndarray[np.float, dim=1]

\(\mathbf{v}_h\). shape: (dim_p, )

cv_p: np.ndarray[np.float, dim=1]

\(\mathbf{U}^\mathrm{T} \mathbf{v}_h\). shape: (dim_cv_ens_p, )

Returns

cv_p: np.ndarray[np.float, dim=1]

\(\mathbf{U}^\mathrm{T} \mathbf{v}_h\). shape: (dim_cv_ens_p, )