MatCreateLMVMSymBroyden#
Creates a limited-memory Symmetric Broyden-type matrix used for approximating Jacobians.
Synopsis#
#include "petscksp.h"
PetscErrorCode MatCreateLMVMSymBroyden(MPI_Comm comm, PetscInt n, PetscInt N, Mat *B)
Collective
Input Parameters#
comm - MPI communicator, set to
PETSC_COMM_SELFn - number of local rows for storage vectors
N - global size of the storage vectors
Output Parameter#
B - the matrix
Options Database Keys#
-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
Notes#
It is recommended that one use the MatCreate(), MatSetType() and/or MatSetFromOptions()
paradigm instead of this routine directly.
L-SymBrdn is a convex combination of L-DFP and L-BFGS such that SymBrdn = (1 - phi)BFGS + phiDFP. The combination factor phi is restricted to the range [0, 1], where the L-SymBrdn matrix is guaranteed to be symmetric positive-definite.
To use the L-SymBrdn 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.
See Also#
KSP: Linear System Solvers, MatCreate(), MATLMVM, MATLMVMSYMBROYDEN, MatCreateLMVMDFP(), MatCreateLMVMSR1(),
MatCreateLMVMBFGS(), MatCreateLMVMBrdn(), MatCreateLMVMBadBrdn()
Level#
intermediate
Location#
src/ksp/ksp/utils/lmvm/symbrdn/symbrdn.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages