1
0

Accepting request 642129 from home:cjunghans:branches:devel:languages:python

- added change from request #639007
  - rename package to python3-espressomd
  - install COPYING for all packages
  - change license to GPL-3.0-or-later
  - added sonum define
- Version bump to 4.0.0
- Rename pacakge to python-espressomd
- Dropped 1830.patch - merged upstream
- Dropped doc package - under rework in 4.0.0
- New features:
  - Reaction ensemble methods for the modelling of chemical reactions, including constant pH and Wang-Landau schemes.
  - Polarisable particles via the Drude-oscillator scheme.
  - Steepest-descent energy minimization scheme.
  - Methods for active particles (swimmer_reaction, dipolar swimmers).
  - GPU-accelerated P3M method for electrostatic interactions.
  - GPU-accelerated direct summation and Barnes-Hutt schemes for dipolar interactions under open boundary conditions.
  - Support for the electrostatic and magnetostatics method provided by the ScaFaCoS library.
  - Immersed boundary method for soft immersed objects in an LB fluid.
  - Virtual sites acting as inertialess tracers in an LB fluid usable as part of the immersed boundary method or independently.
  - New bonded quartic and Coulomb interactions.
  - Possibility to tune the skin parameter.
  - Support for saving to the h5md file format for molecular dynamics data.
  - Connection to the MD Analysis Python package.
  - A rotate_system command was added, which rotates the particle positions around the system’s center of mass.
- Added 2255.patch to fix numpy issue on i586
- Added 2259.patch to fix numpy issue on big-endian platforms
- Added 2265.patch to fix test on i586
- add 1830.patch to fix install
- update version 3.3.1+git20180203.f74064d
  * many many small fixes
  * support for newer cython
- adapt to new openlmi package - source mpivars.h during build
- use individual libboost-*-devel packages instead of boost-devel
- RPM group fixup
- switched to cmake build-system
- build python module
- dropped header as they are for internal use only
- dropped pkg-config files as nothing depends on libs yet
- update version 3.3.1+git20160803.6ed0518.tar.gz
  * overhaul of buildsystem
  * many many small fixes
- fix boo#985147
  * there's a commit that removed redefinition of malloc and realloc
    which fixed build for gcc 6. but it's too hard to cherry pick, so 
    update to the latest git version is a good idea
- there's no --without-mpi option left in configure.ac, so "-openmpi"
  sub-package is meaningless now (everything has openmpi support)
  and since there's no two main packages any more, "-common" sub-package
  is also meaningless now (and it doesn't contains data), merged.
- add sub-package: "-devel", "libEspresso0", "libEspressoTcl0"
- add generate_headers.rb to gather those .hpp that're really used
  into "-devel" sub-package
- create pkgconfig files
- add some texlive BuildRequires to build pdf documentation.
- update version 3.3.1+git20160622.6aa229c:
  * added edge statistics for meshes used by object-in-fluid
  * added pos_folded property
  * Adapted simple LB tests to current interface.
  * system.part.writevtk()
  * redesigned exclusions and added slice input
  * Scafacos: Add long range energy to correct place in energy data structure
  * Correction to scafacos energy calculation: Check cutoff in near field contrib
  * Scafacos: Sort out conditional compilation and cython includes
  * Scafacos: methods shared between electrostatics and dipolar calculations
- Update to version 3.3.1
  * A lot of changes; please read the NEWS file
- version bumped to 3.3.0
- Highlights of this release include:
  - Calculation of the electrokinetic equations via the ELECTROKINETICS feature,
   - the Shan/Chen method for multi component lattice Boltzmann fluids,
   - the P3M and MMM1D methods can now be computed on a GPU,
   -  ESPResSo now has a rudimentary Python interface.
   For a complete list of the changes in the release, please refer to:
   http://download.savannah.gnu.org/releases/espressomd/NEWS
- build openmpi and non-mpi version
- initial commit

OBS-URL: https://build.opensuse.org/request/show/642129
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python3-espressomd?expand=0&rev=1
This commit is contained in:
Matej Cepl 2018-10-16 08:05:48 +00:00 committed by Git OBS Bridge
commit 4a6f936431
8 changed files with 409 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

27
2255.patch Normal file
View File

@ -0,0 +1,27 @@
diff --git a/src/core/unit_tests/ParallelScriptInterface_test.cpp b/src/core/unit_tests/ParallelScriptInterface_test.cpp
index 7374ed99ca..0195b4f7d1 100644
--- a/src/core/unit_tests/ParallelScriptInterface_test.cpp
+++ b/src/core/unit_tests/ParallelScriptInterface_test.cpp
@@ -174,7 +174,7 @@ BOOST_AUTO_TEST_CASE(parameter_lifetime) {
}
int main(int argc, char **argv) {
- mpi::environment mpi_env;
+ mpi::environment mpi_env(argc, argv);
mpi::communicator world;
callbacks = Utils::make_unique<Communication::MpiCallbacks>(
world, /* abort_on_exit */ false);
diff --git a/src/python/espressomd/utils.pyx b/src/python/espressomd/utils.pyx
index 9e29f0bd21..24ecb31c86 100644
--- a/src/python/espressomd/utils.pyx
+++ b/src/python/espressomd/utils.pyx
@@ -331,6 +331,8 @@ def is_valid_type(value, t):
if t == int:
return isinstance(value, (int, np.integer, np.long))
elif t == float:
- return isinstance(value, (float, np.float16, np.float32, np.float64, np.float128, np.longdouble))
+ if hasattr(np, 'float128'):
+ return isinstance(value, (float, np.float16, np.float32, np.float64, np.float128, np.longdouble))
+ return isinstance(value, (float, np.float16, np.float32, np.float64, np.longdouble))
else:
return isinstance(value, t)

37
2259.patch Normal file
View File

@ -0,0 +1,37 @@
From 81f9b86cca275f053e914c7c42e864c3af9fed8e Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@icp.uni-stuttgart.de>
Date: Thu, 13 Sep 2018 11:09:40 +0200
Subject: [PATCH] Fix PARTIAL_PERIODIC on big-endian platforms
---
src/core/global.cpp | 2 +-
src/core/utils/serialization/List.hpp | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/core/global.cpp b/src/core/global.cpp
index 75959c3246..9164c5e0b4 100644
--- a/src/core/global.cpp
+++ b/src/core/global.cpp
@@ -147,7 +147,7 @@ const std::unordered_map<int, Datafield> fields{
{&nptiso.piston, Datafield::Type::DOUBLE, 1,
"npt_piston"}}, /* 27 from pressure.cpp */
{FIELD_PERIODIC,
- {&periodic, Datafield::Type::BOOL, 3,
+ {&periodic, Datafield::Type::INT, 1,
"periodicity"}}, /* 28 from grid.cpp */
{FIELD_SKIN,
{&skin, Datafield::Type::DOUBLE, 1, "skin"}}, /* 29 from integrate.cpp */
diff --git a/src/core/utils/serialization/List.hpp b/src/core/utils/serialization/List.hpp
index fdc2d172ee..ae7fc37db3 100644
--- a/src/core/utils/serialization/List.hpp
+++ b/src/core/utils/serialization/List.hpp
@@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define CORE_UTILS_SERIALIZATION_LIST_HPP
#include <boost/serialization/array.hpp>
+#if BOOST_VERSION >= 106400 && BOOST_VERSION < 106500
+#include <boost/serialization/array_wrapper.hpp>
+#endif
#include <boost/serialization/split_free.hpp>
#include "core/utils/List.hpp"

56
2265.patch Normal file
View File

@ -0,0 +1,56 @@
From be29174ad76db081ff0111ac3b96c0a8f64aea5b Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@users.noreply.github.com>
Date: Fri, 14 Sep 2018 13:14:01 +0200
Subject: [PATCH 1/2] Fix unit test on 32-bit platform
---
src/core/unit_tests/field_coupling_couplings_test.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/core/unit_tests/field_coupling_couplings_test.cpp b/src/core/unit_tests/field_coupling_couplings_test.cpp
index 268d666eff..1dd7809eb8 100644
--- a/src/core/unit_tests/field_coupling_couplings_test.cpp
+++ b/src/core/unit_tests/field_coupling_couplings_test.cpp
@@ -78,10 +78,10 @@ BOOST_AUTO_TEST_CASE(scaled) {
const int m_id;
};
- BOOST_CHECK((1.23 * 2.) == scaled_coupling(Particle(0), 2.));
- BOOST_CHECK((default_val * 3.) == scaled_coupling(Particle(1), 3.));
- BOOST_CHECK((3.45 * 4.) == scaled_coupling(Particle(2), 4.));
- BOOST_CHECK((default_val * 5.) == scaled_coupling(Particle(3), 5.));
+ BOOST_CHECK_CLOSE(1.23 * 2., scaled_coupling(Particle(0), 2.), 1e-14);
+ BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.), 1e-14);
+ BOOST_CHECK_CLOSE(3.45 * 4., scaled_coupling(Particle(2), 4.), 1e-14);
+ BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.), 1e-14);
}
}
From 005380040f5d7d9a50c450cdaf46639b333b8683 Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@users.noreply.github.com>
Date: Fri, 14 Sep 2018 14:20:59 +0200
Subject: [PATCH 2/2] formatting
---
src/core/unit_tests/field_coupling_couplings_test.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/core/unit_tests/field_coupling_couplings_test.cpp b/src/core/unit_tests/field_coupling_couplings_test.cpp
index 1dd7809eb8..b14fad8e5e 100644
--- a/src/core/unit_tests/field_coupling_couplings_test.cpp
+++ b/src/core/unit_tests/field_coupling_couplings_test.cpp
@@ -79,9 +79,11 @@ BOOST_AUTO_TEST_CASE(scaled) {
};
BOOST_CHECK_CLOSE(1.23 * 2., scaled_coupling(Particle(0), 2.), 1e-14);
- BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.), 1e-14);
+ BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.),
+ 1e-14);
BOOST_CHECK_CLOSE(3.45 * 4., scaled_coupling(Particle(2), 4.), 1e-14);
- BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.), 1e-14);
+ BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.),
+ 1e-14);
}
}

3
espresso-4.0.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e128847447eebd843de24be9b4ad14aa19c028ae48879a5a4535a9683836e6b
size 25767191

124
python3-espressomd.changes Normal file
View File

@ -0,0 +1,124 @@
-------------------------------------------------------------------
Fri Sep 28 23:13:13 UTC 2018 - Christoph Junghans <junghans@votca.org>
- added change from request #639007
- rename package to python3-espressomd
- install COPYING for all packages
- change license to GPL-3.0-or-later
- added sonum define
-------------------------------------------------------------------
Fri Sep 7 15:36:54 UTC 2018 - junghans@votca.org
- Version bump to 4.0.0
- Rename pacakge to python-espressomd
- Dropped 1830.patch - merged upstream
- Dropped doc package - under rework in 4.0.0
- New features:
- Reaction ensemble methods for the modelling of chemical reactions, including constant pH and Wang-Landau schemes.
- Polarisable particles via the Drude-oscillator scheme.
- Steepest-descent energy minimization scheme.
- Methods for active particles (swimmer_reaction, dipolar swimmers).
- GPU-accelerated P3M method for electrostatic interactions.
- GPU-accelerated direct summation and Barnes-Hutt schemes for dipolar interactions under open boundary conditions.
- Support for the electrostatic and magnetostatics method provided by the ScaFaCoS library.
- Immersed boundary method for soft immersed objects in an LB fluid.
- Virtual sites acting as inertialess tracers in an LB fluid usable as part of the immersed boundary method or independently.
- New bonded quartic and Coulomb interactions.
- Possibility to tune the skin parameter.
- Support for saving to the h5md file format for molecular dynamics data.
- Connection to the MD Analysis Python package.
- A rotate_system command was added, which rotates the particle positions around the systems center of mass.
- Added 2255.patch to fix numpy issue on i586
- Added 2259.patch to fix numpy issue on big-endian platforms
- Added 2265.patch to fix test on i586
-------------------------------------------------------------------
Mon Feb 12 19:25:01 UTC 2018 - junghans@votca.org
- add 1830.patch to fix install
- update version 3.3.1+git20180203.f74064d
* many many small fixes
* support for newer cython
-------------------------------------------------------------------
Wed Oct 25 12:43:08 UTC 2017 - junghans@votca.org
- adapt to new openlmi package - source mpivars.h during build
-------------------------------------------------------------------
Wed Feb 1 10:36:28 UTC 2017 - adam.majer@suse.de
- use individual libboost-*-devel packages instead of boost-devel
-------------------------------------------------------------------
Thu Sep 29 13:46:20 UTC 2016 - jengelh@inai.de
- RPM group fixup
-------------------------------------------------------------------
Wed Aug 3 17:54:16 UTC 2016 - junghans@votca.org
- switched to cmake build-system
- build python module
- dropped header as they are for internal use only
- dropped pkg-config files as nothing depends on libs yet
- update version 3.3.1+git20160803.6ed0518.tar.gz
* overhaul of buildsystem
* many many small fixes
-------------------------------------------------------------------
Sun Jun 26 07:35:00 UTC 2016 - i@marguerite.su
- fix boo#985147
* there's a commit that removed redefinition of malloc and realloc
which fixed build for gcc 6. but it's too hard to cherry pick, so
update to the latest git version is a good idea
- there's no --without-mpi option left in configure.ac, so "-openmpi"
sub-package is meaningless now (everything has openmpi support)
and since there's no two main packages any more, "-common" sub-package
is also meaningless now (and it doesn't contains data), merged.
- add sub-package: "-devel", "libEspresso0", "libEspressoTcl0"
- add generate_headers.rb to gather those .hpp that're really used
into "-devel" sub-package
- create pkgconfig files
- add some texlive BuildRequires to build pdf documentation.
- update version 3.3.1+git20160622.6aa229c:
* added edge statistics for meshes used by object-in-fluid
* added pos_folded property
* Adapted simple LB tests to current interface.
* system.part.writevtk()
* redesigned exclusions and added slice input
* Scafacos: Add long range energy to correct place in energy data structure
* Correction to scafacos energy calculation: Check cutoff in near field contrib
* Scafacos: Sort out conditional compilation and cython includes
* Scafacos: methods shared between electrostatics and dipolar calculations
-------------------------------------------------------------------
Sun Nov 8 21:57:37 UTC 2015 - p.drouand@gmail.com
- Update to version 3.3.1
* A lot of changes; please read the NEWS file
-------------------------------------------------------------------
Tue Aug 12 03:44:16 UTC 2014 - junghans@votca.org
- version bumped to 3.3.0
- Highlights of this release include:
- Calculation of the electrokinetic equations via the ELECTROKINETICS feature,
- the Shan/Chen method for multi component lattice Boltzmann fluids,
- the P3M and MMM1D methods can now be computed on a GPU,
- ESPResSo now has a rudimentary Python interface.
For a complete list of the changes in the release, please refer to:
http://download.savannah.gnu.org/releases/espressomd/NEWS
-------------------------------------------------------------------
Fri Feb 7 17:41:18 UTC 2014 - junghans@votca.org
- build openmpi and non-mpi version
-------------------------------------------------------------------
Tue Feb 4 18:59:10 UTC 2014 - junghans@votca.org
- initial commit

138
python3-espressomd.spec Normal file
View File

@ -0,0 +1,138 @@
#
# spec file for package python3-espressomd
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2014 Christoph Junghans
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define mpi_implem openmpi2
%ifarch ppc64
%define mpi_implem openmpi
%endif
%if 0%{?sle_version} == 120300 && 0%{?is_opensuse}
%define mpi_implem openmpi
%endif
%if 0%{?sle_version} == 120400 && !0%{?is_opensuse}
%define mpi_implem openmpi
%endif
%define pkgname espresso
%define modname %{pkgname}md
%define sonum 4
Name: python3-%{modname}
Version: 4.0.0
Release: 0
Summary: Parallel simulation software for soft matter research
License: GPL-3.0-or-later
Group: Productivity/Scientific/Chemistry
URL: http://espressomd.org
Source: https://github.com/%{modname}/%{pkgname}/releases/download/%{version}/%{pkgname}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM 2255.patch https://github.com/espressomd/espresso/pull/2255 - fix numpy issue on i586
Patch0: 2255.patch
# PATCH-FIX-UPSTREAM 2259.patch https://github.com/espressomd/espresso/pull/2259 - fix numpy issue on big-endian platforms
Patch1: 2259.patch
# PATCH-FIX-UPSTREAM 2265.patch https://github.com/espressomd/espresso/pull/2265 - fix test on i586
Patch2: 2265.patch
BuildRequires: cmake
BuildRequires: fftw3-devel
BuildRequires: gcc-c++
# Currently libboost_mpi-devel and hdf5 use different mpi versions
# BuildRequires: hdf5-devel
BuildRequires: gsl-devel
BuildRequires: %{mpi_implem}-devel
BuildRequires: python3-Cython
BuildRequires: python3-devel
BuildRequires: python3-numpy-devel
%if 0%{?suse_version} > 1325
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_mpi-devel
BuildRequires: libboost_system-devel
BuildRequires: libboost_test-devel
%else
BuildRequires: boost-devel
%endif
%description
ESPResSo is a highly versatile software package for performing and analyzing
scientific Molecular Dynamics many-particle simulations of coarse-grained
atomistic or bead-spring models as they are used in soft-matter research in
physics, chemistry and molecular biology. It can be used to simulate systems
such as polymers, liquid crystals, colloids, ferrofluids and biological
systems, for example DNA and lipid membranes.
%package -n libEspresso%{sonum}
Summary: Shared libraries for ESPResSo
Group: System/Libraries
%description -n libEspresso%{sonum}
This package provides shared libraries for ESPResSo.
%prep
%setup -q -n %{pkgname}-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
chmod -x AUTHORS COPYING README NEWS ChangeLog
%build
source %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh
# overwrite .so linker flags on SUSE distros: drop --no-undefined
# we don't install {i,}pypresso scripts as they aren't needed when installing in /usr
%cmake \
'-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--as-needed -Wl,-z,now' \
-DLIBDIR=%{_lib} \
-DPYTHON_EXECUTABLE=%{_bindir}/python3 \
-DINSTALL_PYPRESSO=OFF
make %{?_smp_mflags}
%install
make -C build install DESTDIR=%{buildroot}
find %{buildroot}%{_prefix} -name "*.so" -exec chmod +x {} \;
find %{buildroot}%{_prefix} -name "gen_pxiconfig" -exec chmod +x {} \;
# no devel package
rm -f %{buildroot}%{_libdir}/lib*.so
%check
# https://github.com/espressomd/espresso/issues/2258
%ifnarch i586 %arm ppc64le
LD_LIBRARY_PATH='%{buildroot}/%{_libdir}::%{_libdir}/mpi/gcc/%{mpi_implem}/%{_lib}' make -C build check
%endif
%post -n libEspresso%{sonum} -p /sbin/ldconfig
%postun -n libEspresso%{sonum} -p /sbin/ldconfig
%files
%license COPYING
%doc README AUTHORS NEWS ChangeLog
%{python3_sitearch}/espressomd
%files -n libEspresso%{sonum}
%license COPYING
%{_libdir}/libEspressoCore.so.%{sonum}
%{_libdir}/libActor.so.%{sonum}
%{_libdir}/libImmersedBoundary.so.%{sonum}
%{_libdir}/libObjectInFluid.so.%{sonum}
%{_libdir}/libAccumulators.so.%{sonum}
%{_libdir}/libConstraints.so.%{sonum}
%{_libdir}/libEspressoConfig.so.%{sonum}
%{_libdir}/libEspressoScriptInterface.so.%{sonum}
%{_libdir}/libObservables.so.%{sonum}
%{_libdir}/libShapes.so.%{sonum}
%{_libdir}/libVirtualSites.so.%{sonum}
%{_libdir}/libcluster_analysis.so.%{sonum}
%changelog