How to multi-grid solver via approximation orders?

32 views
Skip to first unread message

Lukasz Kaczmraczyk

unread,
Jun 1, 2017, 3:50:05 AM6/1/17
to mofem...@googlegroups.com

How to multi-grid solver via approximation orders?

Lukasz Kaczmraczyk

unread,
Jun 2, 2017, 1:04:04 AM6/2/17
to mofem Group

Code is run using direct solver, i.e. MUMPS on coarse level. Note that loaded mesh is portioned and each processor only reads part of the mesh, i.e. -my_is_partitioned.

mpirun -np 4 ./elasticity \
 
-my_file dam_4parts.h5m -my_is_partitioned \
 
-ksp_type gmres -ksp_max_it 1000 -ksp_atol 1e-13 -ksp_rtol 0 -ksp_monitor_lg_residualnorm -ksp_final_residual -ksp_monitor -ksp_converged_reason
 
-my_order 1 -my_block_config block_congig.in \
 
-mofem_mg_verbose 1 -mofem_mg_coarse_order 1 -mofem_mg_levels 4 \
 
-pc_type mg \
 
-mg_coarse_ksp_type preonly -mg_coarse_pc_type lu -mg_coarse_pc_factor_mat_solver_package mumps \
 
-pc_mg_smoothup 20 -pc_mg_smoothdown 20 -pc_mg_type multiplicative

  • Option -my_is_partitioned is set if mesh is partitioned using mbpart
  • Option -mofem_mg_coarse_order 1 set coarse level is for linear approximation, i.e. order 1.
  • Option -mofem_mg_levels 4 set number of multi-grid level. In that case maximal approx. order for some part of mesh is 4, thus 4 multi-grid levels.
  • Option -pc_mg_smoothup 20 -pc_mg_smoothdown 20 set number of smoothing iterations, for more details look to PETSc manual.
  • In line
    -mg_coarse_ksp_type preonly -mg_coarse_pc_type lu -mg_coarse_pc_factor_mat_solver_package mumps
    a direct solver for coarse mesh is set.
Reply all
Reply to author
Forward
0 new messages