https://github.com/cassidymwagner/mesa2hydro

creates a Phantom-compatible initial conditions file from a MESA stellar density profile

https://github.com/cassidymwagner/mesa2hydro

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, iop.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

creates a Phantom-compatible initial conditions file from a MESA stellar density profile

Basic Info
  • Host: GitHub
  • Owner: cassidymwagner
  • License: other
  • Default Branch: master
  • Homepage:
  • Size: 108 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of mjoyceGR/MESA2HYDRO
Created over 6 years ago · Last pushed over 6 years ago

https://github.com/cassidymwagner/MESA2HYDRO/blob/master/

# MESA2HYDRO


## UPDATE
MESA2HYDRO is now written in Python3. The most up-to-date documentation is here on GitHub.

The cython package is no longer a dependency!  

## Documentation
Read the paper

	Refereed: https://iopscience.iop.org/article/10.3847/1538-4357/ab3405/meta

	Free: https://arxiv.org/abs/1907.09062

Read the User's Guide (WARNING: updated less frequently):

	https://github.com/mjoyceGR/MESA2HYDRO/blob/master/DOCUMENTATION/MESA2HYDRO_users_guide.pdf

## Introduction
From discrete stellar structure data in the style of MESA (http://mesa.sourceforge.net/) density profiles, this package creates initial conditions (IC) files readable by smoothed-particle hydrodynamics (SPH) codes such as Phantom (https://phantomsph.bitbucket.io/).  

The primary purpose of this software is to generate "NR" files, which contain coordinates parameterizing the mass distribution of an arbitrary model star to arbitrary depth.

An NR file is a basic text file containing 4 columns of numerical data: 
(1) integer N (dimensionless),
(2) radii (cm),
(3) masses M (grams), and
(4) internal energy (ergs).

The first column contains the integer used by HEALPix to determine the number of particles (np) distributed over a spherical shell--see the HEALPix papers for more information. 

The radii represent midpoint values rmid = (ru + rl) / 2 , in physical units (cm), corresponding to the radius at which a given shell must be placed in order to recast the mass contained in a region ru - rl as a shellular distribution of particles. The third column contains the mass contained in the computed interval. The fourth contains the internal energy (cgs units) at the midpoint radius.
The length of the file corresponds to the number of shells needed to reconstruct the sampled 1D density profile as a 3D particle distribution built of concentric shells. 


## Recommended Installation: Git/tarball
Cloning this git repository (or downloading the tarball) is the safest way to collect all software and dependencies: 

	git clone https://github.com/mjoyceGR/MESA2HYDRO.git

Download and upack the .zip file via

	unzip MESA2HYDRO-master.zip

Download and upack a .tar file via

	tar -xvf MESA2HYDRO-master.tar

After cloning or unpacking, move to the head directory via

	cd MESA2HYDRO/

Issue the following command in the top level directory

	python3 local_setup.py

to install the package locally.


To compile the Fortran components separately before installation, run


	./setup.py build_ext

followed by

	./setup.py install --user



## Installation via pip

MESA2HYDRO is also theoretically available via pip, but this will not be updated as frequently as the git repo. 
WARNING: some issues may occur if you have multiple versions of pip installed.

Using pip3, run

	pip3 install MESA2HYDRO


In some cases, "pip" and "python" can/should replace "pip3" and "python3", respectively (i.e. if your default version is Python3)

To upgrade, run

	pip install --upgrade MESA2HYDRO==1.1.XXXX

where 0.1.XXXX is the lastest version number on https://pypi.org/manage/project/MESA2HYDRO/releases/

Sometimes the error 

	ERROR: Cannot uninstall 'MESA2HYDRO'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

is triggered by an attempt to use pip install --upgrade. As a workaround, remove any current installation of MESA2HYDRO, followed by 

	pip install MESA2HYDRO==0.1.XXXX

or 

	pip install MESA2HYDRO

for the most recent version.


If you've failed to specify pip3 and have other versions of Python installed, the package may end up somewhere unexpected.
You can locate the package by typing

	pip show MESA2HYDRO

You may want to copy or move the entire MESA2HYDRO root directory somewhere where it is easier to work out of directly 

	mv MESA2HYDRO/ /home/your_name/

From there, you should set the $MESA2HYDRO_ROOT environment variable in your .bashrc to point to the root directory:

	export MESA2HYDRO_ROOT=/home/your_name/MESA2HYDRO

Then

	cd MESA2HYDRO/work/

and follow the instructions for Running a Test Case. No additional setup or compilation should be required if installed via pip. 

## Prerequisites
For a complete list of Python and external software dependencies, see the Prerequisites section of the user's guide.
This project was developed with MESA version 10398 and uses example inlists and input models (e.g. wd.mod) included in mesa-r10398. Neither Phantom nor MESA is required for operation, but we recommend these two packages. 


## Running a Test Case
To run a basic MESA2HYDRO calculation, move to the work directory via

	cd MESA2HYDRO/work/

Basic operation proceeds via

	python3 run_conversion.py mainsequence.cfg

where mainsequence.cfg is a configuration file. These are the files that the user should modify to suit their problem. 



## Troubleshooting
Failure may be caused by missing packages. The user must have, at minimum, the following Python3 and external packages installed on their machine:

	healpy
	matplotlib
	numpy
  	python-tk
  	scipy.interpolate
	scipy.optimize


If they were not automatically installed via pip or the setup procedure, these can be installed from the command line via, e.g., 

	sudo apt-get install python3-numpy

or similarly via, e.g., 

	pip3 install numpy 

The authors have had better results installing these additional libraries via command line rather than through pip. 

In particular, one must have numerical and other libraries required by healpy/HEALPix (https://healpy.readthedocs.io/en/latest/) installed on their machine. 
More information on dealing with healpy can be found at https://healpy.readthedocs.io/en/latest/install.html


Some failures to install can be rectified by installing python3-dev via 
	
	sudo apt-get install python3-dev

In your Python3 environment is out of date, the following set of commands may solve this:

	sudo apt update
	sudo apt upgrade
	sudo apt-get install --reinstall python3-apt
	sudo apt install python3.7 python3.7-dev python3.7-venv


You can then install the required dependencies via 

	sudo apt-get install python3-matplotlib
	sudo apt-get install python3-scipy
	sudo apt-get install python3-h5py
	sudo apt-get install python3-healpy

or equivalent. See "requirements.txt" in the top MESA2HYDRO directory for all dependencies

Owner

  • Name: Cassidy Wagner
  • Login: cassidymwagner
  • Kind: user
  • Location: Corvallis, Oregon
  • Company: Oregon State University

GitHub Events

Total
Last Year