_assemble_kernel_mat_wkr#

mbgdml._gdml.train._assemble_kernel_mat_wkr(j, tril_perms_lin, sig, use_E_cstr=False, exploit_sym=False, cols_m_limit=None)[source]#

Compute one row and column of the force field kernel matrix.

The Hessian of the Matern kernel is used with n = 2 (twice differentiable). Each row and column consists of matrix-valued blocks, which encode the interaction of one training point with all others. The result is stored in shared memory (a global variable).

Parameters:
  • j (int) – Index of training point.

  • tril_perms_lin (numpy.ndarray of int) – 1D array containing all recovered permutations expanded as one large permutation to be applied to a tiled copy of the object to be permuted.

  • sig (int or float) – Hyperparameter sigma (kernel length scale).

  • use_E_cstr (bool, optional) – Include energy constraints in the kernel. This can sometimes be helpful in tricky cases.

  • exploit_sym (bool, optional) – Do not create symmetric entries of the kernel matrix twice (this only works for specific inputs for cols_m_limit)

  • cols_m_limit (int, optional) – Limit the number of columns (include training points 1-M). Note that each training points consists of multiple columns.

Returns:

Number of kernel matrix blocks created, divided by 2 (symmetric blocks are always created at together).

Return type:

int