Skip to content

Commit

Permalink
Merge pull request #1281 from cekees/rc1.8.3
Browse files Browse the repository at this point in the history
1.8.3 release
  • Loading branch information
cekees authored Sep 16, 2024
2 parents 8dbd622 + 4658d3f commit 1b25757
Show file tree
Hide file tree
Showing 1,187 changed files with 4,443 additions and 5,802 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,6 @@ proteus/mprans/cRANS3PSed.cpp
proteus/mprans/cVOF3P.cpp
proteus/mprans/cVOS3P.cpp
proteus/superluWrappers.c
proteus/MeshAdaptPUMI/MeshAdapt.cpp
proteus/tests/ci/meshNoVessel.edge
proteus/tests/ci/meshNoVessel.neigh
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "stack"]
path = stack
url = https://github.com/erdc/stack
22 changes: 13 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,20 @@ jobs:
install:
- git lfs pull
- sudo apt-get update
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
- bash miniconda.sh -b -p $HOME/miniconda
- source "$HOME/miniconda/etc/profile.d/conda.sh"
- wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O miniforge3.sh;
- bash miniforge3.sh -b -p $HOME/miniforge3
- source "$HOME/miniforge3/etc/profile.d/conda.sh"
- source "$HOME/miniforge3/etc/profile.d/mamba.sh"
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
- conda info -a
- conda env create -f environment-dev.yml
- conda activate proteus-dev
- PROTEUS_OPT="-g0 -O1" N=2 make develop-conda
- mamba init
- mamba update -q conda mamba
- mamba info -a
- mamba env create -f environment-dev.yml
- mamba activate proteus-dev
- pip install -v . --no-build-isolation --no-binary=":all:"
script:
- export MPLBACKEND="AGG"
- py.test -n 1 --forked -v proteus/tests --ignore proteus/tests/POD
- mkdir test_output
- cd test_output
- py.test -v --forked --import-mode=importlib ../test
20 changes: 12 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ all: develop

SHELL=/usr/bin/env bash
N ?= 1
PROTEUS ?= $(shell python3 -c "from __future__ import print_function; import os; print(os.path.realpath(os.getcwd()))")
PROTEUS ?= $(shell python3 -c "import os; print(os.path.realpath(os.getcwd()))")
VER_CMD = git log -1 --pretty="%H"
PROTEUS_BUILD_CMD = python3 setup.py build_ext
PROTEUS_INSTALL_CMD = pip install -v . #python3 setup.py install
PROTEUS_INSTALL_CMD = pip3 install --no-deps --no-build-isolation --no-binary=:all: -v . #python3 setup.py install
PROTEUS_DEVELOP_BUILD_CMD = python3 setup.py build_ext -i
PROTEUS_DEVELOP_CMD = pip install -v -e .
PROTEUS_DEVELOP_CMD = pip3 install --no-deps --no-build-isolation --no-binary=:all: -v -e .
#
ifeq (${N}, 1)
PROTEUS_BUILD_CMD = python3 -c "print('Letting install handle build_ext')"
Expand All @@ -28,6 +28,9 @@ PROTEUS_ARCH ?= $(shell [[ $$(hostname) = centennial* ]] && echo "centennial" ||
PROTEUS_ARCH ?= $(shell [[ $$(hostname) = thunder* ]] && echo "thunder" || python3 -c "import sys; print(sys.platform)")
PROTEUS_ARCH ?= $(shell [[ $$(hostname) = gordon* ]] && echo "gordon" || python3 -c "import sys; print(sys.platform)")
PROTEUS_ARCH ?= $(shell [[ $$(hostname) = conrad* ]] && echo "conrad" || python3 -c "import sys; print(sys.platform)")
ifdef PROTEUS_PREFIX
CONDA_PREFIX=''
endif
ifdef CONDA_PREFIX
PROTEUS_ARCH ?= linux
PROTEUS_PREFIX ?= ${CONDA_PREFIX}
Expand All @@ -37,6 +40,7 @@ PROTEUS_PREFIX ?= ${PROTEUS}/${PROTEUS_ARCH}
PROTEUS_PYTHON ?= ${PROTEUS_PREFIX}/bin/python3
PROTEUS_VERSION := $(shell ${VER_CMD})
endif

TEST_MARKER="' '"

define show_info
Expand Down Expand Up @@ -151,6 +155,7 @@ ${PROTEUS_PREFIX}/artifact.json: stack/default.yaml $(shell find stack -type f)
@echo "************************"
@echo "Dependency build complete"
@echo "************************"
${PROTEUS_PREFIX}/bin/python -m ensurepip

${PROTEUS_PREFIX}/bin/proteus_env.sh: ${PROTEUS_PREFIX}/artifact.json
@echo "************************"
Expand All @@ -166,7 +171,6 @@ install: ${PROTEUS_PREFIX}/bin/proteus_env.sh stack/default.yaml ${PROTEUS_PREFI
@echo "Installing..."
@echo "************************"
$(call show_info)
${PROTEUS_ENV} ${PROTEUS_BUILD_CMD}
${PROTEUS_ENV} ${PROTEUS_INSTALL_CMD}
@echo "************************"
@echo "done installing standard extension modules"
Expand All @@ -193,7 +197,7 @@ develop: ${PROTEUS_PREFIX}/bin/proteus_env.sh stack/default.yaml ${PROTEUS_PREFI
@echo "Installing development version"
@echo "************************"
$(call show_info)
${PROTEUS_ENV} pip install py2gmsh pytest pytest-xdist pytest-cov tables future hypothesis
${PROTEUS_ENV} pip3 install py2gmsh pytest pytest-xdist pytest-cov pytest-forked hypothesis
${PROTEUS_ENV} ${PROTEUS_DEVELOP_BUILD_CMD}
${PROTEUS_ENV} ${PROTEUS_DEVELOP_CMD}
@echo "************************"
Expand All @@ -217,7 +221,7 @@ develop-conda:
@echo "************************************"
$(call show_info)
${PROTEUS_DEVELOP_CMD}
pip install pytest-xdist-forked
pip3 install pytest-forked
@echo "************************"
@echo "Development installation complete"
@echo "************************"
Expand Down Expand Up @@ -319,7 +323,7 @@ ifdef CONDA_PREFIX
else
source ${PROTEUS_PREFIX}/bin/proteus_env.sh
endif
pip install configparser ipyparallel ipython terminado jupyter ipywidgets ipyleaflet jupyter_dashboards pythreejs rise cesiumpy ipympl sympy transforms3d ipymesh voila ipyvolume ipysheet xonsh[ptk,linux,proctitle] ipytree
pip3 install configparser ipyparallel ipython terminado jupyter ipywidgets ipyleaflet jupyter_dashboards pythreejs rise cesiumpy ipympl sympy transforms3d ipymesh voila ipyvolume ipysheet xonsh[ptk,linux,proctitle] ipytree
ipcluster nbextension enable --user
jupyter nbextension enable --py --sys-prefix ipysheet
jupyter nbextension enable --py --sys-prefix widgetsnbextension
Expand Down Expand Up @@ -353,7 +357,7 @@ jupyterlab:
@echo "************************************"
@echo "Enabling jupyter lab"
source ${PROTEUS_PREFIX}/bin/proteus_env.sh
pip install jupyterlab jupyterlab_latex
pip3 install jupyterlab jupyterlab_latex
jupyter serverextension enable --py jupyterlab --sys-prefix
jupyter serverextension enable --sys-prefix --py jupyterlab_latex
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Expand Down
55 changes: 46 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,64 @@ rapidly developing computer models and numerical methods.


```bash
conda install proteus -c conda-forge
mamba install proteus -c conda-forge
```

For a development installation, you want to install Proteus's dependencies and compile Proteus from source:

```bash
conda env create -f environment-dev.yml
conda activate proteus-dev
make develop-conda # or pip install -v -e .
mamba env create -f environment-dev.yml #environment-dev-up.yml to try unpinned dependencies
mamba activate proteus-dev
pip install -v -e .
```

You can also build proteus and dependencies from source (without conda) with
# HPC Installation

```bash
make develop
make test
For installation on high performance environments you may want to install Proteus's dependencies from source as well. We recommend using the PETSc build system to install most of the dependencies. The following is general outline:

Create a basic python environment you can install into:

```
mamba env create -f petsc-dev.yml
mamba activate petsc-dev
```

or

```
python -m venv petsc-dev
pip install setuptools make cmake cython swig pybind11 numpy
```

Next, build petsc from source

```
bash scripts/petsc_config_linux_conda_seq.sh #see https://petsc.org/release/install/
```

Next, build additional C++ dependencies and install into environment prefix (e.g $CONDA_PREFIX or $VIRTUAL_ENV)

https://github.com/projectchrono/chrono #>=9.0.1, with python bindings
https://github.com/scorec/core #>=2.2.8, shared, python bindinds not needed
https://github.com/xtensor-stack/xtl
https://github.com/xtensor-stack/xtensor
https://github.com/xtensor-stack/xtensor-python

Finally, locally build and install remaining python dependencies into environment

```
CC=mpicc CXX=mpicxx MPI_DIR=$MPI_ROOT pip install -v mpi4py==3.1.6 --no-build-isolation --no-binary=:all:
PETSC_DIR=$CONDA_PREFIX PETSC_ARCH="" pip install -v ../petsc/src/binding/petsc4py --no-build-isolation --no-binary=:all:
HDF5_MPI=ON HDF5_DIR=${CONDA_PREFIX} CC=mpicc CXX=mpicxx pip install -v h5py --no-build-isolation --no-binary=:all: #note h5py depends on mpi4py for this config
CC=mpicc CXX=mpicxx pip install -v . --no-build-isolation --no-binary=:all:
```

See https://github.com/erdc/proteus/wiki/How-to-Build-Proteus for more information on building the entire stack.
Some optional packages can be installed with pip/mamba: py2gmsh, memory_profiler, scipy, pytest.

See https://github.com/erdc/proteus/wiki/How-to-Build-Proteus for old information on building the entire stack.

# Developer Information

The source code, wiki, and issue tracker are on GitHub at

https://github.com/erdc/proteus.
2 changes: 1 addition & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = proteus
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.8.2.dev0
PROJECT_NUMBER = 1.8.3

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -450,4 +450,4 @@ def linkcode_resolve(domain, info):
# "exhaleExecutesDoxygen": True,
# #"exhaleUseDoxyfile": True,
# "exhaleDoxygenStdin": exhaleDoxygenStdin
#}
#}
19 changes: 6 additions & 13 deletions environment-dev-up.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: proteus-dev-up-240321
name: proteus-dev-up-240912
channels:
- conda-forge
- defaults
Expand All @@ -8,7 +8,7 @@ dependencies:
- make
- setuptools
- cython
- daetk
- pybind11
- hdf5 =*=*mpich*
- h5py =*=*mpich*
- metis
Expand All @@ -20,40 +20,33 @@ dependencies:
- parmetis
- petsc4py
- petsc
- scorec
- superlu
- superlu_dist
- scorec >=2.2.8
- triangle
- pychrono
- pychrono >=9.0.1
- gmsh
- matplotlib
- mpi4py
- pytables
- pytest
- pytest-cov
- pytest-xdist
- scipy
- tetgen
- ncurses
- python
- future
- ipyparallel
- pillow
- xtensor-python
- git-lfs
- eigen
- zoltan
- hypre
- mumps-mpi
- numexpr
- ptscotch
- scalapack
- tbb
- zipp
- parso
- pycparser
- ipython
- decorator
- cffi
- netcdf4
- jupyterlab
- jupyterlab
- openmp
70 changes: 31 additions & 39 deletions environment-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,54 +5,46 @@ channels:
dependencies:
- pip =24.0
- compilers =1.7.0
- make =4.3
- setuptools =69.2.0
- cython =3.0.9
- daetk =1.0.1
- make =4.4.1
- setuptools =73.0.1
- cython =3.0.11
- hdf5 =1.14.3=*mpich*
- h5py =3.10.0=*mpich*
- h5py =3.11.0=*mpich*
- metis =5.1.0
- mpich =4.2.0
- mpich-mpicc =4.2.0
- mpich-mpicxx =4.2.0
- numpy =1.26.4
- openblas =0.3.26
- mpich =4.2.2
- mpich-mpicc =4.2.2
- mpich-mpicxx =4.2.2
- numpy =2.1.1
- openblas =0.3.28
- parmetis =4.0.3
- petsc4py =3.20.5
- petsc =3.20.5
- scorec =2.2.7
- petsc4py =3.21.5
- petsc =3.21.5
- scorec =2.2.8
- superlu =5.2.2
- superlu_dist =8.2.1
- superlu_dist =9.0.0
- triangle =1.6
- pychrono =7.0.0
- pychrono =9.0.1
- gmsh =4.12.2
- matplotlib =3.8.3
- mpi4py =3.1.5
- pytables =3.9.2
- pytest =8.1.1
- pytest-cov =4.1.0
- pytest-xdist =3.5.0
- scipy =1.12.0
- matplotlib =3.9.2
- mpi4py =4.0.0
- pytest =8.3.3
- pytest-cov =5.0.0
- pytest-xdist =3.6.1
- pytest-forked
- scipy =1.14.1
- tetgen =1.6.0
- ncurses =6.4.20240210
- python =3.10.14
- future =1.0.0
- ipyparallel =8.7.0
- pillow =10.2.0
- ncurses =6.5
- python =3.12.5
- xtensor-python = 0.27.0
- git-lfs =3.5.1
- eigen =3.4.0
- zoltan =3.901
- hypre =2.28.0
- mumps-mpi =5.6.2
- numexpr =2.9.0
- ptscotch =7.0.4
- hypre =2.31.0
- mumps-mpi =5.7.3
- scalapack =2.2.0
- tbb =2021.11.0
- zipp =3.17.0
- parso =0.8.3
- pycparser =2.21
- ipython =8.22.2
- decorator =5.1.1
- cffi =1.16.0
- sympy =1.12
- tbb =2021.13.0
- zipp =3.20.1
- parso =0.8.4
- pycparser =2.22
- cffi =1.17.1
- sympy =1.13.2
15 changes: 15 additions & 0 deletions environment-petsc-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: petsc-dev
channels:
- conda-forge
- defaults
dependencies:
- pip
- setuptools
- make
- cmake
- cython
- swig
- numpy
- pybind11
- openblas
- tetgen
16 changes: 16 additions & 0 deletions petsc-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: petsc-dev
channels:
- conda-forge
- defaults
dependencies:
- compilers
- python
- numpy
- setuptools
- pip
- make
- cmake
- cython
- swig
- ncurses
- xtensor-python
Loading

0 comments on commit 1b25757

Please sign in to comment.