[petsc-users] ML options

Tobin Isaac tisaac at ices.utexas.edu
Thu Jan 10 19:26:39 CST 2013


On Mon, Jan 07, 2013 at 09:36:05AM -0600, Jed Brown wrote:
> On Mon, Jan 7, 2013 at 9:09 AM, Mark F. Adams <mark.adams at columbia.edu>wrote:
> 
> > ex56 is a simple 3D elasticity problem.  There is a runex56 target that
> > uses GAMG and a runex56_ml.  These have a generic parameters and ML and
> > GAMG work well.
> >
> > The eigen estimates could be bad.  This can cause death.  I've found that
> > CG converges to the largest eigenvalue faster than the default GMRES so I
> > use:
> >
> > -gamg_est_ksp_max_it 10  # this is the default, you could increase this to
> > test
> > -gamg_est_ksp_type cg
> >
> > Jed could tell you how to set this for ML.
> >
> 
> ML isn't using eigenvalue estimation (doesn't expose the algorithm). Sanjay
> is using the default smoother (Richardson + SOR) rather than
> chebyshev/pbjacobi.

Which version of petsc is being used? I submitted a bug fix for
Richardson + SOR as a smoother for inodes, but I don't know which
versions of petsc have integrated it.  It could be the same bug.

> 
> 
> >
> >
> >
> > On Jan 7, 2013, at 8:49 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> >
> > Could we get an example matrix exhibiting this behavior? If you run with
> > -ksp_view_binary, the solver will write out the matrix to a file called
> > 'binaryoutput' (and 'binaryoutput.info') when KSPSolve() returns. I
> > suppose it could be a "math" reason of the inodes somehow causing an
> > incorrect near-null space to be passed to ML, but the interface is not
> > supposed to work like this. If you are serious about smoothed aggregation
> > for elasticity, you should use MatSetNearNullSpace() to provide the rigid
> > body modes.
> >
> > As a related matter, does -pc_type gamg -pc_gamg_agg_nsmooths 1
> > -mg_levels_ksp_type richardson -mg_levels_pc_type sor converge well?
> >
> >
> > On Mon, Jan 7, 2013 at 12:55 AM, Sanjay Govindjee <s_g at berkeley.edu>wrote:
> >
> >>
> >> I am adding ML as an option to our FEA code and was looking for a bit of
> >> guidance on
> >> options.  Generally we solve 1,2, and 3D solids problems (nonlinear
> >> elasticity) but
> >> we also treat shells, thermal, problems, coupled problems, etc. etc.
> >>
> >> My basic run line looks like:
> >>
> >> -@${MPIEXEC} -n $(NPROC) $(MY_PROGRAM) -ksp_type cg -ksp_monitor -pc_type
> >> ml  -log_summary  -ksp_view  -options_left
> >>
> >> but this does not work very well at all with 3D elasticity for example --
> >> in fact it fails to converge after 10K iterations on a rather
> >> modest problem.  However following ex26 in the ksp tutorials I also tried:
> >>
> >> -@${MPIEXEC} -n $(NPROC) $(FEAPRUN) -ksp_type cg -ksp_monitor -pc_type ml
> >> -mat_no_inode -log_summary  -ksp_view  -options_left
> >>
> >> And this worked very very much better -- converged in about 10
> >> iterations.  What exactly is -mat_no_inode doing for me? and are there
> >> other 'important' options
> >> that I should be aware of when using ML.
> >>
> >> -sanjay
> >>
> >
> >
> >


More information about the petsc-users mailing list