slepc-main 2024-11-22
MatCreateBSE
Create a matrix that can be used to define a structured eigenvalue problem of type BSE (Bethe-Salpeter Equation).
Synopsis
#include "slepcsys.h"
PetscErrorCode MatCreateBSE(Mat R,Mat C,Mat *H)
Collective
Input Parameters
| R | - matrix for the diagonal block (resonant)
|
| C | - matrix for the off-diagonal block (coupling)
|
Output Parameter
Notes
The resulting matrix has the block form H = [ R C; -C^H -R^T ], where R is assumed
to be (complex) Hermitian and C complex symmetric. Note that this function does
not check these properties, so if the matrices provided by the user do not satisfy
them, then the solver will not behave as expected.
The obtained matrix can be used as an input matrix to EPS eigensolvers via
EPSSetOperators() for the case that the problem type is EPS_BSE. Note that the user
cannot just build a matrix with the required structure, it must be done via this
function.
In the current implementation, H is a MATNEST matrix, where R and C form the top
block row, while the bottom block row is composed of matrices of type
MATTRANSPOSEVIRTUAL and MATHERMITIANTRANSPOSEVIRTUAL scaled by -1.
See Also
MatCreateNest(), EPSSetOperators(), EPSSetProblemType()
Level
intermediate
Location
src/sys/mat/matstruct.c
Examples
src/eps/tutorials/ex55.c
Index of all sys routines
Table of Contents for all manual pages
Index of all manual pages