source: issm/trunk/src/m/solvers/mumpsoptions.py@ 24313

Last change on this file since 24313 was 24313, checked in by Mathieu Morlighem, 5 years ago

merged trunk-jpl and trunk for revision 24310

File size: 1.5 KB
Line 
1from collections import OrderedDict
2import pairoptions
3from IssmConfig import IssmConfig
4
5
6def mumpsoptions(*args):
7 """
8 MUMPSOPTIONS - return MUMPS direct solver petsc options
9
10 Usage:
11 options = mumpsoptions
12 """
13
14 #retrieve options provided in varargin
15 options = pairoptions.pairoptions(*args)
16 mumps = OrderedDict()
17
18 #default mumps options
19 PETSC_MAJOR = IssmConfig('_PETSC_MAJOR_')[0]
20 PETSC_MINOR = IssmConfig('_PETSC_MINOR_')[0]
21 if PETSC_MAJOR == 2.:
22 mumps['toolkit'] = 'petsc'
23 mumps['mat_type'] = options.getfieldvalue('mat_type', 'aijmumps')
24 mumps['ksp_type'] = options.getfieldvalue('ksp_type', 'preonly')
25 mumps['pc_type'] = options.getfieldvalue('pc_type', 'lu')
26 mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120)
27 if PETSC_MAJOR == 3.:
28 mumps['toolkit'] = 'petsc'
29 mumps['mat_type'] = options.getfieldvalue('mat_type', 'mpiaij')
30 mumps['ksp_type'] = options.getfieldvalue('ksp_type', 'preonly')
31 mumps['pc_type'] = options.getfieldvalue('pc_type', 'lu')
32 if PETSC_MINOR > 8.:
33 mumps['pc_factor_mat_solver_type'] = options.getfieldvalue('pc_factor_mat_solver_type', 'mumps')
34 else:
35 mumps['pc_factor_mat_solver_package'] = options.getfieldvalue('pc_factor_mat_solver_package', 'mumps')
36 mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120)
37
38 return mumps
Note: See TracBrowser for help on using the repository browser.