petsc3.11.3 20190626
MatCreateLMVMSymBadBrdn
Creates a limitedmemory Symmetric "Bad" Broydentype matrix used for approximating Jacobians. LSymBadBrdn is a convex combination of LDFP and LBFGS such that SymBrdn^{1} = (1  phi)*BFGS^{1} + phi*DFP^{1}. The combination factor phi is restricted to the range [0, 1], where the LSymBadBrdn matrix is guaranteed to be symmetric positivedefinite. Note that this combination is on the inverses and not on the forwards. For forward convex combinations, use the LSymBrdn matrix.
Synopsis
#include "petscksp.h"
PetscErrorCode MatCreateLMVMSymBadBrdn(MPI_Comm comm, PetscInt n, PetscInt N, Mat *B)
The provided local and global sizes must match the solution and function vectors
used with MatLMVMUpdate() and MatSolve(). The resulting LSymBrdn matrix will have
storage vectors allocated with VecCreateSeq() in serial and VecCreateMPI() in
parallel. To use the LSymBrdn matrix with other vector types, the matrix must be
created using MatCreate() and MatSetType(), followed by MatLMVMAllocate().
This ensures that the internal storage and work vectors are duplicated from the
correct type of vector.
Collective on MPI_Comm
Input Parameters
 comm   MPI communicator, set to PETSC_COMM_SELF

 n   number of local rows for storage vectors

 N   global size of the storage vectors

Output Parameter
B the matrix
It is recommended that one use the MatCreate(), MatSetType() and/or MatSetFromOptions()
paradigm instead of this routine directly.
Options Database Keys
mat_lmvm_num_vecs maximum number of correction vectors (i.e.: updates) stored
mat_lmvm_phi (developer) convex ratio between BFGS and DFP components of the update
mat_lmvm_scale_type (developer) type of scaling applied to J0 (none, scalar, diagonal)
mat_lmvm_theta (developer) convex ratio between BFGS and DFP components of the diagonal J0 scaling
mat_lmvm_rho (developer) update limiter for the J0 scaling
mat_lmvm_alpha (developer) coefficient factor for the quadratic subproblem in J0 scaling
mat_lmvm_beta (developer) exponential factor for the diagonal J0 scaling
mat_lmvm_sigma_hist (developer) number of past updates to use in J0 scaling
See Also
MatCreate(), MATLMVM, MATLMVMSYMBRDN, MatCreateLMVMDFP(), MatCreateLMVMSR1(),
MatCreateLMVMBFGS(), MatCreateLMVMBrdn(), MatCreateLMVMBadBrdn()
Level
intermediate
Location
src/ksp/ksp/utils/lmvm/symbrdn/symbadbrdn.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages