Changeset 12929 for issm/trunk-jpl/src


Ignore:
Timestamp:
08/07/12 10:58:40 (13 years ago)
Author:
jschierm
Message:

New python versions of iluasmoptions and mumpsoptions (and others moved).

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 {{{
    21from pairoptions import *
    3 from petscversion  import *
    4 #}}}
     2
    53def 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                         
    1111        #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={}
    1514
    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 {{{
    21from pairoptions import *
    3 from petscversion  import *
    4 #}}}
     2from petscversion import *
     3
    54def 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
    1112        #retrieve options provided in varargin
    12         arguments=pairoptions(*args)
    13 
     13        options=pairoptions(*args)
     14        mumps={}
    1415
    1516        #default mumps options
    1617        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')
    1731
    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
    2233
    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                                 break
    35                 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.