Changeset 12929 for issm/trunk-jpl/src
- Timestamp:
- 08/07/12 10:58:40 (13 years ago)
- Location:
- issm/trunk-jpl/src/m/model/solvers
- Files:
-
- 8 copied
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/model/solvers/iluasmoptions.py
r12911 r12929 1 #module imports {{{2 1 from pairoptions import * 3 from petscversion import * 4 #}}} 2 5 3 def iluasmoptions(*args): 6 #ILUASMOPTIONS - return MUMPS direct solver petsc options 7 # 8 # Usage: 9 # options=iluasmoptions; 10 4 """ 5 ILUASMOPTIONS - 6 7 Usage: 8 options=iluasmoptions; 9 """ 10 11 11 #retrieve options provided in varargin 12 arguments=pairoptions(*args) 13 14 options=[['mat_type','aij'],['ksp_type','gmres'],['pc_type','asm'],['sub_pc_type','ilu'],['pc_asm_overlap',5],['ksp_max_it',100],['ksp_rtol',1e-15]]; 12 options=pairoptions(*args) 13 iluasm={} 15 14 16 #now, go through our arguments, and write over default options. 17 for i in range(len(arguments.list)): 18 arg1=arguments.list[i][0] 19 arg2=arguments.list[i][1] 20 found=0; 21 for j in range(len(options)): 22 joption=options[j][0] 23 if joption==arg1: 24 joption[1]=arg2; 25 options[j]=joption; 26 found=1; 27 break 28 if not found: 29 #this option did not exist, add it: 30 options.append([arg1,arg2]) 31 return options 15 #default iluasm options 16 iluasm['mat_type']=options.getfieldvalue("mat_type'",'aij') 17 iluasm['ksp_type']=options.getfieldvalue("ksp_type'",'gmres') 18 iluasm['pc_type']=options.getfieldvalue("pc_type'",'asm') 19 iluasm['sub_pc_type']=options.getfieldvalue("sub_pc_type'",'ilu') 20 iluasm['pc_asm_overlap']=options.getfieldvalue('pc_asm_overlap',5) 21 iluasm['ksp_max_it']=options.getfieldvalue('ksp_max_it',100) 22 iluasm['ksp_rtol']=options.getfieldvalue('ksp_rtol',1e-15) 23 24 return iluasm 25 -
issm/trunk-jpl/src/m/model/solvers/mumpsoptions.py
r12911 r12929 1 #module imports {{{2 1 from pairoptions import * 3 from petscversion 4 #}}} 2 from petscversion import * 3 5 4 def mumpsoptions(*args): 6 #MUMPSOPTIONS - return MUMPS direct solver petsc options 7 # 8 # Usage: 9 # options=mumpsoptions; 10 5 """ 6 MUMPSOPTIONS - return MUMPS direct solver petsc options 7 8 Usage: 9 options=mumpsoptions; 10 """ 11 11 12 #retrieve options provided in varargin 12 arguments=pairoptions(*args)13 13 options=pairoptions(*args) 14 mumps={} 14 15 15 16 #default mumps options 16 17 PETSC_VERSION=petscversion() 18 if PETSC_VERSION==2: 19 mumps['mat_type']=options.getfieldvalue('mat_type','aijmumps') 20 mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly') 21 mumps['pc_type']=options.getfieldvalue('pc_type','lu') 22 mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120) 23 mumps['pc_factor_shift_positive_definite']=options.getfieldvalue('pc_factor_shift_positive_definite','true') 24 if PETSC_VERSION==3: 25 mumps['mat_type']=options.getfieldvalue('mat_type','mpiaij') 26 mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly') 27 mumps['pc_type']=options.getfieldvalue('pc_type','lu') 28 mumps['pc_factor_mat_solver_package']=options.getfieldvalue('pc_factor_mat_solver_package','mumps') 29 mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120) 30 mumps['pc_factor_shift_positive_definite']=options.getfieldvalue('pc_factor_shift_positive_definite','true') 17 31 18 if PETSC_VERSION==2: 19 options=[['mat_type','aijmumps'],['ksp_type','preonly'],['pc_type','lu'],['mat_mumps_icntl_14',120],['pc_factor_shift_positive_definite','true']] 20 if PETSC_VERSION==3: 21 options=[['mat_type','mpiaij'],['ksp_type','preonly'],['pc_type','lu'],['pc_factor_mat_solver_package','mumps'],['mat_mumps_icntl_14',120],['pc_factor_shift_positive_definite','true']] 32 return mumps 22 33 23 #now, go through our arguments, and write over default options.24 for i in range(len(arguments.list)):25 arg1=arguments.list[i][0]26 arg2=arguments.list[i][1]27 found=0;28 for j in range(len(options)):29 joption=options[j][0]30 if joption==arg1:31 joption[1]=arg2;32 options[j]=joption;33 found=1;34 break35 if not found:36 #this option did not exist, add it:37 options.append([arg1,arg2])38 return options
Note:
See TracChangeset
for help on using the changeset viewer.