MatCreateH2OpusFromKernel#

Creates a MATH2OPUS from a user-supplied kernel.

Synopsis#

#include "petscmat.h"   
PetscErrorCode MatCreateH2OpusFromKernel(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt M, PetscInt N, PetscInt spacedim, const PetscReal coords[], PetscBool cdist, MatH2OpusKernelFn *kernel, void *kernelctx, PetscReal eta, PetscInt leafsize, PetscInt basisord, Mat *nA)

Input Parameters#

  • comm - MPI communicator

  • m - number of local rows (or PETSC_DECIDE to have calculated if M is given)

  • n - number of local columns (or PETSC_DECIDE to have calculated if N is given)

  • M - number of global rows (or PETSC_DETERMINE to have calculated if m is given)

  • N - number of global columns (or PETSC_DETERMINE to have calculated if n is given)

  • spacedim - dimension of the space coordinates

  • coords - coordinates of the points

  • cdist - whether or not coordinates are distributed

  • kernel - computational kernel (or NULL)

  • kernelctx - kernel context

  • eta - admissibility condition tolerance

  • leafsize - leaf size in cluster tree

  • basisord - approximation order for Chebychev interpolation of low-rank blocks

Output Parameter#

  • nA - matrix

Options Database Keys#

  • -mat_h2opus_leafsize <PetscInt> - Leaf size of cluster tree

  • -mat_h2opus_eta <PetscReal> - Admissibility condition tolerance

  • -mat_h2opus_order <PetscInt> - Chebychev approximation order

  • -mat_h2opus_normsamples <PetscInt> - Maximum number of samples to be used when estimating norms

See Also#

Matrices, Mat, MatCreate(), MATH2OPUS, MatCreateH2OpusFromMat()

Level#

intermediate

Location#

src/mat/impls/h2opus/cuda/math2opus.cu

Examples#

src/ksp/ksp/tutorials/ex21.c


Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages