How to create an customized Solver type
I'd like to create a customized Solver class for an BlockOperator, is there an example?
For example, ex19 realizes the preconditioner as simple cascaded solvers: // P^-1 = [ K^-1 0 ][ I -B^T ][ I 0 ] // [ 0 I ][ 0 I ][ 0 -\gamma S^-1 ] what if I keep the structure of the Schur complement as S=BK^{-1}B^T? How to realize it in mfem (of course it's not appropriate).
Another example is, I have two matrices already assembled, M and K.
Now I need such a BlockOperator
T = [M+a_{11}K a_{12}K]
[a_{21}K M+a_{22}K]
a_{ii} are scalars. How to avoid assemble each sub blocks to reduce the memory to the best?
Or shall I redefine my question as, how to implement the Mult() function of an Operator or OperatorPtr class, and pass it to BlockOperator::SetBlock()