mjoyceGR / MESA2HYDRO

creates a Phantom-compatible initial conditions file from a MESA stellar density profile
Other
4 stars 2 forks source link

Attempting to install MEAS2HYDRO on Mac Pro (2019) in zsh #15

Open OrbitalMechanic opened 4 years ago

OrbitalMechanic commented 4 years ago

I'm attempting to install MESA2HYDRO on a Mac Pro (2019) running Mac OS X ver. 10.15.3 (Catalina) under the zsh shell. Using pip install MESA2HYDRO, I was able to install MESA2HYDRO successfully. The problem I'm having is running the test case using python3 run_conversion.py mainsequence.cfg as depicted in the output below.

(base) user@Samuels-Mac-Pro work % python3 run_conversion.py mainsequence.cfg

Traceback (most recent call last): File "run_conversion.py", line 25, in from MESA2HYDRO.lib import converge_funcs as cf File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/MESA2HYDRO/lib/converge_funcs.py", line 22, in from scipy.optimize import curve_fit File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/init.py", line 387, in from ._minimize import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_minimize.py", line 30, in from ._trustregion_constr import _minimize_trustregion_constr File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_trustregion_constr/init.py", line 4, in from .minimize_trustregion_constr import _minimize_trustregion_constr File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py", line 4, in from scipy.sparse.linalg import LinearOperator File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/init.py", line 117, in from .eigen import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/init.py", line 11, in from .arpack import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/init.py", line 22, in from .arpack import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 45, in from . import _arpack ImportError: dlopen(/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so, 2): Symbol not found: __gfortran_transfer_array_write Referenced from: /Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so Expected in: /Applications/MATLAB/MATLAB_Runtime/v97/sys/os/maci64/libgfortran.3.dylib in /Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "run_conversion.py", line 35, in import converge_funcs as cf File "/Users/user/MESA2HYDRO/lib/converge_funcs.py", line 22, in from scipy.optimize import curve_fit File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/init.py", line 387, in from ._minimize import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_minimize.py", line 30, in from ._trustregion_constr import _minimize_trustregion_constr File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_trustregion_constr/init.py", line 4, in from .minimize_trustregion_constr import _minimize_trustregion_constr File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py", line 4, in from scipy.sparse.linalg import LinearOperator File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/init.py", line 117, in from .eigen import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/init.py", line 11, in from .arpack import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/init.py", line 22, in from .arpack import File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 45, in from . import _arpack ImportError: dlopen(/Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so, 2): Symbol not found: __gfortran_transfer_array_write Referenced from: /Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so Expected in: /Applications/MATLAB/MATLAB_Runtime/v97/sys/os/maci64/libgfortran.3.dylib in /Users/user/opt/anaconda3/lib/python3.7/site-packages/scipy/sparse/linalg/eigen/arpack/_arpack.cpython-37m-darwin.so (base) user@Samuels-Mac-Pro work %

Any suggestions?

Sam Dupree.

mjoyceGR commented 4 years ago

Hi Sam, It looks like this is a problem with the Python libraries, probably a version mismatch. Do you have the most recent versions of all of the M2H Python dependencies installed?

Since it's complaining about the fortran components, the likely culprits are scipy and numpy. I would also recommend installation and setup via the tarball rather than pip for easier debugging

OrbitalMechanic commented 4 years ago

HI MJoyceGR, Thank you for responding to my post so quickly. What are the minimum versions for the dependencies required for MESA2HYDRO?

Sam Dupree.

knitHacker commented 4 years ago

I have it running with scipy 1.3.1. You might need to reinstall scipy. Looks like the downloaded dynamic libraries don't watch what the python is expecting.

mjoyceGR commented 4 years ago

I'm running numpy 1.17.3 and scipy 1.4.1 successfully with Python3.7 as my environment (your system should run Python 3.6 by default when you set a Python 3 environment, and this should also work).

!/usr/bin/env python3 --> #!/usr/bin/env python3.7

is a cheap hack I change in run_conversion.py to deal with some problems on convoluted setups, but I think Lianne is correct that this is a problem with your installation of scipy rather than with M2H.

Can you try installing scipy via command line rather than via anaconda?

OrbitalMechanic commented 4 years ago

I'm running python 3.7.6, numpy 1.8.1, and have updated to scipy 1.4.1. In checking the file local_setup.py, I noticed that LOCAL_BASH = '~/.bashrc' BACKUP_BASH = '~/.bashrc.bak'

Since I'm running under the zsh shell and not the bash shell, would editing local_setup.py to LOCAL_BASH = '~/.zshrc'

be sufficient to build MESA2HYDRO correctly under the zsh shell?

Sam Dupree.

OrbitalMechanic commented 4 years ago

Setting LOCAL_BASH = '~/.zshrc' in local_setup.py, I was able to install MESA2HYDRO under the zsh shell. The present problem I'm having is that MESA2HYDRO cannot find the file /Users/user/MESA2HYDRO/out/NR_files/NR_ms_test.dat, as shown in the output below.

(base) user@Samuels-Mac-Pro MESA2HYDRO-1.1.3 % cd work (base) user@Samuels-Mac-Pro work % python3 run_conversion.py mainsequence.cfg


1D <-----> MESA2HYDRO <-----> 3D
Copyright (C) 2019 M. Joyce, L. Lairmore, D. J. Price
___

Package directory: /Users/user/.local/lib/python3.7/site-packages/MESA2HYDRO-1.1.3-py3.7-macosx-10.9-x86_64.egg/MESA2HYDRO Files will be saved in /Users/user/MESA2HYDRO

Using config values from mainsequence.cfg Script configurations are: IC_format_type = phantom_binary MESA_file = ../data/sample_MESA_output/profile_mainsequence_logE.data N = 8 TOL = 0.01 check_MESA_profile = False loaded_IC_filename = work/IC_mainsequence loaded_NR_filename = out/NR_files/NR_ms_test.dat make_IC_file = True make_NR_file = False masscut = 0.95 mp = 1e-07 mp_cgs = 1.988e+26 new_IC_filename = work/IC_mainsequence new_NR_filename = out/NR_files/NR_mainsequence_test.dat r_depth = 0.75 stepsize = 2450000.0 which_dtype = f len(R), len(M): 785 785 len(assoc_region) 523 estimated masscut from radial input = 0.9832621098341146 masscut being used is: 0.9832621098341146

Generating IC file... setting lognorm... Traceback (most recent call last): File "run_conversion.py", line 212, in format_type=IC_format_type,which_dtype=which_dtype, lognorm=lognorm) File "/Users/user/.local/lib/python3.7/site-packages/MESA2HYDRO-1.1.3-py3.7-macosx-10.9-x86_64.egg/MESA2HYDRO/lib/mainlib.py", line 167, in get_IC N,rmid=np.loadtxt(NR_file_name, usecols=(0,1), unpack=True) File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/npyio.py", line 981, in loadtxt fh = np.lib._datasource.open(fname, 'rt', encoding=encoding) File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/_datasource.py", line 269, in open return ds.open(path, mode, encoding=encoding, newline=newline) File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/_datasource.py", line 623, in open raise IOError("%s not found." % path) OSError: /Users/user/MESA2HYDRO/out/NR_files/NR_ms_test.dat not found. (base) user@Samuels-Mac-Pro work %

Any suggestions? Sam Dupree.

mjoyceGR commented 4 years ago

M2H looks for data in $NAME_OF_INSTALLATION_DIRECTORY/out/NR_files/ if no path header is provided when setting, e.g., loaded_NR_filename = out/NR_files/NR_ms_test.dat

You can set loaded_NR_filename to the absolute path containing .../out/NR_files/ in your config file instead

OrbitalMechanic commented 4 years ago

I'm almost there. from the example in the ReadMe.md file, here is the output I'm getting:

(base) user@Samuels-Mac-Pro work % python3 run_conversion.py mainsequence.cfg


1D <-----> MESA2HYDRO <-----> 3D
Copyright (C) 2019 M. Joyce, L. Lairmore, D. J. Price
____

Package directory: /Users/user/.local/lib/python3.7/site-packages/MESA2HYDRO-1.1.3-py3.7-macosx-10.9-x86_64.egg/MESA2HYDRO Files will be saved in /Users/user/MESA2HYDRO-1.1.3

Using config values from mainsequence.cfg Script configurations are: IC_format_type = phantom_binary MESA_file = ../data/sample_MESA_output/profile_mainsequence_logE.data N = 8 TOL = 0.01 check_MESA_profile = False loaded_IC_filename = work/IC_mainsequence loaded_NR_filename = out/NR_files/NR_ms_test.dat make_IC_file = True make_NR_file = False masscut = 0.95 mp = 1e-07 mp_cgs = 1.988e+26 new_IC_filename = work/IC_mainsequence new_NR_filename = out/NR_files/NR_mainsequence_test.dat r_depth = 0.75 stepsize = 2450000.0 which_dtype = f len(R), len(M): 785 785 len(assoc_region) 523 estimated masscut from radial input = 0.9832621098341146 masscut being used is: 0.9832621098341146

Generating IC file... setting lognorm... IC WARNING: Renormalization of [mp] to [(Mstar - Mcore)/Np]

Phantom IC WARNING: log normalization rho --> log10(rho) for phantom_binary format IC is ON!

DEBUGGING: hsoft_sink = 0.0006752120907940069 DEBUGGING: type(central_point_mass) <class 'float'> import successful 1536 type:<class 'int'>

[2.16492685e+28 2.16492685e+28 2.16492685e+28 ... 2.16492685e+28 2.16492685e+28 2.16492685e+28] size: 1536 and type:<class 'numpy.ndarray'>

[ 3.75717986e+10 3.61589129e+10 4.45272651e+10 ... -2.48516448e+10 -1.78292687e+10 0.00000000e+00] size: 1537 and type:<class 'numpy.ndarray'>

[-5.24327210e+10 -5.59421361e+10 -4.75945230e+10 ... 5.47257363e+10 5.36211770e+10 0.00000000e+00] size: 1537 and type:<class 'numpy.ndarray'>

[2.14699539e+10 1.35941023e+10 1.93358020e+10 ... 3.55438912e+10 4.10215213e+10 0.00000000e+00] size: 1537 and type:<class 'numpy.ndarray'>

[2.14466260e+10 2.14466260e+10 2.14466260e+10 ... 5.77110589e+10 5.77110589e+10 5.77110589e+10] size: 1536 and type:<class 'numpy.ndarray'>

[4.91312016e+13 4.91312016e+13 4.91312016e+13 ... 1.64375542e+13 1.64375542e+13 1.64375542e+13] size: 1536 and type:<class 'numpy.ndarray'>

1.9547250743502198e+33 type:<class 'float'>

81611562.83132577 type:<class 'numpy.float64'>

Starting (loc 5) ngas: 1536 mgas: 2.1649268477410660E+028 x_array 37571798572.014465
y_array -52432720952.719452
z_array 21469953906.181988
h_array 21446626040.592800
u_array 49131201585245.703
msink 1.95472512E+33

WRITING 1 SINK PARTICLES

--------> TIME = 0.0000: full dump written to file star_00000.tmp on unit 83 <--------

/Users/user/MESA2HYDRO-1.1.3/work/IC_mainsequence <class 'str'> IC file generation complete! --- 2.155210018157959 seconds --- total execution length: --- 2.1855578422546387 seconds --- (base) user@Samuels-Mac-Pro work %

Does the output here appear correct?

Sam Dupree.

mjoyceGR commented 4 years ago

the debugging statements look healthy to me. good luck

OrbitalMechanic commented 4 years ago

Good deal! Thank you for all your help. I truly appreciate it. :-)

Sam Dupree.

On February/24/2020 00:12:09, M. Joyce wrote:

the debugging statements look healthy to me. good luck

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mjoyceGR/MESA2HYDRO/issues/15?email_source=notifications&email_token=ABEO35YE5WHMOSKUEWGRFKLRENJKTA5CNFSM4KZ75HR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMWUNZY#issuecomment-590169831, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEO3567X3NMFX4I4W2IODTRENJKTANCNFSM4KZ75HRQ.