Changeset 26061


Ignore:
Timestamp:
03/10/21 01:07:46 (4 years ago)
Author:
bdef
Message:

BUG: fix to the toolkit writing of mumps options

Location:
issm/trunk-jpl/src/m/solvers
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/solvers/mumpsnoneoptions.py

    r25762 r26061  
    11from pairoptions import pairoptions
    22from collections import OrderedDict
     3from IssmConfig import IssmConfig
    34
    45
     
    1415
    1516    #default mumps options
    16     PETSC_MAJOR = IssmConfig('_PETSC_MAJOR_')
    17     PETSC_MINOR = IssmConfig('_PETSC_MINOR_')
     17    PETSC_MAJOR = IssmConfig('_PETSC_MAJOR_')[0]
     18    PETSC_MINOR = IssmConfig('_PETSC_MINOR_')[0]
    1819    if PETSC_MAJOR == 2:
    19         mumps.toolkit = 'petsc'
    20         mumps.mat_type = getfieldvalue(options, 'mat_type', 'aijmumps')
    21         mumps.ksp_type = getfieldvalue(options, 'ksp_type', 'preonly')
    22         mumps.pc_type = getfieldvalue(options, 'pc_type', 'lu')
    23         mumps.mat_mumps_icntl_14 = getfieldvalue(options, 'mat_mumps_icntl_14', 120)
    24     end
     20        mumps['toolkit'] = 'petsc'
     21        mumps['mat_type'] = options.getfieldvalue(options, 'mat_type', 'aijmumps')
     22        mumps['ksp_type'] = options.getfieldvalue(options, 'ksp_type', 'preonly')
     23        mumps['pc_type'] = options.getfieldvalue(options, 'pc_type', 'lu')
     24        mumps['mat_mumps_icntl_14'] = options.getfieldvalue(options, 'mat_mumps_icntl_14', 120)
    2525
    2626    if PETSC_MAJOR == 3:
    27         mumps.toolkit = 'petsc'
    28         mumps.mat_type = getfieldvalue(options, 'mat_type', 'mpiaij')
    29         mumps.ksp_type = getfieldvalue(options, 'ksp_type', 'preonly')
    30         mumps.pc_type = getfieldvalue(options, 'pc_type', 'lu')
     27        mumps['toolkit'] = 'petsc'
     28        mumps['mat_type'] = options.getfieldvalue(options, 'mat_type', 'mpiaij')
     29        mumps['ksp_type'] = options.getfieldvalue(options, 'ksp_type', 'preonly')
     30        mumps['pc_type'] = options.getfieldvalue(options, 'pc_type', 'lu')
    3131        if PETSC_MINOR > 8:
    32             mumps.pc_factor_mat_solver_type = getfieldvalue(options, 'pc_factor_mat_solver_type', 'mumps')
     32            mumps['pc_factor_mat_solver_type'] = options.getfieldvalue(options, 'pc_factor_mat_solver_type', 'mumps')
    3333        else:
    34             mumps.pc_factor_mat_solver_package = getfieldvalue(options, 'pc_factor_mat_solver_package', 'mumps')
    35         end
    36         mumps.mat_mumps_icntl_14 = getfieldvalue(options, 'mat_mumps_icntl_14', 120)
    37         mumps.mat_mumps_icntl_28 = 2; #1 = serial, 2 = parallel
    38         mumps.mat_mumps_icntl_29 = 2; #parallel ordering 1 = ptscotch, 2 = parmetis
    39     end
    40     return solverOptions
     34            mumps['pc_factor_mat_solver_package'] = options.getfieldvalue(options, 'pc_factor_mat_solver_package', 'mumps')
     35        mumps['mat_mumps_icntl_14'] = options.getfieldvalue(options, 'mat_mumps_icntl_14', 120)
     36        mumps['mat_mumps_icntl_28'] = 2  #1 = serial, 2 = parallel
     37        mumps['mat_mumps_icntl_29'] = 2  #parallel ordering 1 = ptscotch, 2 = parmetis
     38
     39    return mumps
  • issm/trunk-jpl/src/m/solvers/mumpsoptions.py

    r24213 r26061  
    11from collections import OrderedDict
    2 import pairoptions
     2from pairoptions import pairoptions
    33from IssmConfig import IssmConfig
    44
     
    1313
    1414    #retrieve options provided in varargin
    15     options = pairoptions.pairoptions(*args)
     15    options = pairoptions(*args)
    1616    mumps = OrderedDict()
    1717
     
    2424        mumps['ksp_type'] = options.getfieldvalue('ksp_type', 'preonly')
    2525        mumps['pc_type'] = options.getfieldvalue('pc_type', 'lu')
    26         mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120)
     26        mumps['mat_mumps_icntl_14'] = options.options.getfieldvalue('mat_mumps_icntl_14', 120)
    2727    if PETSC_MAJOR == 3.:
    2828        mumps['toolkit'] = 'petsc'
     
    3636        mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120)
    3737
     38        #These 2 lines make raijin break (ptwgts error during solver with PETSc 3.3)
     39        mumps['mat_mumps_icntl_28'] = options.getfieldvalue('mat_mumps_icntl_28', 1)  #1=serial, 2=parallel
     40        mumps['mat_mumps_icntl_29'] = options.getfieldvalue('mat_mumps_icntl_29', 2)  #parallel ordering 1 = ptscotch, 2 = parmetis
     41
    3842    return mumps
Note: See TracChangeset for help on using the changeset viewer.