PCHPDDMSetScaling#

Sets a diagonal scaling for supplied deflation vectors and, by default, the fine-level PCASM

Synopsis#

#include "petscpc.h" 
PetscErrorCode PCHPDDMSetScaling(PC pc, IS is, Vec scaling)

Logically Collective; scaling must be NULL on all processes or on none

Input Parameters#

  • pc - preconditioner context

  • is - index set of the local scaling, or NULL to use the stored one

  • scaling - local diagonal scaling, or NULL to remove the stored one and restore the default Boolean scaling before setup

Notes#

The is argument is shared with PCHPDDMSetDeflationMat(). Both routines can be called in any order before PCSetUp(), and the second call can provide NULL for is.

Setting a scaling sets the default PCASMType of the fine-level PCASM to PC_ASM_WEIGHTED. It can be changed with -pc_hpddm_levels_1_pc_asm_type, or -pc_hpddm_coarse_pc_asm_type with a single level; the scaling then only applies to the coarse correction, if any.

Currently, this cannot be used when PCHPDDM generates the second level with PCHPDDMSetAuxiliaryMat().

See Also#

KSP: Linear System Solvers, PCHPDDM, PCHPDDMSetDeflationMat(), PCASMWeightedSetScaling(), PCHPDDMSetCoarseCorrectionType()

Level#

advanced

Location#

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

Examples#

src/ksp/pc/tests/ex16.c

Implementations#

PCHPDDMSetScaling_HPDDM() 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