|
David Schwörer |
86b481b |
Name: bout++
|
|
David Bold |
a057e54 |
Version: 5.1.0
|
|
David Bold |
c839acf |
Release: %autorelease
|
|
David Schwörer |
86b481b |
Summary: Library for the BOUndary Turbulence simulation framework
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
# BOUT++ itself is LGPL, but we are linking with GPLed code, so the distributed library is GPL
|
|
David Schwörer |
86b481b |
License: GPLv3+
|
|
David Schwörer |
86b481b |
URL: https://boutproject.github.io/
|
|
David Schwörer |
86b481b |
Source0: https://github.com/boutproject/BOUT-dev/releases/download/v%{version}/BOUT++-v%{version}.tar.gz
|
|
David Schwörer |
86b481b |
|
|
David Bold |
a057e54 |
# https://github.com/boutproject/BOUT-dev/pull/2742
|
|
David Bold |
a057e54 |
Patch: 0001-fmt10.patch
|
|
David Bold |
a057e54 |
|
|
David Bold |
a057e54 |
Patch: 0002-sphinx.patch
|
|
David Bold |
9222e06 |
|
|
David Bold |
d8d3864 |
Patch: test-timeout.patch
|
|
David Bold |
d8d3864 |
|
|
David Bold |
421b526 |
Patch: 0004-pvode-config.patch
|
|
David Bold |
421b526 |
|
|
David Bold |
261d0e8 |
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
|
David Bold |
261d0e8 |
ExcludeArch: %{ix86}
|
|
David Bold |
261d0e8 |
|
|
David Schwörer |
46d2cd6 |
%if 0%{?fedora} >= 33
|
|
|
36095c3 |
%bcond_without flexiblas
|
|
David Schwörer |
7aabb6f |
%else
|
|
David Schwörer |
7aabb6f |
%bcond_with flexiblas
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
|
|
David Schwörer |
86b481b |
# Disable tests and manual on epel < 8
|
|
David Schwörer |
86b481b |
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
David Schwörer |
86b481b |
%bcond_with manual
|
|
David Schwörer |
86b481b |
%bcond_with test
|
|
David Schwörer |
46d2cd6 |
%bcond_with sundials
|
|
David Schwörer |
46d2cd6 |
%bcond_with petsc
|
|
David Schwörer |
86b481b |
%else
|
|
David Schwörer |
86b481b |
%bcond_without manual
|
|
David Schwörer |
86b481b |
%bcond_without test
|
|
David Schwörer |
46d2cd6 |
%bcond_without sundials
|
|
David Schwörer |
46d2cd6 |
%bcond_without petsc
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
ac269ff |
# Enable both mpi every where
|
|
David Schwörer |
86b481b |
%bcond_without mpich
|
|
David Schwörer |
86b481b |
%bcond_without openmpi
|
|
David Schwörer |
ac269ff |
|
|
David Schwörer |
86b481b |
%if 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 7 )
|
|
David Schwörer |
86b481b |
# Use system mpark
|
|
David Schwörer |
86b481b |
%bcond_without system_mpark
|
|
David Schwörer |
86b481b |
%else
|
|
David Schwörer |
86b481b |
%bcond_with system_mpark
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# DEPENDENCIES
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
BuildRequires: m4
|
|
David Schwörer |
86b481b |
BuildRequires: zlib-devel
|
|
David Bold |
9222e06 |
BuildRequires: cmake
|
|
David Schwörer |
86b481b |
BuildRequires: gettext-devel
|
|
David Schwörer |
86b481b |
BuildRequires: environment-modules
|
|
David Schwörer |
86b481b |
BuildRequires: netcdf-devel
|
|
David Schwörer |
86b481b |
BuildRequires: netcdf-cxx%{?fedora:4}-devel
|
|
David Schwörer |
86b481b |
BuildRequires: hdf5-devel
|
|
David Schwörer |
86b481b |
BuildRequires: fftw-devel
|
|
David Schwörer |
86b481b |
BuildRequires: make
|
|
David Bold |
9222e06 |
BuildRequires: fmt-devel
|
|
David Bold |
9222e06 |
BuildRequires: chrpath
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-numpy
|
|
David Bold |
d8d3864 |
BuildRequires: python%{python3_pkgversion}-cython
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-netcdf4
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-scipy
|
|
David |
c2dfe77 |
BuildRequires: python%{python3_pkgversion}-boututils
|
|
David |
c2dfe77 |
BuildRequires: python%{python3_pkgversion}-boutdata
|
|
David Bold |
a057e54 |
BuildRequires: python%{python3_pkgversion}-zoidberg
|
|
|
9cd0cd0 |
BuildRequires: python%{python3_pkgversion}-tables
|
|
|
36095c3 |
%if %{with flexiblas}
|
|
|
36095c3 |
BuildRequires: flexiblas-devel
|
|
|
36095c3 |
%else
|
|
David Schwörer |
7aabb6f |
BuildRequires: blas-devel
|
|
David Schwörer |
7aabb6f |
BuildRequires: lapack-devel
|
|
|
36095c3 |
%endif
|
|
David Schwörer |
86b481b |
BuildRequires: gcc-c++
|
|
David Schwörer |
86b481b |
%if %{with system_mpark}
|
|
David Schwörer |
86b481b |
BuildRequires: mpark-variant-devel
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
# cxx generation
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-jinja2
|
|
David Schwörer |
86b481b |
# Documentation
|
|
David Schwörer |
86b481b |
%if %{with manual}
|
|
David Schwörer |
86b481b |
BuildRequires: doxygen
|
|
David Schwörer |
86b481b |
BuildRequires: python3-sphinx
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with petsc} && %{with mpich}
|
|
David Schwörer |
46d2cd6 |
BuildRequires: petsc-mpich-devel
|
|
David Schwörer |
46d2cd6 |
BuildRequires: hdf5-mpich-devel
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with petsc} && %{with openmpi}
|
|
David Schwörer |
46d2cd6 |
BuildRequires: petsc-openmpi-devel
|
|
David Schwörer |
46d2cd6 |
BuildRequires: hdf5-openmpi-devel
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with sundials} && %{with mpich}
|
|
David Schwörer |
46d2cd6 |
BuildRequires: sundials-mpich-devel
|
|
David Schwörer |
46d2cd6 |
# https://bugzilla.redhat.com/show_bug.cgi?id=1839131
|
|
David Schwörer |
46d2cd6 |
BuildRequires: sundials-devel
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with sundials} && %{with openmpi}
|
|
David Schwörer |
46d2cd6 |
BuildRequires: sundials-openmpi-devel
|
|
David Schwörer |
46d2cd6 |
# https://bugzilla.redhat.com/show_bug.cgi?id=1839131
|
|
David Schwörer |
46d2cd6 |
BuildRequires: sundials-devel
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# DESCRIPTIONS
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with mpich}
|
|
David Schwörer |
86b481b |
BuildRequires: mpich-devel
|
|
David Schwörer |
86b481b |
%global mpi_list mpich
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
%if %{with openmpi}
|
|
David Schwörer |
86b481b |
BuildRequires: openmpi-devel
|
|
David Bold |
d8d3864 |
%global mpi_list openmpi %{?mpi_list}
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with mpich}
|
|
David Schwörer |
86b481b |
%package mpich
|
|
David Schwörer |
86b481b |
Summary: BOUT++ mpich libraries
|
|
David Schwörer |
86b481b |
Requires: %{name}-common = %{version}-%{release}
|
|
David Schwörer |
86b481b |
# Use bundled version, to reproduce upstream results
|
|
David Schwörer |
86b481b |
Provides: bundled(libpvode)
|
|
David Schwörer |
86b481b |
Recommends: environment-modules
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-boututils
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-boutdata
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-xbout
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package mpich-devel
|
|
David Schwörer |
86b481b |
Summary: BOUT++ mpich libraries
|
|
David |
7f55e43 |
Requires: %{name}-mpich = %{version}-%{release}
|
|
David |
7f55e43 |
Recommends: gcc-c++
|
|
David |
7f55e43 |
Recommends: make
|
|
David |
7f55e43 |
Recommends: mpich-devel
|
|
David |
7f55e43 |
Recommends: zlib-devel
|
|
David |
7f55e43 |
Recommends: gettext-devel
|
|
David |
7f55e43 |
Recommends: netcdf-devel
|
|
David |
7f55e43 |
Recommends: netcdf-cxx%{?fedora:4}-devel
|
|
David |
7f55e43 |
Recommends: hdf5-devel
|
|
David |
7f55e43 |
Recommends: fftw-devel
|
|
David |
7f55e43 |
%if %{with flexiblas}
|
|
David |
7f55e43 |
Recommends: flexiblas-devel
|
|
David |
7f55e43 |
%else
|
|
David |
7f55e43 |
Recommends: blas-devel
|
|
David |
7f55e43 |
Recommends: lapack-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with system_mpark}
|
|
David |
7f55e43 |
Recommends: mpark-variant-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with petsc}
|
|
David |
7f55e43 |
Recommends: petsc-mpich-devel
|
|
David |
7f55e43 |
Recommends: hdf5-mpich-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with sundials}
|
|
David |
7f55e43 |
Recommends: sundials-mpich-devel
|
|
David |
7f55e43 |
# https://bugzilla.redhat.com/show_bug.cgi?id=1839131
|
|
David |
7f55e43 |
Recommends: sundials-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description mpich-devel
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
This BOUT++ library is build for mpich.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description mpich
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
This BOUT++ library is build for mpich.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package -n python%{python3_pkgversion}-%{name}-mpich
|
|
David Schwörer |
86b481b |
Summary: BOUT++ mpich library for python%{python3_pkgversion}
|
|
David Schwörer |
86b481b |
Requires: %{name}-mpich
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-devel
|
|
David Schwörer |
86b481b |
Requires: mpich
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-mpich
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-numpy
|
|
David |
9c3fd27 |
Requires: python%{python3_pkgversion}-boututils
|
|
David |
9c3fd27 |
Requires: python%{python3_pkgversion}-boutdata
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-xbout
|
|
David |
9488731 |
|
|
David |
814b82c |
%py_provides python%{python3_pkgversion}-%{name}-mpich
|
|
David Schwörer |
86b481b |
%description -n python%{python3_pkgversion}-%{name}-mpich
|
|
David Schwörer |
86b481b |
This is the BOUT++ library python%{python3_pkgversion} with mpich.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with openmpi}
|
|
David Schwörer |
86b481b |
%package openmpi
|
|
David Schwörer |
86b481b |
Summary: BOUT++ openmpi libraries
|
|
David Schwörer |
86b481b |
# Use bundled version, to reproduce upstream results
|
|
David Schwörer |
86b481b |
Provides: bundled(libpvode)
|
|
David Schwörer |
86b481b |
Requires: %{name}-common = %{version}-%{release}
|
|
David Schwörer |
86b481b |
Recommends: environment-modules
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-boututils
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-boutdata
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-xbout
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package openmpi-devel
|
|
David Schwörer |
86b481b |
Summary: BOUT++ openmpi libraries
|
|
David Schwörer |
86b481b |
Requires: %{name}-openmpi = %{version}-%{release}
|
|
David |
7f55e43 |
Recommends: gcc-c++
|
|
David |
7f55e43 |
Recommends: make
|
|
David |
7f55e43 |
Recommends: openmpi-devel
|
|
David |
7f55e43 |
Recommends: zlib-devel
|
|
David |
7f55e43 |
Recommends: gettext-devel
|
|
David |
7f55e43 |
Recommends: netcdf-devel
|
|
David |
7f55e43 |
Recommends: netcdf-cxx%{?fedora:4}-devel
|
|
David |
7f55e43 |
Recommends: hdf5-devel
|
|
David |
7f55e43 |
Recommends: fftw-devel
|
|
David |
7f55e43 |
%if %{with flexiblas}
|
|
David |
7f55e43 |
Recommends: flexiblas-devel
|
|
David |
7f55e43 |
%else
|
|
David |
7f55e43 |
Recommends: blas-devel
|
|
David |
7f55e43 |
Recommends: lapack-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with system_mpark}
|
|
David |
7f55e43 |
Recommends: mpark-variant-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with petsc}
|
|
David |
7f55e43 |
Recommends: petsc-openmpi-devel
|
|
David |
7f55e43 |
Recommends: hdf5-openmpi-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
%if %{with sundials}
|
|
David |
7f55e43 |
Recommends: sundials-openmpi-devel
|
|
David |
7f55e43 |
# https://bugzilla.redhat.com/show_bug.cgi?id=1839131
|
|
David |
7f55e43 |
Recommends: sundials-devel
|
|
David |
7f55e43 |
%endif
|
|
David |
7f55e43 |
|
|
David |
7f55e43 |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description openmpi-devel
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
This BOUT++ library is build for openmpi and provides the required
|
|
David Schwörer |
86b481b |
header files.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description openmpi
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
This BOUT++ library is build for openmpi.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package -n python%{python3_pkgversion}-%{name}-openmpi
|
|
David Schwörer |
86b481b |
Summary: BOUT++ openmpi library for python%{python3_pkgversion}
|
|
David Schwörer |
86b481b |
Requires: %{name}-openmpi
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
BuildRequires: python%{python3_pkgversion}-devel
|
|
David Schwörer |
86b481b |
Requires: openmpi
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-openmpi
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-numpy
|
|
David |
9c3fd27 |
Requires: python%{python3_pkgversion}-boututils
|
|
David |
9c3fd27 |
Requires: python%{python3_pkgversion}-boutdata
|
|
David |
9488731 |
Recommends: python%{python3_pkgversion}-xbout
|
|
David |
9488731 |
|
|
David |
814b82c |
%py_provides python%{python3_pkgversion}-%{name}-openmpi
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description -n python%{python3_pkgversion}-%{name}-openmpi
|
|
David Schwörer |
86b481b |
This is the BOUT++ library python%{python3_pkgversion} with openmpi.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package common
|
|
David Schwörer |
86b481b |
Summary: Common files for BOUT++
|
|
David Schwörer |
86b481b |
%description common
|
|
David Schwörer |
86b481b |
MPI-independent files for BOUT++, namely localisation files.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%package -n python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
Summary: BOUT++ python library
|
|
David Schwörer |
86b481b |
Requires: netcdf4-python%{python3_pkgversion}
|
|
David Schwörer |
86b481b |
Requires: python%{python3_pkgversion}-numpy
|
|
David Schwörer |
86b481b |
Recommends: python%{python3_pkgversion}-scipy
|
|
David Schwörer |
86b481b |
Recommends: python%{python3_pkgversion}-matplotlib
|
|
David |
9c3fd27 |
Recommends: python%{python3_pkgversion}-boututils
|
|
David |
9c3fd27 |
Recommends: python%{python3_pkgversion}-boutdata
|
|
David |
9c3fd27 |
|
|
David Schwörer |
86b481b |
BuildArch: noarch
|
|
David |
814b82c |
%py_provides python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description -n python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
Python%{python3_pkgversion} library for pre and post processing of BOUT++ data
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with manual}
|
|
David Schwörer |
86b481b |
%package -n %{name}-doc
|
|
David Schwörer |
86b481b |
Summary: BOUT++ Documentation
|
|
David Schwörer |
86b481b |
BuildArch: noarch
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%description -n %{name}-doc
|
|
David Schwörer |
86b481b |
BOUT++ is a framework for writing fluid and plasma simulations in
|
|
David Schwörer |
86b481b |
curvilinear geometry. It is intended to be quite modular, with a
|
|
David Schwörer |
86b481b |
variety of numerical methods and time-integration solvers available.
|
|
David Schwörer |
86b481b |
BOUT++ is primarily designed and tested with reduced plasma fluid
|
|
David Schwörer |
86b481b |
models in mind, but it can evolve any number of equations, with
|
|
David Schwörer |
86b481b |
equations appearing in a readable form.
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
This package contains the documentation.
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# PREP
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%prep
|
|
David Bold |
a057e54 |
%autosetup -n BOUT++-v%{version} -p 1
|
|
David Bold |
9222e06 |
|
|
David Schwörer |
86b481b |
|
|
David Bold |
9222e06 |
# Switch to standard theme
|
|
David Bold |
9222e06 |
# sphinx_book_theme is not packaged
|
|
David Bold |
9222e06 |
sed -e 's/html_theme = "sphinx_book_theme"/html_theme = "sphinxdoc"/' -i manual/sphinx/conf.py
|
|
David |
a635d5c |
|
|
David Schwörer |
86b481b |
%if %{with system_mpark}
|
|
David Schwörer |
86b481b |
# use mpark provided by fedora
|
|
David Schwörer |
86b481b |
rm -rf externalpackages/mpark.variant/
|
|
David Schwörer |
86b481b |
mkdir -p externalpackages/mpark.variant/include/
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David |
c2dfe77 |
rm -rf tools/pylib/boutdata
|
|
David |
c2dfe77 |
rm -rf tools/pylib/boututils
|
|
David |
c2dfe77 |
|
|
David Schwörer |
86b481b |
# Remove shebang
|
|
David Schwörer |
86b481b |
for f in $(find -L tools/pylib/ -type f | grep -v _boutcore_build )
|
|
David Schwörer |
86b481b |
do
|
|
David Schwörer |
86b481b |
sed -i '/^#!\//d' $f
|
|
David Schwörer |
86b481b |
done
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# BUILD
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%build
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
# MPI builds
|
|
David Schwörer |
86b481b |
export CC=mpicc
|
|
David Schwörer |
86b481b |
export CXX=mpicxx
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
for mpi in %{mpi_list}
|
|
David Schwörer |
86b481b |
do
|
|
David Schwörer |
86b481b |
mkdir build_$mpi
|
|
David Schwörer |
86b481b |
done
|
|
David Schwörer |
86b481b |
for mpi in %{mpi_list}
|
|
David Schwörer |
86b481b |
do
|
|
David Bold |
9222e06 |
%global _vpath_builddir build_$mpi
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_load
|
|
David Schwörer |
86b481b |
elif [ $mpi = openmpi ] ; then
|
|
David Schwörer |
86b481b |
%_openmpi_load
|
|
David Schwörer |
86b481b |
else
|
|
David Schwörer |
86b481b |
echo "unknown mpi" &> /dev/stderr
|
|
David Schwörer |
86b481b |
exit 1
|
|
David Schwörer |
86b481b |
fi
|
|
David Schwörer |
86b481b |
|
|
David Bold |
9222e06 |
%cmake \
|
|
David Bold |
9222e06 |
-DBOUT_USE_FFTW=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_NETCDF=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_SCOREP=OFF \
|
|
David Bold |
9222e06 |
-DBOUT_USE_SYSTEM_MPARK_VARIANT=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_LAPACK=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_NLS=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_SYSTEM_FMT=ON \
|
|
David Bold |
9222e06 |
-DBOUT_USE_UUID_SYSTEM_GENERATOR=ON \
|
|
David Bold |
421b526 |
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
David Bold |
9222e06 |
-DCMAKE_INSTALL_LIBDIR=%{_libdir}/$mpi/lib \
|
|
David Bold |
9222e06 |
-DCMAKE_INSTALL_BINDIR=%{_libdir}/$mpi/bin \
|
|
David Bold |
9222e06 |
-DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/$mpi-%{_arch}/bout++/ \
|
|
David Bold |
9222e06 |
-DCMAKE_INSTALL_DATAROOTDIR=%{_datadir} \
|
|
David Bold |
9222e06 |
-DCMAKE_INSTALL_PYTHON_SITEARCH=${MPI_PYTHON3_SITEARCH} \
|
|
David Bold |
d8d3864 |
-DBOUT_TEST_TIMEOUT=900 \
|
|
David Bold |
9222e06 |
%if %{with manual}
|
|
David Bold |
9222e06 |
-DBOUT_BUILD_DOCS=ON \
|
|
David Bold |
9222e06 |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with petsc}
|
|
David Bold |
9222e06 |
-DBOUT_USE_PETSC=ON \
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
%if %{with sundials}
|
|
David Bold |
9222e06 |
-DBOUT_USE_SUNDIALS=ON \
|
|
David Schwörer |
46d2cd6 |
%endif
|
|
David Schwörer |
46d2cd6 |
|
|
David Bold |
9222e06 |
%cmake_build
|
|
David |
7f55e43 |
|
|
David Bold |
9222e06 |
%if %{with manual}
|
|
David Bold |
9222e06 |
%global _vpath_builddir build_$mpi/manual
|
|
David Bold |
a057e54 |
# Store original values
|
|
David Bold |
a057e54 |
PYPA=${PYTHONPATH}
|
|
David Bold |
a057e54 |
LDPA=${LD_LIBRARY_PATH}
|
|
David Bold |
a057e54 |
# Add our stuff
|
|
David Bold |
a057e54 |
export PYTHONPATH=${PYTHONPATH}:$(pwd)/build_$mpi/tools/pylib/
|
|
David Bold |
a057e54 |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$(pwd)/build_$mpi/lib/
|
|
David Bold |
9222e06 |
%cmake_build
|
|
David Bold |
a057e54 |
# Restore
|
|
David Bold |
a057e54 |
export LD_LIBRARY_PATH=$LDPA
|
|
David Bold |
a057e54 |
export PYTHONPATH=$PYPA
|
|
David Bold |
9222e06 |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_unload
|
|
David Schwörer |
86b481b |
elif [ $mpi = openmpi ] ; then
|
|
David Schwörer |
86b481b |
%_openmpi_unload
|
|
David Schwörer |
86b481b |
fi
|
|
David Schwörer |
86b481b |
done
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# INSTALL
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%install
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
for mpi in %{mpi_list}
|
|
David Schwörer |
86b481b |
do
|
|
David Bold |
9222e06 |
%global _vpath_builddir build_$mpi
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_load
|
|
David Schwörer |
86b481b |
else
|
|
David Schwörer |
86b481b |
%_openmpi_load
|
|
David Schwörer |
86b481b |
fi
|
|
David Bold |
9222e06 |
%cmake_install
|
|
David Schwörer |
86b481b |
|
|
David Bold |
a057e54 |
for f in $(find ${RPM_BUILD_ROOT}/${MPI_LIB} ${RPM_BUILD_ROOT}/${MPI_PYTHON3_SITEARCH} | grep -E '/libbout|/libpvode|/libpvpre') ; do
|
|
David Bold |
9222e06 |
chrpath -r $MPI_LIB $f
|
|
David Bold |
9222e06 |
done
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
rm -rf ${RPM_BUILD_ROOT}/usr/share/bout++
|
|
David Bold |
9222e06 |
|
|
David |
7f55e43 |
mkdir -p ${RPM_BUILD_ROOT}/usr/share/modulefiles/bout++
|
|
David |
7f55e43 |
cat > ${RPM_BUILD_ROOT}/usr/share/modulefiles/bout++/$MPI_COMPILER <
|
|
David |
7f55e43 |
#%Module 1.0
|
|
David |
7f55e43 |
#
|
|
David |
7f55e43 |
# BOUT++ module for use with 'environment-modules' package
|
|
David |
7f55e43 |
# Created by bout-add-mod-path v0.9
|
|
David |
7f55e43 |
# Only allow one bout++ module to be loaded at a time
|
|
David |
7f55e43 |
conflict bout++
|
|
David |
7f55e43 |
# Require mpi
|
|
David |
7f55e43 |
prereq mpi/$MPI_COMPILER
|
|
David |
7f55e43 |
|
|
David |
7f55e43 |
setenv BOUT_TOP $MPI_INCLUDE/bout++/
|
|
David |
7f55e43 |
EOF
|
|
David |
7f55e43 |
|
|
David Bold |
9222e06 |
%if %{with manual}
|
|
David Bold |
9222e06 |
%global _vpath_builddir build_$mpi/manual
|
|
David Bold |
9222e06 |
%cmake_install
|
|
David Bold |
9222e06 |
%endif
|
|
David Bold |
9222e06 |
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_unload
|
|
David Schwörer |
86b481b |
else
|
|
David Schwörer |
86b481b |
%_openmpi_unload
|
|
David Schwörer |
86b481b |
fi
|
|
David Schwörer |
86b481b |
done
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%find_lang libbout
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# CHECK
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%check
|
|
David Schwörer |
86b481b |
|
|
David |
5f083ed |
# Ignore errors on some architectures
|
|
David |
5f083ed |
# s390x: https://bugzilla.redhat.com/show_bug.cgi?id=1998838
|
|
David Bold |
d8d3864 |
# s390x: https://bugzilla.redhat.com/show_bug.cgi?id=2259532
|
|
David |
5f083ed |
|
|
David Schwörer |
86b481b |
%if %{with test}
|
|
David Schwörer |
86b481b |
for mpi in %{mpi_list}
|
|
David Schwörer |
86b481b |
do
|
|
David Bold |
d8d3864 |
fail=1
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_load
|
|
David Bold |
d8d3864 |
%ifarch s390x
|
|
David Bold |
d8d3864 |
fail=0
|
|
David Bold |
d8d3864 |
%endif
|
|
David Schwörer |
86b481b |
else
|
|
David Schwörer |
86b481b |
%_openmpi_load
|
|
David Schwörer |
86b481b |
fi
|
|
David |
5f083ed |
pushd build_$mpi
|
|
David |
5f083ed |
|
|
David Schwörer |
86b481b |
export OMPI_MCA_rmaps_base_oversubscribe=yes
|
|
David Bold |
163bacf |
export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
|
|
David |
5f083ed |
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1997717
|
|
David |
5f083ed |
export HDF5_USE_FILE_LOCKING=FALSE
|
|
David |
eadbabd |
# Increase timeout for copr / s390x
|
|
David |
eadbabd |
sed 's/ 3s / 30s /' tests/integrated/test-coordinates-initialization/runtest
|
|
David |
eadbabd |
|
|
David Schwörer |
86b481b |
make %{?_smp_mflags} build-check
|
|
David Bold |
d8d3864 |
SEGFAULT_SIGNALS="segv" make check-unit-tests || $(exit $fail)
|
|
David Bold |
d8d3864 |
SEGFAULT_SIGNALS="segv" make check-mms-tests || $(exit $fail)
|
|
David Bold |
d8d3864 |
SEGFAULT_SIGNALS="segv" make check-integrated-tests || $(exit $fail)
|
|
David |
5f083ed |
|
|
David Schwörer |
86b481b |
popd
|
|
David Schwörer |
86b481b |
if [ $mpi = mpich ] ; then
|
|
David Schwörer |
86b481b |
%_mpich_unload
|
|
David Schwörer |
86b481b |
else
|
|
David Schwörer |
86b481b |
%_openmpi_unload
|
|
David Schwörer |
86b481b |
fi
|
|
David Schwörer |
86b481b |
done
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# FILES SECTION
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with mpich}
|
|
David Schwörer |
86b481b |
%files mpich
|
|
David Bold |
a057e54 |
%{_libdir}/mpich/lib/libbout++.so.5.1.0
|
|
David Schwörer |
86b481b |
%{_libdir}/mpich/lib/*.so.1.0.0
|
|
David Schwörer |
86b481b |
%{_libdir}/mpich/bin/*
|
|
David Schwörer |
86b481b |
%doc README.md
|
|
David Schwörer |
86b481b |
%doc CITATION.bib
|
|
David Schwörer |
86b481b |
%doc CITATION.cff
|
|
David Schwörer |
86b481b |
%doc CHANGELOG.md
|
|
David Schwörer |
86b481b |
%doc CONTRIBUTING.md
|
|
David Schwörer |
86b481b |
%license LICENSE
|
|
David Schwörer |
86b481b |
%license LICENSE.GPL
|
|
David |
7f55e43 |
/usr/share/modulefiles/bout++/mpich-*
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files mpich-devel
|
|
David Schwörer |
86b481b |
%{_includedir}/mpich-%{_arch}/bout++
|
|
David Schwörer |
86b481b |
%{_libdir}/mpich/lib/*.so
|
|
David Bold |
9222e06 |
%{_libdir}/mpich/lib/cmake/*
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files -n python%{python3_pkgversion}-%{name}-mpich
|
|
David Schwörer |
86b481b |
%{python3_sitearch}/mpich/*
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with openmpi}
|
|
David Schwörer |
86b481b |
%files openmpi
|
|
David Bold |
a057e54 |
%{_libdir}/openmpi/lib/libbout++.so.5.1.0
|
|
David Schwörer |
86b481b |
%{_libdir}/openmpi/lib/*.so.1.0.0
|
|
David Schwörer |
86b481b |
%{_libdir}/openmpi/bin/*
|
|
David Schwörer |
86b481b |
%doc README.md
|
|
David Schwörer |
86b481b |
%doc CITATION.bib
|
|
David Schwörer |
86b481b |
%doc CITATION.cff
|
|
David Schwörer |
86b481b |
%doc CHANGELOG.md
|
|
David Schwörer |
86b481b |
%doc CONTRIBUTING.md
|
|
David Schwörer |
86b481b |
%license LICENSE
|
|
David Schwörer |
86b481b |
%license LICENSE.GPL
|
|
David |
7f55e43 |
/usr/share/modulefiles/bout++/openmpi-*
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files openmpi-devel
|
|
David Schwörer |
86b481b |
%{_includedir}/openmpi-%{_arch}/bout++
|
|
David Schwörer |
86b481b |
%{_libdir}/openmpi/lib/*.so
|
|
David Bold |
9222e06 |
%{_libdir}/openmpi/lib/cmake/*
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files -n python%{python3_pkgversion}-%{name}-openmpi
|
|
David Schwörer |
86b481b |
%{python3_sitearch}/openmpi/*
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files common -f libbout.lang
|
|
David |
7f55e43 |
%dir /usr/share/modulefiles/bout++/
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%files -n python%{python3_pkgversion}-%{name}
|
|
David Schwörer |
86b481b |
%doc README.md
|
|
David Schwörer |
86b481b |
%doc CITATION.bib
|
|
David Schwörer |
86b481b |
%doc CITATION.cff
|
|
David Schwörer |
86b481b |
%doc CHANGELOG.md
|
|
David Schwörer |
86b481b |
%doc CONTRIBUTING.md
|
|
David Schwörer |
86b481b |
%license LICENSE
|
|
David Schwörer |
86b481b |
%license LICENSE.GPL
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%if %{with manual}
|
|
David Schwörer |
86b481b |
%files -n %{name}-doc
|
|
David Schwörer |
86b481b |
%doc %{_defaultdocdir}/bout++/
|
|
David Schwörer |
86b481b |
%endif
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
# CHANGELOG
|
|
David Schwörer |
86b481b |
#
|
|
David Schwörer |
86b481b |
|
|
David Schwörer |
86b481b |
%changelog
|
|
David Bold |
c839acf |
%autochangelog
|