[petsc-users] [petsc-maint] Preconditioners for KSPSolveTranspose() in linear elasticity

Salazar De Troya, Miguel salazardetro1 at llnl.gov
Thu Jan 21 10:17:11 CST 2016

I write the boundary conditions using their DirichletBoundary class, not
the penalty term. The options I¹m using are ones that I found in the
libMesh mail list from a user who suggested them for elasticity problems.
The idea he mentioned was to use field split to separate each field of the
displacement vector solution. I honestly do not know the role of
-pc_fieldsplit_type symmetric_multiplicative, but it was working for me.

On 1/20/16, 4:36 PM, "Jed Brown" <jed at jedbrown.org> wrote:

>"Salazar De Troya, Miguel" <salazardetro1 at llnl.gov> writes:
>> I am not 100% confident because I am not sure how libMesh handles the
>> Dirichlet boundary conditions,
>How are you using libmesh?  Normally you write the boundary conditions.
>Many of the examples use penalty conditions, which maintain symmetric
>but have other problems.
>> 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):
>> -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
>This option looks funny.  What are you trying to do here?
>> -pc_fieldsplit_type symmetric_multiplicative -ksp_atol 1e-10

More information about the petsc-users mailing list