NuPPN

General Overview
Main codes. There are PPN (single zone) and MPPNP (multi-zone) codes in NuPPN/frames directory.

Installation
Basically, follow some ReadMe files in the directories. PPN GitHub wiki page, MPPNP GitHub wiki page.
 * I did this installation with Marco via Google Hangout, 7/2/2019. This is a bit different way from what I wrote here originally.


 * 1) git clone https://github.com/NuGrid/NuPPN.git --branch modular2

NuPPN/frames/ppn/source directory contains all source fortran files. README file helps a lot. (NuPPN/frames/ppn/CODE directory in the old version).

Installation procedure is  PHYSICS = $(PPN)/physics SOLVER = $(PPN)/solver (Nowadays ACML 4.4.0 is not available as opensource)
 * 1) cp MAKE_LOCAL/Make.local.*** (I used, Make.local.soul-gfort-superLU) Make.local
 * 2) Open Make.local file and set the path (PPN) to NuPPN directory (e.g., /home/user_name/NuPPN)
 * 3) Set like this
 * 1) If necessary, you can comment out LD_PATH_LAPACK and LAPACK_LIBS (by #). These are for solver option 3 or 4.
 * 1) Change #BLASLIB = -L/usr/lib/libopenblas.a -lopenblas to BLASLIB = -lopenblas (I did this only when installing with Marco)
 * 2) Note I installed openblas, whatever necessary library by apt-get install
 * 3) (Note if it's on MAC, check brew info openblas, and then include path written in the output. For installation, brew homebrew/science/openblas may work (or simply brew openblas), but I already had it, so didn't install with these).

Now copy the Run_Template directory.
 * 1) cp -r run_template run_test, in my case.
 * 2) Set the PCD path to "source" directory in Makefile of the directory like "PCD=../source"
 * 3) Follow the ReadMe file, i.e., ("make distclean" if you wish, and then) "make". This will create ppn.exe.
 * 4) run by "./ppn.exe". You will see output files.

Check the data / Visualization / Plotting / Making a figure
"iso_massf*****.DAT" file is snap shot of each step (or time) in the stellar evolution. "x-time.data" is data from all of these steps (i.e., after everything).USE "less -S x-time.data" for better visualization. In the column, the number < 1e-15 are all noise (i.e, junk and untrustworthy) except for light particle (p,n,he) which are used in many reaction calculations, so threshold are set differently.

In NuGrid, plotting can be made with NuGridPy package. Download and install NuGridPy wiki page.

You can install by e.g., "pip install nugridpy". Otherwise, simple git clone as described in the web page above. If you chose the "clone git" method, then
 * 1) vi ~/.bashrc and set the $PYTHONPATH
 * 2) cd NuGridPy
 * 3) pip setup.py install

(Below is correct, but better to use Jupyter notebook as described in the next). In the directory with PPN output files, like "run_test",
 * 1) python abu_chart.py (or whatever README file says; sometimes just run shell script such as ./plot.sh)
 * 2) If you saw error in python, fix it. Typical problems are about relative path such as "#from .data_plot import *" needs to be changed to "from data_plot import *", and "#from . import utils" to be changed to "import utils".

iPython, Jupyter Notebook
Maro suggested to use "jupyter notebook". To use this interactive python (iPython), you need to install ipython and jupyter by yum or pip. Google and then you can easily install these. Also, you need to install "anaconda" if you don't have it in your computer. For example, I used this website anaconda installation on ubuntu. After installation, remember to set ".bashrc" so your terminal reads anaconda shell script each time you log in.

(In run directory such as "RUN_TEMPLATE" and "examples", there is a directory "Notebook". ipython script is located typically there. And the command "jupyter noteba=p.xtime(".")


 * 1) command "jupyter notebook"
 * 2) press "New" (in the right top corner)" and choose Python3.
 * 3) Here's what I did in the run_test's case.
 * 4) "import ppn as p"
 * 5) a=p.xtime(".")
 * 6) a.cols
 * 7) a.get('N  14') or whatever.
 * 8) then plotting (see how to plot in examples directory's python files)

Input files
Note PPN is the code and many astrophysical environment is achieved by changing input files. Typical input files are


 * 1) ppn_frame.input; handles initial condition like time-temperature-rho curves
 * 2) ppn_physics.input; nuclear network, initial abundances
 * 3) pen_solver.input; solver (computation options)

Note trajectory.input should be prepared by outputs from MESA calculations.

Examples
There is an examples directory, which contains a lot of PPN, MPPNP examples. Some examples can be used by running "./ppn.exe" after "make", while some needs to run by "./run_me.sh" which contains information about trajectory file (time:temperature:density).