diff --git a/.github/workflows/sharpy_tests.yaml b/.github/workflows/sharpy_tests.yaml index 6945cc94d..d5dff4462 100644 --- a/.github/workflows/sharpy_tests.yaml +++ b/.github/workflows/sharpy_tests.yaml @@ -51,7 +51,7 @@ jobs: hash -r export QT_QPA_PLATFORM='offscreen' sudo apt install libeigen3-dev - conda env create -f utils/environment_new.yml + conda env create -f utils/environment.yml conda init bash source activate sharpy git submodule init diff --git a/Dockerfile b/Dockerfile index d96957346..90c0450d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,8 @@ RUN conda init bash && \ conda config --set always_yes yes --set changeps1 no && \ conda update -q conda && \ conda config --set auto_activate_base false && \ - conda env create -f /sharpy_dir/utils/environment_new.yml && conda clean -afy && \ + conda env create -f /sharpy_dir/utils/environment.yml && conda clean -afy && \ + find /miniconda3/ -follow -type f -name '*.a' -delete && \ find /miniconda3/ -follow -type f -name '*.pyc' -delete && \ find /miniconda3/ -follow -type f -name '*.js.map' -delete diff --git a/docs/source/content/contributing.md b/docs/source/content/contributing.md index 92caf694a..3734a3086 100644 --- a/docs/source/content/contributing.md +++ b/docs/source/content/contributing.md @@ -11,7 +11,7 @@ If you are submitting a bug report: same branch. 2. Double check that your python distribution is updated by comparing with -the `utils/environment_*.yml` file. +the `utils/environment.yml` file. 3. Try to assemble a minimal working example that can be run quickly and easily. diff --git a/docs/source/content/installation.md b/docs/source/content/installation.md index e9cb91a2a..a3f6d6741 100644 --- a/docs/source/content/installation.md +++ b/docs/source/content/installation.md @@ -1,5 +1,5 @@ # SHARPy v2.0 Installation Guide -__Last revision 27 June 2023__ +__Last revision 9 October 2023__ The following step by step tutorial will guide you through the installation process of SHARPy. This is the updated process valid from v2.0. @@ -11,7 +11,8 @@ SHARPy is being developed and tested on the following operating systems: * CentOS 7 and CentOS 8 * Ubuntu 18.04 LTS * Debian 10 -* MacOS Mojave and Catalina +* MacOS Mojave and Catalina (Intel) +* MacOS Sonoma (Apple Silicon M2) Windows users can also run it by first installing the Windows Subsystem for Linux (https://learn.microsoft.com/en-us/windows/wsl/install) and a XServer such as GWSL, which can be installed through the Microsoft Store. SHARPy is also available to the vast majority of operating systems that are supported by Docker @@ -71,16 +72,13 @@ or running any SHARPy cases. conda install python=3.10 ``` -4. Create the conda environment that SHARPy will use. Change `environment_new.yml` to read `environment_macos.yml` - if you are installing SHARPy on Mac OS X. +4. Create the conda environment that SHARPy will use: ```bash cd sharpy/utils - conda env create -f environment_new.yml + conda env create -f environment.yml cd ../.. ``` - This should take approximately 15 minutes to complete (Tested on Ubuntu 22.04.1). We also provide a - lightweight environment with the minimum required dependencies. If you'd like to use it, create the - conda environment using `environment_minimal.yml`. + This should take approximately 15 minutes to complete (Tested on Ubuntu 22.04.1). 5. Activate the `sharpy` conda environment: ```bash @@ -155,11 +153,10 @@ to your taste. ``` This command will check out the `develop` branch and set it to track the remote origin. It will also set the submodules (xbeam and UVLM) to the right commit. -2. Create the conda environment that SHARPy will use. Change `environment_new.yml` to read `environment_macos.yml` - if you are installing SHARPy on Mac OS X. +2. Create the conda environment that SHARPy will use: ```bash cd sharpy/utils - conda env create -f environment_new.yml + conda env create -f environment.yml cd ../.. ``` diff --git a/utils/environment_new.yml b/utils/environment.yml similarity index 97% rename from utils/environment_new.yml rename to utils/environment.yml index e16da0afd..f6c7afba7 100644 --- a/utils/environment_new.yml +++ b/utils/environment.yml @@ -23,4 +23,4 @@ dependencies: - xlrd>=1.2.0 - python=3.10 - openpyxl>=3.0.10 - - cmake=3.14.0 \ No newline at end of file + - cmake>=3.19.0 diff --git a/utils/environment_linux.yml b/utils/environment_linux.yml deleted file mode 100644 index 0834869ce..000000000 --- a/utils/environment_linux.yml +++ /dev/null @@ -1,170 +0,0 @@ -name: sharpy_env -channels: - - conda-forge - - defaults -dependencies: - - _libgcc_mutex=0.1=main - - alabaster=0.7.12=py37_0 - - apptools=4.4.0=py37_1 - - asn1crypto=1.2.0=py37_0 - - attrs=19.3.0=py_0 - - babel=2.7.0=py_0 - - backcall=0.1.0=py37_0 - - bleach=3.1.0=py_0 - - bzip2=1.0.8=h7b6447c_0 - - ca-certificates=2020.12.5=ha878542_0 - - certifi=2020.12.5=py37h89c1867_1 - - cffi=1.13.1=py37h2e261b9_0 - - chardet=3.0.4=py37_1003 - - cmake=3.14.0=h52cb24c_0 - - colorama=0.4.1=py37_0 - - commonmark=0.9.0=py_0 - - configobj=5.0.6=py37_1 - - control=0.8.4=py37h89c1867_0 - - cryptography=2.8=py37h1ba5d50_0 - - curl=7.67.0=hbc83047_0 - - cycler=0.10.0=py37_0 - - dbus=1.13.12=h746ee38_0 - - decorator=4.4.1=py_0 - - defusedxml=0.6.0=py_0 - - dill=0.3.1.1=py37_0 - - docutils=0.15.2=py37_0 - - eigen=3.3.7=hfd86e86_0 - - entrypoints=0.3=py37_1000 - - envisage=4.8.0=py_0 - - expat=2.2.6=he6710b0_0 - - fontconfig=2.13.0=h9420a91_0 - - freetype=2.9.1=h8a8886c_1 - - future=0.18.2=py37_0 - - glib=2.63.1=h5a9c865_0 - - gst-plugins-base=1.14.0=hbbd80ab_1 - - gstreamer=1.14.0=hb453b48_1 - - h5py=2.9.0=nompi_py37hcafd542_1103 - - hdf4=4.2.13=h3ca952b_2 - - hdf5=1.10.4=hb1b8bf9_0 - - icu=58.2=h9c2bf20_1 - - idna=2.8=py37_0 - - imagesize=1.1.0=py37_0 - - importlib_metadata=0.23=py37_0 - - intel-openmp=2019.4=243 - - ipykernel=5.1.3=py37h39e3cac_0 - - ipython=7.10.1=py37h39e3cac_0 - - ipython_genutils=0.2.0=py_1 - - jedi=0.15.1=py37_0 - - jinja2=2.10.3=py_0 - - jpeg=9b=h024ee3a_2 - - json5=0.8.5=py_0 - - jsoncpp=1.8.4=hfd86e86_0 - - jsonschema=3.1.1=py37_0 - - jupyter_client=5.3.3=py37_1 - - jupyter_core=4.5.0=py_0 - - jupyterlab=1.2.3=py_0 - - jupyterlab_server=1.0.6=py_0 - - kiwisolver=1.1.0=py37he6710b0_0 - - krb5=1.16.1=h173b8e3_7 - - lapack=3.6.1=ha44fe06_2 - - libblas=3.8.0=14_openblas - - libcblas=3.8.0=14_openblas - - libcurl=7.67.0=h20c2e04_0 - - libedit=3.1.20181209=hc058e9b_0 - - libffi=3.2.1=hd88cf55_4 - - libgcc-ng=9.1.0=hdf63c60_0 - - libgfortran=3.0.0=1 - - libgfortran-ng=7.3.0=hdf63c60_0 - - liblapack=3.8.0=14_openblas - - libnetcdf=4.6.1=h11d0813_2 - - libogg=1.3.2=h7b6447c_0 - - libopenblas=0.3.7=h5ec1e0e_4 - - libpng=1.6.37=hbc83047_0 - - libsodium=1.0.16=h1bed415_0 - - libssh2=1.8.2=h1ba5d50_0 - - libstdcxx-ng=9.1.0=hdf63c60_0 - - libtheora=1.1.1=h5ab3b9f_1 - - libtiff=4.1.0=h2733197_0 - - libuuid=1.0.3=h1bed415_2 - - libvorbis=1.3.6=h7b6447c_0 - - libxcb=1.13=h1bed415_1 - - libxml2=2.9.9=hea5a465_1 - - libxslt=1.1.33=h7d1a2b0_0 - - lxml=4.4.1=py37hefd8a0e_0 - - lz4-c=1.8.1.2=h14c3975_0 - - markupsafe=1.1.1=py37h7b6447c_0 - - matplotlib=3.1.1=py37h5429711_0 - - matplotlib-base=3.1.3=py37hef1b27d_0 - - mayavi=4.7.1=py37h94891b3_2 - - mistune=0.8.4=py37h516909a_1000 - - more-itertools=7.2.0=py_0 - - nbconvert=5.6.1=py37_0 - - nbformat=4.4.0=py_1 - - nbsphinx=0.4.3=py_0 - - ncurses=6.1=he6710b0_1 - - notebook=6.0.1=py37_0 - - numpy=1.17.3=py37h95a1406_0 - - openssl=1.1.1i=h27cfd23_0 - - packaging=19.2=py_0 - - pandas=0.25.3=py37hb3f55d8_0 - - pandoc=2.7.3=0 - - pandocfilters=1.4.2=py_1 - - parso=0.5.1=py_0 - - pcre=8.43=he6710b0_0 - - pexpect=4.7.0=py37_0 - - pickleshare=0.7.5=py37_0 - - pip=19.3.1=py37_0 - - prometheus_client=0.7.1=py_0 - - prompt_toolkit=3.0.2=py_0 - - ptyprocess=0.6.0=py37_0 - - pycparser=2.19=py37_0 - - pyface=6.1.2=py37_0 - - pygments=2.4.2=py_0 - - pyopenssl=19.0.0=py37_0 - - pyparsing=2.4.4=py_0 - - pyqt=5.9.2=py37h05f1152_2 - - pyrsistent=0.15.5=py37h516909a_0 - - pysocks=1.7.1=py37_0 - - python=3.7.5=h0371630_0 - - python-dateutil=2.8.1=py_0 - - python_abi=3.7=1_cp37m - - pytz=2019.3=py_0 - - pyyaml=5.1.2=py37h7b6447c_0 - - pyzmq=18.1.0=py37he6710b0_0 - - qt=5.9.7=h5867ecd_1 - - readline=7.0=h7b6447c_5 - - recommonmark=0.6.0=py_0 - - requests=2.22.0=py37_0 - - rhash=1.3.8=h1ba5d50_0 - - scipy=1.3.2=py37h921218d_0 - - send2trash=1.5.0=py37_0 - - setuptools=41.6.0=py37_0 - - sip=4.19.8=py37hf484d3e_0 - - six=1.13.0=py37_0 - - snowballstemmer=2.0.0=py_0 - - sphinx=3.0.3=py_0 - - sphinx_rtd_theme=0.5.0=pyh9f0ad1d_0 - - sphinxcontrib-applehelp=1.0.1=py_0 - - sphinxcontrib-devhelp=1.0.1=py_0 - - sphinxcontrib-htmlhelp=1.0.2=py_0 - - sphinxcontrib-jsmath=1.0.1=py_0 - - sphinxcontrib-qthelp=1.0.2=py_0 - - sphinxcontrib-serializinghtml=1.1.3=py_0 - - sqlite=3.30.1=h7b6447c_0 - - tbb=2019.8=hfd86e86_0 - - terminado=0.8.3=py37_0 - - testpath=0.4.4=py_0 - - tk=8.6.8=hbc83047_0 - - tornado=6.0.3=py37h7b6447c_0 - - traitlets=4.3.3=py37_0 - - traits=5.2.0=py37h7b6447c_0 - - traitsui=6.1.3=py_0 - - urllib3=1.24.2=py37_0 - - vtk=8.2.0=py37haa4764d_200 - - wcwidth=0.1.7=py37_0 - - webencodings=0.5.1=py_1 - - wheel=0.33.6=py37_0 - - xlrd=1.2.0=py37_0 - - xz=5.2.4=h14c3975_4 - - yaml=0.1.7=had09818_2 - - zeromq=4.3.1=he6710b0_3 - - zipp=0.6.0=py_0 - - zlib=1.2.11=h7b6447c_3 - - zstd=1.3.7=h0b5b093_0 - - slycot=0.4.0.0=py37h27181d0_1 diff --git a/utils/environment_macos.yml b/utils/environment_macos.yml deleted file mode 100644 index 740bc301b..000000000 --- a/utils/environment_macos.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: sharpy_env -channels: - - conda-forge - - defaults -dependencies: - - _libgcc_mutex=0.1=main - - alabaster=0.7.12=py37_0 - - apptools=4.4.0=py37_1 - - blas=1.0=mkl - - bzip2=1.0.8=h01d97ff_1 - - ca-certificates=2020.10.14=0 - - certifi=2020.6.20=py37_0 - - cmake=3.14.0=haff7e42_0 - - colorama=0.4.1=py37_0 - - configobj=5.0.6=py37_1 - - control=0.8.4=py37hf985489_0 - - coverage=4.5.4=py37h1de35cc_0 - - curl=7.67.0=ha441bb4_0 - - cycler=0.10.0=py37_0 - - dbus=1.13.12=h90a0687_0 - - dill=0.3.1.1=py37_0 - - eigen=3.3.7=h04f5b5a_1000 - - envisage=4.8.0=py_0 - - expat=2.2.6=h0a44026_0 - - freetype=2.9.1=hb4e5f40_0 - - future=0.18.2=py37_0 - - gettext=0.19.8.1=h15daf44_3 - - glib=2.63.1=hd977a24_0 - - h5py=2.9.0=py37h3134771_0 - - hdf4=4.2.13=h39711bb_2 - - hdf5=1.10.4=hfa1e0ec_0 - - icu=58.2=h4b95b61_1 - - intel-openmp=2019.4=233 - - jpeg=9b=he5867d9_2 - - jsoncpp=1.8.4=h04f5b5a_0 - - kiwisolver=1.1.0=py37h0a44026_0 - - krb5=1.16.1=hddcf347_7 - - libcurl=7.67.0=h051b688_0 - - libcxx=4.0.1=hcfea43d_1 - - libcxxabi=4.0.1=hcfea43d_1 - - libedit=3.1.20181209=hb402a30_0 - - libffi=3.2.1=h475c297_4 - - libgfortran=3.0.1=h93005f0_2 - - libiconv=1.15=hdd342a3_7 - - libnetcdf=4.6.1=hd5207e6_2 - - libogg=1.3.2=h1de35cc_0 - - libopenblas=0.3.7=hd44dcd8_1 - - libpng=1.6.37=ha441bb4_0 - - libssh2=1.8.2=hcdc9a53_2 - - libtheora=1.1.1=hb4e5f40_1 - - libtiff=4.1.0=hcb84e12_0 - - libvorbis=1.3.6=h1de35cc_0 - - libxml2=2.9.9=hf6e021a_1 - - libxslt=1.1.33=h33a18ac_0 - - lxml=4.4.2=py37hef8c89e_0 - - lz4-c=1.8.1.2=h1de35cc_0 - - matplotlib=3.1.1=py37h54f8f79_0 - - matplotlib-base=3.1.1=py37h3a684a6_1 - - mayavi=4.6.2=py37hdde6e19_4 - - mkl=2019.4=233 - - mkl-include=2019.4=233 - - mkl-service=2.3.0=py37hfbe908c_0 - - mkl_fft=1.0.15=py37h5e564d8_0 - - mkl_random=1.1.0=py37ha771720_0 - - ncurses=6.1=h0a44026_1 - - numpy=1.17.4=py37h890c691_0 - - numpy-base=1.17.4=py37h6575580_0 - - openblas=0.3.7=hd44dcd8_1 - - openssl=1.1.1h=haf1e3a3_0 - - pandas=0.25.3=py37h0a44026_0 - - pcre=8.43=h0a44026_0 - - pip=19.3.1=py37_0 - - pyface=6.1.2=py37_0 - - pygments=2.5.2=py_0 - - pyparsing=2.4.5=py_0 - - pyqt=5.9.2=py37h655552a_2 - - python=3.7.5=h359304d_0 - - python-dateutil=2.8.1=py_0 - - python_abi=3.7=1_cp37m - - pytz=2019.3=py_0 - - pyyaml=5.3.1=py37haf1e3a3_1 - - qt=5.9.7=h468cd18_1 - - readline=7.0=h1de35cc_5 - - rhash=1.3.8=ha12b0ac_0 - - scipy=1.3.1=py37h1410ff5_0 - - setuptools=42.0.2=py37_0 - - sip=4.19.8=py37h0a44026_0 - - six=1.13.0=py37_0 - - slycot=0.3.5.0=py37h82d0005_0 - - sqlite=3.30.1=ha441bb4_0 - - tbb=2019.8=h04f5b5a_0 - - tk=8.6.8=ha441bb4_0 - - tornado=6.0.3=py37h1de35cc_0 - - traits=5.2.0=py37h1de35cc_0 - - traitsui=6.1.3=py_0 - - vtk=8.2.0=py37h9bafd54_200 - - wheel=0.33.6=py37_0 - - xlrd=1.2.0=py_0 - - xz=5.2.4=h1de35cc_4 - - yaml=0.2.5=haf1e3a3_0 - - zlib=1.2.11=h1de35cc_3 - - zstd=1.3.7=h5bba6e5_0 - diff --git a/utils/environment_minimal.yml b/utils/environment_minimal.yml deleted file mode 100644 index ea5841579..000000000 --- a/utils/environment_minimal.yml +++ /dev/null @@ -1,104 +0,0 @@ -name: sharpy_minimal -channels: - - conda-forge - - defaults -dependencies: - - _libgcc_mutex=0.1=main - - apptools=4.5.0=py_0 - - bzip2=1.0.8=h7b6447c_0 - - ca-certificates=2020.12.5=ha878542_0 - - certifi=2020.12.5=py37h89c1867_1 - - cmake=3.14.0=h52cb24c_0 - - colorama=0.4.1=py37_0 - - configobj=5.0.6=py_0 - - control=0.8.4=py37h89c1867_0 - - curl=7.67.0=hbc83047_0 - - cycler=0.10.0=py_2 - - dbus=1.13.6=he372182_0 - - dill=0.3.1.1=py37_0 - - eigen=3.3.7=hc9558a2_1001 - - envisage=4.8.0=py_0 - - expat=2.2.6=he6710b0_0 - - fontconfig=2.13.1=he4413a7_1000 - - freetype=2.10.0=he983fc9_1 - - future=0.18.2=py37_0 - - gettext=0.19.8.1=hc5be6a0_1002 - - glib=2.58.3=py37h6f030ca_1002 - - gst-plugins-base=1.14.5=h0935bb2_0 - - gstreamer=1.14.5=h36ae1b5_0 - - h5py=2.9.0=py37h7918eee_0 - - hdf4=4.2.13=h3ca952b_2 - - hdf5=1.10.4=hb1b8bf9_0 - - icu=58.2=hf484d3e_1000 - - jpeg=9c=h14c3975_1001 - - jsoncpp=1.8.4=hfd86e86_0 - - kiwisolver=1.1.0=py37hc9558a2_0 - - krb5=1.16.1=h173b8e3_7 - - lapack=3.6.1=ha44fe06_2 - - libblas=3.8.0=14_openblas - - libcblas=3.8.0=14_openblas - - libcurl=7.67.0=h20c2e04_0 - - libedit=3.1.20181209=hc058e9b_0 - - libffi=3.2.1=hd88cf55_4 - - libgcc-ng=9.1.0=hdf63c60_0 - - libgfortran=3.0.0=1 - - libgfortran-ng=7.3.0=hdf63c60_2 - - libiconv=1.15=h516909a_1005 - - liblapack=3.8.0=14_openblas - - libnetcdf=4.6.1=h11d0813_2 - - libogg=1.3.2=h7b6447c_0 - - libopenblas=0.3.7=h5ec1e0e_4 - - libpng=1.6.37=hed695b0_0 - - libssh2=1.8.2=h1ba5d50_0 - - libstdcxx-ng=9.1.0=hdf63c60_0 - - libtheora=1.1.1=h5ab3b9f_1 - - libtiff=4.1.0=h2733197_0 - - libuuid=2.32.1=h14c3975_1000 - - libvorbis=1.3.6=h7b6447c_0 - - libxcb=1.13=h14c3975_1002 - - libxml2=2.9.9=hea5a465_1 - - libxslt=1.1.33=h7d1a2b0_0 - - lxml=4.4.2=py37hefd8a0e_0 - - lz4-c=1.8.1.2=h14c3975_0 - - matplotlib=3.1.1=py37h5429711_0 - - matplotlib-base=3.1.3=py37hef1b27d_0 - - mayavi=4.7.1=py37h94891b3_2 - - ncurses=6.1=he6710b0_1 - - numpy=1.17.3=py37h95a1406_0 - - openssl=1.1.1i=h27cfd23_0 - - pandas=0.25.3=py37hb3f55d8_0 - - pcre=8.43=he1b5a44_0 - - pip=19.3.1=py37_0 - - pthread-stubs=0.4=h14c3975_1001 - - pyface=6.1.2=py37_0 - - pygments=2.5.2=py_0 - - pyparsing=2.4.5=py_0 - - pyqt=5.9.2=py37hcca6a23_4 - - python=3.7.5=h0371630_0 - - python-dateutil=2.8.1=py_0 - - python_abi=3.7=1_cp37m - - pytz=2019.3=py_0 - - pyyaml=5.1.2=py37h7b6447c_0 - - qt=5.9.7=h52cfd70_2 - - readline=7.0=h7b6447c_5 - - rhash=1.3.8=h1ba5d50_0 - - scipy=1.3.2=py37h921218d_0 - - setuptools=42.0.2=py37_0 - - sip=4.19.8=py37hf484d3e_0 - - six=1.13.0=py37_0 - - slycot=0.4.0.0=py37h27181d0_1 - - sqlite=3.30.1=h7b6447c_0 - - tbb=2019.8=hfd86e86_0 - - tk=8.6.8=hbc83047_0 - - tornado=6.0.3=py37h516909a_0 - - traits=5.2.0=py37h7b6447c_0 - - traitsui=6.1.3=py_0 - - vtk=8.2.0=py37haa4764d_200 - - wheel=0.33.6=py37_0 - - xlrd=1.2.0=py37_0 - - xorg-libxau=1.0.9=h14c3975_0 - - xorg-libxdmcp=1.1.3=h516909a_0 - - xz=5.2.4=h14c3975_4 - - yaml=0.1.7=had09818_2 - - zlib=1.2.11=h7b6447c_3 - - zstd=1.3.7=h0b5b093_0