Skip to content

Instantly share code, notes, and snippets.

@renefritze
Created January 3, 2017 10:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renefritze/7e88fc664d1ddc54d2a60b35adc35a33 to your computer and use it in GitHub Desktop.
Save renefritze/7e88fc664d1ddc54d2a60b35adc35a33 to your computer and use it in GitHub Desktop.
Spilu problem demonstration
#!/usr/bin/env python3
from scipy.sparse.linalg import spilu
from scipy.sparse import identity
matrix = identity(2)
options = {'spilu_drop_tol':1e-4,
'spilu_fill_factor':10,
'spilu_drop_rule':'basic,area',
'spilu_permc_spec':'COLAMD'
}
try:
ilu = spilu(matrix, drop_tol=options['spilu_drop_tol'], fill_factor=options['spilu_fill_factor'],
drop_rule=options['spilu_drop_rule'], permc_spec=options['spilu_permc_spec'])
except TypeError as tp:
assert "a bytes-like object is required, not 'str'" in str(tp)
print('Variant 1 failed')
try:
ilu = spilu(matrix, drop_tol=options['spilu_drop_tol'], fill_factor=options['spilu_fill_factor'],
drop_rule=options['spilu_drop_rule'].encode('UTF-8'), permc_spec=options['spilu_permc_spec'].encode('UTF-8'))
except TypeError as tp:
assert "a bytes-like object is required, not 'str'" in str(tp)
print('Variant 2 failed')
print('Variant 3 ok')
ilu = spilu(matrix, drop_tol=options['spilu_drop_tol'], fill_factor=options['spilu_fill_factor'],
permc_spec=options['spilu_permc_spec'].encode('UTF-8'))
print('Variant 4 ok')
ilu = spilu(matrix, drop_tol=options['spilu_drop_tol'], fill_factor=options['spilu_fill_factor'],
permc_spec=options['spilu_permc_spec'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment