For a Bounday Element Method problem I require the solution of a system of linear equations with multiple right-hand sides. Though this is a dense system, I still want to do it via Petsc in parallel. Would the best way to do this be through something such as -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package mumps?

Furthermore and importantly, I refine my grid in a regular way by adding $N-1$ points between the already present $N$ points. This leads to a new system of equations of size $N\left(N-1\right) \times N\left(N-1\right)$ in $N\left(N-1\right)$ unknowns.

The upper-left matrix $A_{11}$ in this new system is identical to the unrefined matrix (multiplied by 0.5). The other three blocks $A_{12}$, $A_{21}$ and $A_{22}$ are new:


The question is now whether knowledge about the unrefined matrix $A_{11}$ can be used to speed up calculation of the refined system?

I was thinking, for example, about using the LU decomposition of $A_{11}$ to calculate the LU decomposition of the entire matrix $A$ using the well-known formula's

$$ \left\{\begin{aligned} L_{21} U_{11} &= A_{21} \\ L_{11} U_{12} &= A_{12} \\ L_{22} U_{22} &= A_{22} - L_{21} U_{12} \end{aligned}\right. $$

where $L_{21}$ and $U_{12}^T$ are $N-1\times N$ full matrices, $L_{11}$, $L_{22}$ are lower triangular $N\times N$ and $N-1 \times N-1$ matrices and $U_{11}$, $U_{22}$ are upper triangular with the same sizes.

Is there any way to do this in Petsc?

Or is there a better thing I can do?

For example, due to the fact that $A_{21}$, $A_{12}$ and $A_{22}$ result from mesh refinement of the original system, they all look a lot like $A_{11}$: Definining

$$ V = \left.\underbrace{\left[\begin{array}{cccc} 0.5 & 0.5 & 0 & \cdots & 0 & 0 \\ 0 & 0.5 & 0.5 & \cdots & 0 & 0\\ \vdots & \vdots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & 0.5 & 0.5 \end{array}\right]}_{N}\right\} N-1 $$ an $N-1 \times N$ matrix, it can be seen that

  • $A_{21} \approx V A_{11} $, i.e. an average of the rows of $A_{11}$.
  • $A_{21} \approx A_{11} V^T $, i.e. an average of the columns of $A_{11}$.
  • $A_{22} \approx V A_{11} V^T $, i.e. an average of the rows and columns of $A_{11}$.

This would therefore mean that a good approximate for $A$ would be

$$ A \approx \left(\begin{array}{c} 1_N \\ V \end{array}\right) A_{11} \left(\begin{array}{c} 1_N \\ V \end{array}\right)^T , $$

from which it might be possible to construct some preconditioner easily using the LU decomposition from $A_{11}$:

$$ \left\{\begin{aligned} L_{21} &\approx V L_{11} \\ U_{12} &\approx U_{11} V^T \end{aligned}\right. , $$ from the equations above. However, this implies that $L_{22} \approx 0$ and $U_{22}\approx 0$, which I do not really understand well as it leads to non-invertible approximations for $U$ and $L$:

$$ L \approx \left(\begin{array}{cc} L_{11} & 0 \\ V L_{11} & 0 \end{array}\right) \ \text{and} \ U \approx \left(\begin{array}{cc} U_{11} & U_{11} V^T \\ 0 & 0 \end{array}\right) $$

How would this be used as a preconditioner?


Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.