<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div>
<div style="color: rgb(0, 0, 0);">Hello</div>
<div style="color: rgb(0, 0, 0);"><br>
</div>
<div style="color: rgb(0, 0, 0);">I am trying to speed up a two dimensional linear elasticity problem with isotropic and heterogeneous properties. It is a topology optimization problem, therefore some regions have an almost zero stiffness whereas other regions
have a higher value, making the matrix ill-conditioned. So far, from having searched mail lists on similar problems, I have come up with the following CL options to pass to the petsc solver (two dimensional problem):</div>
<div style="color: rgb(0, 0, 0);"><br>
</div>
<div style="color: rgb(0, 0, 0);">-ksp_type cg -pc_type fieldsplit -pc_fieldsplit_block_size 2 -fieldsplit_pc_type hypre -fieldsplit_pc_hypre_type boomeramg -fieldsplit_pc_hypre_boomeramg_strong_threshold 0.7 -pc_fieldsplit_0 0,1 -pc_fieldsplit_type symmetric_multiplicative
-ksp_atol 1e-10</div>
<div style="color: rgb(0, 0, 0);"><br>
</div>
<div>It works reasonably well and shows similar number of iterations for different levels of refinement. However, it does not converge when I use the same options for KSPSolveTranspose(). I obtain DIVERGED_INDEFINITE_PC after three iterations. I believe this
has to do with the field split, but I do not where to start. I am using libMesh which interfaces with petsc through the file petsc_linear solver.C (<a href="http://libmesh.github.io/doxygen/classlibMesh_1_1PetscLinearSolver.html#a4e66cc138b52e80e93a75e55315245ee">http://libmesh.github.io/doxygen/classlibMesh_1_1PetscLinearSolver.html#a4e66cc138b52e80e93a75e55315245ee</a>)
The KSPSolveTranspose() is called in adjoint_solve(). Changing that to KSPSolve() solves the issue and to me it is not a problem because my matrix is symmetric, but I don’t want to have to change it in the libMesh source code. So the question is, why do those
CL options not work for the KSPSolveTranspose() despite having a symmetric matrix? </div>
</div>
<div><br>
</div>
<div>Thanks</div>
<div style="color: rgb(0, 0, 0);">
<div><br>
</div>
<div><br>
</div>
</div>
</body>
</html>