Skip to main content
`Ctrl`+`K`

# PCHPDDMSetAuxiliaryMat

Sets the auxiliary matrix used by `PCHPDDM` for the concurrent GenEO problems at the finest level.

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCHPDDMSetAuxiliaryMat(PC pc, IS is, Mat A, PetscErrorCode (*setup)(Mat J, PetscReal t, Vec X, Vec X_t, PetscReal s, IS ovl, void *ctx), void *ctx)

## Input Parameters

- pc - preconditioner context

- is - index set of the local auxiliary, e.g., Neumann, matrix

- A - auxiliary sequential matrix

- setup - function for generating the auxiliary matrix entries, may be `NULL`

- ctx - context for `setup`, may be `NULL`

## Calling sequence of `setup`

- J - matrix whose values are to be set

- t - time

- X - linearization point

- X_t - time-derivative of the linearization point

- s - step

- ovl - index set of the local auxiliary, e.g., Neumann, matrix

- ctx - context for `setup`, may be `NULL`

## Note

As an example, in a finite element context with nonoverlapping subdomains plus (overlapping) ghost elements, this could be the unassembled (Neumann) local overlapping operator. As opposed to the assembled (Dirichlet) local overlapping operator obtained by summing neighborhood contributions at the interface of ghost elements.

## Fortran Notes

Only `PETSC_NULL_FUNCTION` is supported for `setup` and `ctx` is never accessed

## See Also

KSP: Linear System Solvers, `PCHPDDM`, `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCHPDDMSetRHSMat()`, `MATIS`

## Level

intermediate

## Location

src/ksp/pc/impls/hpddm/pchpddm.cxx

## Examples

src/ksp/ksp/tutorials/ex82.c
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex76f.F90
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex87.c

## Implementations

PCHPDDMSetAuxiliaryMat_HPDDM(PC pc, IS is, Mat A, PetscErrorCode (*setup)() in src/ksp/pc/impls/hpddm/pchpddm.cxx

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