slepc-3.21.1 2024-04-26
Report Typos and Errors

# BVSetOrthogonalization

Specifies the method used for the orthogonalization of vectors (classical or modified Gram-Schmidt with or without refinement), and for the block-orthogonalization (simultaneous orthogonalization of a set of vectors).

### Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVSetOrthogonalization(BV bv,BVOrthogType type,BVOrthogRefineType refine,PetscReal eta,BVOrthogBlockType block)

Logically Collective

### Input Parameters

| bv | - the basis vectors context
| type | - the method of vector orthogonalization
| refine | - type of refinement
| eta | - parameter for selective refinement
| block | - the method of block orthogonalization

### Options Database Keys

| -bv_orthog_type <type> | - Where <type> is cgs for Classical Gram-Schmidt orthogonalization (default) or mgs for Modified Gram-Schmidt orthogonalization
| -bv_orthog_refine <ref> | - Where <ref> is one of never, ifneeded (default) or always
| -bv_orthog_eta <eta> | - For setting the value of eta
| -bv_orthog_block <block> | - Where <block> is the block-orthogonalization method

### Notes

The default settings work well for most problems.

The parameter eta should be a real value between 0 and 1 (or PETSC_DEFAULT). The value of eta is used only when the refinement type is "ifneeded".

When using several processors, MGS is likely to result in bad scalability.

If the method set for block orthogonalization is GS, then the computation is done column by column with the vector orthogonalization.

### See Also

BVOrthogonalizeColumn(), BVGetOrthogonalization(), BVOrthogType, BVOrthogRefineType, BVOrthogBlockType

### Level

advanced

### Location

src/sys/classes/bv/interface/bvbasic.c
Index of all BV routines
Table of Contents for all manual pages
Index of all manual pages