je-santos / MPLBM-UT

Library for performing multiphase simulations (based on the Shan-Chen model) in complicated geometries (i.e. porous media 3D images)
GNU General Public License v3.0
151 stars 59 forks source link

Found a possible bug #90

Closed guilkey closed 1 year ago

guilkey commented 1 year ago

Hi,

A few months ago I reported that I installed MPLBM-UT, but when I ran the single_phase_permeability example, it would hang. "top" reported that python was still doing work, but there was no progress. I finally returned to this and after putting bunches of print statements in the python code, figured out exactly where it was hanging. I am hoping that by sharing this, it might save someone else a bit of trouble. Specifically, in:

~/.local/lib/python3.9/site-packages/pypardiso/pardiso_wrapper.py

the following lines of code:

        globs = glob.glob(
            f'{sys.prefix}/[Ll]ib*/**/*mkl_rt*', recursive=True
        ) or glob.glob(
            f'{site.USER_BASE}/[Ll]ib*/**/*mkl_rt*', recursive=True
        )

were not able to find my mkl libraries. When I replaced these with:

          f'/usr/local/lib/*mkl_rt*', recursive=True

and: f'/home/guilkey/.local/lib/mkl_rt', recursive=True

respectively, everything worked.

Note that I outputted sys.prefix and site.USER_BASE and these were reported as:

sys.prefix = /usr site.USER_BASE = /home/guilkey/.local

so it seems the extra "**/" in each line isn't needed.

This is on a Debian system running Python 3.9.2

Also, in the same example, this appears twice in 1_phase_viz.py:

vel_mesh = vel_mesh.get_array('velocityNorm').reshape([nz, ny, nx+n_slices*2])

As shipped, this returns 100, 100, 102, but it should be 100, 100, 104. This was pretty easy to sort out, but there is, perhaps an incorrect assumption there.

Best regards,

James Guilkey University of Utah

je-santos commented 1 year ago

Hi James,

Thanks for you interest in the codebase. It seems that you were having trouble with the pypardiso package. I don't even know where is that used. I'm glad that you were able to sort the errors out.

Best, Javier