Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
WeiqunZhang committed Oct 1, 2019
2 parents 346882f + ccefb4d commit 5bca4b6
Show file tree
Hide file tree
Showing 213 changed files with 11,666 additions and 7,464 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ addons:
install:
- pip install sphinx sphinx_rtd_theme breathe

script: bash ./build_and_deploy.sh
script: travis_wait bash ./build_and_deploy.sh

env:
global:
Expand Down
25 changes: 17 additions & 8 deletions Docs/sphinx_documentation/source/AmrLevel_Chapter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,23 @@ than the classes created for the Advection_AmrCore tutorial.
and attributes.

Many of our mature, public application codes contain derived classes that
inherit directly from :cpp:`AmrLevel`. These include our compressible
astrophysics code, CASTRO, (available in the AMReX-Astro/Castro github
repository) and our computational cosmology code, Nyx (available in the
AMReX-Astro/Nyx github repository) . Our incompressible Navier-Stokes code,
IAMR (available in the AMReX-codes/IAMR github repository) has a pure virtual
class called :cpp:`NavierStokesBase` that inherits from :cpp:`AmrLevel`, and an
additional derived class :cpp:`NavierStokes`. Our low Mach number combustion
code PeleLM (not yet public) also inherits from :cpp:`NavierStokesBase`.
inherit directly from :cpp:`AmrLevel`. These include:

- The :cpp:`Castro` class in our compressible astrophysics code, CASTRO,
(available in the AMReX-Astro/Castro github repository)

- The :cpp:`Nyx` class in our computational cosmology code, Nyx
(available in the AMReX-Astro/Nyx github repository).

- Our incompressible Navier-Stokes code, IAMR
(available in the AMReX-codes/IAMR github repository) has a pure virtual
class called :cpp:`NavierStokesBase` that inherits from :cpp:`AmrLevel`, and an
additional derived class :cpp:`NavierStokes`.

- Our low Mach number combustion code PeleLM
(available in the AMReX-Combustion/PeleLM github repository)
contains a derived class :cpp:`PeleLM` that also inherits from
:cpp:`NavierStokesBase` (but does not use :cpp:`NavierStokes`).

The tutorial code in ``amrex/Tutorials/Amr/Advection_AmrLevel`` gives a simple
example of a class derived from :cpp:`AmrLevel` that can be used to solve the
Expand Down
24 changes: 23 additions & 1 deletion Docs/sphinx_documentation/source/BuildingAMReX.rst
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,6 @@ use homebrew's mpich. Normally is it fine to simply install its binaries:
``brew install mpich``. But if you are experiencing problems, we suggest
building mpich using homebrew's gcc: ``brew install mpich --cc=gcc-8``.


.. _sec:build:lib:

Building libamrex
Expand Down Expand Up @@ -634,3 +633,26 @@ You can tell CMake to look for the AMReX library in non-standard paths by settin
More details on ``find_package`` can be found
`here <https://cmake.org/cmake/help/v3.14/command/find_package.html>`_.

.. _sec:build:windows:

AMReX on Windows
================

The AMReX team does development on Linux machines, from desktop workstations to supercomputers. Many people also use AMReX on Macs without issues.

We do not officially support AMReX on Windows. However, we believe there are no fundamental issues for making it work on Windows.
AMReX mostly uses standard C++11, and there are only a few places that are UNIX/Linux specific. These are:

(1) File system: We use some of the POSIX standard functions for operations like making a new directory, detecting if a file exists, etc.
C++17 now has a filesystem library that should work on any platform. AMReX does not require C++17, but we are happy to provide a C++17 support for the file system part.

(2) Signal handling: We use POSIX handling when floating point exceptions, segmentation faults, etc. happen.
This capability allows us to print a backtrace of what leads to the error and is very useful for debugging but not required for using AMReX.
Some of the POSIX handling is platform-dependent, and Windows does seem to have this capability. If you need it, it should not be hard for you to make it work on Windows.

(3) Memory profiling: This is an optional feature in AMReX that is not enabled by default.
It reads memory system information from the OS to give us a summary of our memory usage.

One other caveat is regarding the size of ``long``, which is 4 on Windows and 8 on other 64-bit systems.
This might cause integer overflow for really big runs (unlikely on Windows desktops as opposd to clusters).
If this becomes an issue, please let us know and we could define amrex::Long that would be guaranteed to be 64 bits.
2 changes: 1 addition & 1 deletion Docs/sphinx_documentation/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Key features of AMReX include:

- Support for embedded boundary (cut cell) representations of complex geometries

- Parallelization via flat MPI, OpenMP, hybrid MPI/OpenMP, or MPI/MPI
- Parallelization via flat MPI, OpenMP, hybrid MPI/OpenMP, hybrid MPI/CUDA, or MPI/MPI

- Parallel I/O

Expand Down
Loading

0 comments on commit 5bca4b6

Please sign in to comment.