AMReX-Astro / Castro

Castro (Compressible Astrophysics): An adaptive mesh, astrophysical compressible (radiation-, magneto-) hydrodynamics simulation code for massively parallel CPU and GPU architectures.
http://amrex-astro.github.io/Castro
Other
301 stars 98 forks source link

JOSS: list of requirements #1155

Closed bonh closed 4 years ago

bonh commented 4 years ago

https://github.com/openjournals/joss-reviews/issues/2513

I am not able to find a list of required packages. I can determine from [https://amrex-astro.github.io/Castro/docs/getting_started.html#building-the-code]() that at least I need a working compiler suite and perhaps a working MPI implementation. Is that all? Especially, if I plan to compile your code on a hpc cluster (you call it "Massively Parallel", so that seems to be the target platform, right?) an exhaustive list of requirements (and incompatibilities, e.g., compilers you know your code does not work with) is really helpful.

Secondly, it is not clear to me for what the requirements.txt in the root of the repo is used for.

bonh commented 4 years ago

Compiler flags you know work well would be great too.

bonh commented 4 years ago
The Open MPI wrapper compiler was unable to find the specified compiler
/usr/bin/gfortran in your PATH.

Note that this compiler was either specified at configure time or in
one of several possible environment variables.
--------------------------------------------------------------------------
make: *** [../../../external/amrex/Tools/GNUMake/Make.rules:246: tmp_build_dir/o/2d.gnu.MPI.EXE/AMReX_fort_mod.o] Error 1

So I do need a working fortran compiler, right? Oh, it says so in the doc, did not see that

(this will use g++ and gfortran)

harpolea commented 4 years ago

Hi @bonh! The requirements.txt file is used in our docs build, as can be seen from looking at the action (https://github.com/AMReX-Astro/Castro/blob/development/.github/workflows/gh-pages.yml). We use Sphinx to build the documentation, and the requirements.txt file contains all the additional Python packages required.

harpolea commented 4 years ago

The packages required are listed at the top of the Getting Started page that you linked to:

Castro has two source dependencies: AMReX, the adaptive mesh library, and StarKiller Microphysics, the collection of equations of state, reaction networks, and other microphysics. The instructions below describe how to get these dependencies automatically with Castro.

If you follow the 'Downloading the code' section, then it will instruct you how to install these packages as git submodules.

We also suggest on that page several compilers (GNU, PGI and Intel), however we are updating it to make it more explicit that a C++ compiler, a Fortran 20xx compiler, python 3.x, and GNU make are required.

harpolea commented 4 years ago

In addition to this, we have a page describing how to build our codes (including Castro) on several HPC clusters that we use in our group, as well as on a standard Linux workstation (https://amrex-astro.github.io/workflow/index.html). We shall be adding a link to this page on our Getting Started page.

harpolea commented 4 years ago

Standard compiler flags are taken care of by the AMReX framework on which Castro is built (https://github.com/AMReX-Codes/amrex/tree/development/Tools/GNUMake).

Castro defines a number of custom compiler flags (listed here https://amrex-astro.github.io/Castro/docs/build_system.html) which can be used to control the parallelism and which physics solvers are used.

zingale commented 4 years ago

Here's a link to the updated documentation:

https://amrex-astro.github.io/Castro/docs/dev/getting_started.html

bonh commented 4 years ago

Perfect, thanks! You can close the issue.