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" <j...@jedbrown.org> wrote: >"Salazar De Troya, Miguel" <salazardet...@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