Source code for issm.stokesoptions

import pairoptions
from IssmConfig import IssmConfig

[docs]def stokesoptions(*args): #STOKESOPTIONS - return STOKES multi-physics solver petsc options # # Usage: # options=stokesoptions; #retrieve options provided in varargin arguments=pairoptions.pairoptions(*args) #default stokes options PETSC_VERSION=IssmConfig('_PETSC_MAJOR_')[0] if PETSC_VERSION==2.: raise RuntimeError('stokesoptions error message: multi-physics options not supported in Petsc 2') if PETSC_VERSION==3.: options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_max_it',1000],['ksp_type','gmres'],['pc_type','fieldsplit'],['pc_field_split_type','schur'],\ ['fieldsplit_0_pc_type','hypre'],['fieldsplit_0_ksp_type','gmres'],['fieldsplit_0_pc_hypre_type','boomerang'],\ ['fieldsplit_1_pc_type','jacobi'],['fieldsplit_1_ksp_type','preonly'],['issm_option_solver','stokes']] #now, go through our arguments, and write over default options. for i in range(len(arguments.list)): arg1=arguments.list[i][0] arg2=arguments.list[i][1] found=0; for j in range(len(options)): joption=options[j][0] if joption==arg1: joption[1]=arg2; options[j]=joption; found=1; break if not found: #this option did not exist, add it: options.append([arg1,arg2]) return options