Skip to content
Permalink
Browse files

Merged espressomd/python.

  • Loading branch information...
KaiSzuttor committed Jun 17, 2019
2 parents 1e2a6e0 + f5dade5 commit 14928175d268ef103480c1130b169568943575f2
Showing with 6,772 additions and 4,385 deletions.
  1. +8 −4 .gitlab-ci.yml
  2. +2 −2 CMakeLists.txt
  3. +1 −2 doc/sphinx/advanced_methods.rst
  4. +1 −1 doc/sphinx/analysis.rst
  5. +26 −24 doc/sphinx/installation.rst
  6. +14 −11 doc/sphinx/magnetostatics.rst
  7. +842 −0 doc/tutorials/11-ferrofluid/11-ferrofluid_part1.ipynb
  8. +874 −0 doc/tutorials/11-ferrofluid/11-ferrofluid_part2.ipynb
  9. +702 −0 doc/tutorials/11-ferrofluid/11-ferrofluid_part3.ipynb
  10. +16 −0 doc/tutorials/11-ferrofluid/CMakeLists.txt
  11. BIN doc/tutorials/11-ferrofluid/figures/Electro-Steric_Stabilization.jpg
  12. BIN doc/tutorials/11-ferrofluid/figures/Ferrofluid_Magnet_under_glass_edit.jpg
  13. BIN doc/tutorials/11-ferrofluid/figures/headtotailconf.png
  14. +10 −1 doc/tutorials/CMakeLists.txt
  15. +10 −3 maintainer/CI/build_cmake.sh
  16. +14 −3 maintainer/CI/doc_warnings.sh
  17. +4 −3 maintainer/benchmarks/lj.py
  18. +4 −2 maintainer/benchmarks/p3m.py
  19. +0 −3 maintainer/configs/maxset.hpp
  20. +1 −2 maintainer/configs/no_rotation.hpp
  21. +0 −1 maintainer/configs/nocheck-maxset.hpp
  22. +1 −2 samples/immersed_boundary/sampleImmersedBoundary.py
  23. +1 −1 samples/lj_liquid.py
  24. +1 −1 samples/lj_liquid_distribution.py
  25. +1 −1 samples/lj_liquid_structurefactor.py
  26. +0 −9 src/config/features.def
  27. +0 −1 src/config/myconfig-default.hpp
  28. +11 −0 src/core/actor/Mmm1dgpuForce.cpp
  29. +2 −0 src/core/actor/Mmm1dgpuForce.hpp
  30. +0 −2 src/core/bonded_interactions/bonded_interaction_data.cpp
  31. +5 −5 src/core/cells.cpp
  32. +108 −116 src/core/dpd.cpp
  33. +13 −5 src/core/dpd.hpp
  34. +3 −1 src/core/electrostatics_magnetostatics/coulomb.cpp
  35. +2 −3 src/core/electrostatics_magnetostatics/dipole.cpp
  36. +12 −13 src/core/electrostatics_magnetostatics/elc.cpp
  37. +12 −8 src/core/electrostatics_magnetostatics/magnetic_non_p3m_methods.cpp
  38. +2 −2 src/core/electrostatics_magnetostatics/mmm1d.cpp
  39. +43 −83 src/core/electrostatics_magnetostatics/p3m.cpp
  40. +14 −14 src/core/electrostatics_magnetostatics/p3m.hpp
  41. +1 −0 src/core/errorhandling.cpp
  42. +0 −10 src/core/event.cpp
  43. +1 −3 src/core/forces.cpp
  44. +3 −10 src/core/forces_inline.hpp
  45. +1 −3 src/core/ghosts.cpp
  46. +1 −1 src/core/ghosts.hpp
  47. +1 −1 src/core/grid_based_algorithms/electrokinetics_cuda.cu
  48. +1 −5 src/core/grid_based_algorithms/lb.cpp
  49. +0 −22 src/core/grid_based_algorithms/lbgpu.cpp
  50. +0 −3 src/core/grid_based_algorithms/lbgpu.hpp
  51. +13 −110 src/core/grid_based_algorithms/lbgpu_cuda.cu
  52. +0 −4 src/core/immersed_boundaries.cpp
  53. +0 −2 src/core/immersed_boundaries.hpp
  54. +0 −3 src/core/immersed_boundary/ImmersedBoundaries.cpp
  55. +0 −2 src/core/immersed_boundary/ImmersedBoundaries.hpp
  56. +0 −3 src/core/immersed_boundary/ibm_tribend.cpp
  57. +0 −4 src/core/immersed_boundary/ibm_tribend.hpp
  58. +0 −2 src/core/immersed_boundary/ibm_triel.cpp
  59. +1 −6 src/core/immersed_boundary/ibm_triel.hpp
  60. +10 −15 src/core/integrate.cpp
  61. +3 −2 src/core/nonbonded_interactions/nonbonded_interaction_data.cpp
  62. +3 −10 src/core/nonbonded_interactions/nonbonded_interaction_data.hpp
  63. +4 −4 src/core/nonbonded_interactions/thole.hpp
  64. +1 −0 src/core/observables/ComForce.hpp
  65. +1 −0 src/core/observables/ComPosition.hpp
  66. +1 −0 src/core/observables/ComVelocity.hpp
  67. +1 −0 src/core/observables/Current.hpp
  68. +5 −2 src/core/observables/CylindricalDensityProfile.hpp
  69. +3 −2 src/core/observables/CylindricalFluxDensityProfile.hpp
  70. +3 −3 src/core/observables/CylindricalLBFluxDensityProfileAtParticlePositions.cpp
  71. +2 −0 src/core/observables/CylindricalLBFluxDensityProfileAtParticlePositions.hpp
  72. +41 −9 src/core/observables/CylindricalLBProfileObservable.hpp
  73. +15 −32 src/core/observables/CylindricalLBVelocityProfile.cpp
  74. +1 −0 src/core/observables/CylindricalLBVelocityProfile.hpp
  75. +3 −3 src/core/observables/CylindricalLBVelocityProfileAtParticlePositions.cpp
  76. +1 −0 src/core/observables/CylindricalLBVelocityProfileAtParticlePositions.hpp
  77. +13 −2 src/core/observables/CylindricalPidProfileObservable.hpp
  78. +10 −6 src/core/observables/{CylindricalProfileObservable.hpp → CylindricalProfile.hpp}
  79. +3 −2 src/core/observables/CylindricalVelocityProfile.hpp
  80. +19 −0 src/core/observables/DPDStress.hpp
  81. +1 −0 src/core/observables/DensityProfile.hpp
  82. +1 −0 src/core/observables/DipoleMoment.hpp
  83. +1 −0 src/core/observables/FluxDensityProfile.hpp
  84. +1 −0 src/core/observables/ForceDensityProfile.hpp
  85. +0 −62 src/core/observables/LBObservable.hpp
  86. +51 −2 src/core/observables/LBProfileObservable.hpp
  87. +4 −19 src/core/observables/LBVelocityProfile.cpp
  88. +1 −0 src/core/observables/LBVelocityProfile.hpp
  89. +1 −0 src/core/observables/MagneticDipoleMoment.hpp
  90. +1 −0 src/core/observables/ParticleAngles.hpp
  91. +1 −0 src/core/observables/ParticleAngularVelocities.hpp
  92. +1 −0 src/core/observables/ParticleBodyAngularVelocities.hpp
  93. +1 −0 src/core/observables/ParticleBodyVelocities.hpp
  94. +1 −0 src/core/observables/ParticleDihedrals.hpp
  95. +1 −0 src/core/observables/ParticleDistances.hpp
  96. +1 −0 src/core/observables/ParticleForces.hpp
  97. +1 −0 src/core/observables/ParticlePositions.hpp
  98. +1 −0 src/core/observables/ParticleVelocities.hpp
  99. +2 −1 src/core/observables/PidObservable.hpp
  100. +9 −6 src/core/observables/PidProfileObservable.hpp
  101. +6 −3 src/core/observables/ProfileObservable.hpp
  102. +15 −14 src/core/particle_data.cpp
  103. +1 −1 src/core/polymer.cpp
  104. +1 −1 src/core/rotate_system.cpp
  105. +15 −0 src/core/rotation.hpp
  106. +6 −4 src/core/virtual_sites/VirtualSites.hpp
  107. +1 −2 src/core/virtual_sites/VirtualSitesInertialessTracers.hpp
  108. +1 −2 src/core/virtual_sites/VirtualSitesOff.hpp
  109. +15 −36 src/core/virtual_sites/VirtualSitesRelative.cpp
  110. +1 −4 src/core/virtual_sites/VirtualSitesRelative.hpp
  111. +5 −0 src/python/espressomd/analyze.pxd
  112. +26 −15 src/python/espressomd/analyze.pyx
  113. +7 −5 src/python/espressomd/electrostatics.pxd
  114. +6 −2 src/python/espressomd/electrostatics.pyx
  115. +9 −10 src/python/espressomd/interactions.pxd
  116. +119 −127 src/python/espressomd/interactions.pyx
  117. +0 −1 src/python/espressomd/lb.pxd
  118. +2 −5 src/python/espressomd/lb.pyx
  119. +48 −42 src/python/espressomd/magnetostatics.pyx
  120. +28 −26 src/python/espressomd/observables.py
  121. +2 −0 src/python/espressomd/script_interface.pxd
  122. +24 −18 src/python/espressomd/script_interface.pyx
  123. +6 −0 src/python/espressomd/utils.pxd
  124. +6 −4 src/python/espressomd/utils.pyx
  125. +79 −122 src/script_interface/observables/CylindricalLBProfileObservable.hpp
  126. +12 −8 src/script_interface/observables/CylindricalPidProfileObservable.hpp
  127. +12 −7 src/script_interface/observables/LBProfileObservable.hpp
  128. +10 −3 src/script_interface/observables/ParamlessObservable.hpp
  129. +14 −14 src/script_interface/observables/PidObservable.hpp
  130. +9 −1 src/script_interface/observables/PidProfileObservable.hpp
  131. +3 −1 src/script_interface/observables/ProfileObservable.hpp
  132. +8 −0 src/script_interface/observables/initialize.cpp
  133. +2 −1 src/utils/include/utils/Vector.hpp
  134. +0 −79 src/utils/include/utils/coordinate_transformation.hpp
  135. +86 −0 src/utils/include/utils/math/coordinate_transformation.hpp
  136. +17 −2 src/utils/include/utils/{ → math}/vec_rotate.hpp
  137. +14 −13 src/utils/include/utils/raster.hpp
  138. +91 −0 src/utils/include/utils/sampling.hpp
  139. +2 −1 src/utils/tests/CMakeLists.txt
  140. +1 −0 src/utils/tests/Vector_test.cpp
  141. +85 −0 src/utils/tests/coordinate_transformation.cpp
  142. +1 −1 src/utils/tests/raster_test.cpp
  143. +63 −0 src/utils/tests/sampling_test.cpp
  144. +1 −1 src/utils/tests/vec_rotate_test.cpp
  145. +9 −9 testsuite/python/CMakeLists.txt
  146. +4 −4 testsuite/python/accumulator.py
  147. +21 −22 testsuite/python/analyze_chains.py
  148. +2 −3 testsuite/python/analyze_distance.py
  149. +11 −18 testsuite/python/analyze_distribution.py
  150. +12 −16 testsuite/python/analyze_energy.py
  151. +14 −16 testsuite/python/analyze_gyration_tensor.py
  152. +9 −10 testsuite/python/analyze_itensor.py
  153. +10 −18 testsuite/python/array_properties.py
  154. +2 −3 testsuite/python/auto_exclusions.py
  155. +0 −3 testsuite/python/cellsystem.py
  156. +7 −8 testsuite/python/cluster_analysis.py
  157. +17 −18 testsuite/python/collision_detection.py
  158. +6 −10 testsuite/python/constant_pH.py
  159. +8 −11 testsuite/python/constraint_homogeneous_magnetic_field.py
  160. +89 −139 testsuite/python/constraint_shape_based.py
  161. +2 −5 testsuite/python/correlation.py
  162. +65 −68 testsuite/python/coulomb_cloud_wall.py
  163. +82 −87 testsuite/python/coulomb_cloud_wall_duplicated.py
  164. +49 −51 testsuite/python/coulomb_mixed_periodicity.py
  165. +20 −29 testsuite/python/coulomb_tuning.py
  166. +53 −0 testsuite/python/data/mmm1d_data.txt
  167. +33 −36 testsuite/python/dawaanr-and-bh-gpu.py
  168. +23 −36 testsuite/python/dawaanr-and-dds-gpu.py
  169. +0 −188 testsuite/python/dds-and-bh-gpu-perf.py
  170. +28 −32 testsuite/python/dds-and-bh-gpu.py
  171. +23 −31 testsuite/python/dipolar_mdlc_p3m_scafacos_p2nfft.py
  172. +1 −5 testsuite/python/domain_decomposition.py
  173. +98 −12 testsuite/python/dpd.py
  174. +78 −60 testsuite/python/drude.py
  175. +44 −53 testsuite/python/ek_charged_plate.py
  176. +16 −16 testsuite/python/ek_eof_one_species_base.py
  177. +2 −0 testsuite/python/ek_eof_one_species_x.py
  178. +2 −0 testsuite/python/ek_eof_one_species_y.py
  179. +2 −0 testsuite/python/ek_eof_one_species_z.py
  180. +28 −36 testsuite/python/ek_fluctuations.py
  181. +21 −10 testsuite/python/elc_vs_mmm2d_neutral.py
  182. +17 −8 testsuite/python/elc_vs_mmm2d_nonneutral.py
  183. +13 −45 testsuite/python/electrostaticInteractions.py
  184. +2 −3 testsuite/python/engine_langevin.py
  185. +83 −75 testsuite/python/engine_lb.py
  186. +0 −126 testsuite/python/engine_lbgpu.py
  187. +21 −23 testsuite/python/exclusions.py
  188. +27 −36 testsuite/python/field_test.py
  189. +4 −9 testsuite/python/force_cap.py
  190. +18 −0 testsuite/python/galilei.py
  191. +4 −7 testsuite/python/gpu_availability.py
  192. +10 −28 testsuite/python/h5md.py
  193. +2 −3 testsuite/python/hat.py
  194. +3 −7 testsuite/python/icc.py
  195. +0 −1 testsuite/python/integrate.py
  196. +2 −3 testsuite/python/interactions_bond_angle.py
  197. +12 −19 testsuite/python/interactions_bonded.py
  198. +6 −10 testsuite/python/interactions_bonded_interface.py
  199. +3 −5 testsuite/python/interactions_dihedral.py
  200. +94 −88 testsuite/python/interactions_non-bonded.py
  201. +14 −17 testsuite/python/interactions_non-bonded_interface.py
  202. +51 −49 testsuite/python/langevin_thermostat.py
  203. +1 −5 testsuite/python/layered.py
  204. +22 −45 testsuite/python/lb.py
  205. +4 −7 testsuite/python/lb_boundary.py
  206. +4 −5 testsuite/python/lb_boundary_velocity.py
  207. +0 −2 testsuite/python/lb_density.py
  208. +3 −4 testsuite/python/lb_electrohydrodynamics.py
  209. +2 −1 testsuite/python/lb_get_u_at_pos.py
  210. +0 −63 testsuite/python/lb_gpu_viscous.py
  211. +10 −12 testsuite/python/lb_interpolation.py
  212. +6 −7 testsuite/python/lb_poiseuille.py
  213. +224 −0 testsuite/python/lb_poiseuille_cylinder.py
  214. +5 −5 testsuite/python/lb_shear.py
  215. +12 −26 testsuite/python/lb_stokes_sphere.py
  216. +3 −6 testsuite/python/lb_streaming.py
  217. +4 −8 testsuite/python/lb_switch.py
  218. +8 −11 testsuite/python/lb_thermo_virtual.py
  219. +6 −5 testsuite/python/lb_thermostat.py
  220. +0 −67 testsuite/python/lbgpu_remove_total_momentum.py
  221. +27 −0 testsuite/python/linear_momentum.py
  222. +99 −0 testsuite/python/linear_momentum_lb.py
  223. +5 −7 testsuite/python/lj.py
  224. +10 −13 testsuite/python/magnetostaticInteractions.py
  225. +53 −62 testsuite/python/mass-and-rinertia_per_particle.py
  226. +7 −10 testsuite/python/minimize_energy.py
  227. +100 −66 testsuite/python/mmm1d.py
  228. +2 −3 testsuite/python/mpiio.py
  229. +5 −6 testsuite/python/npt.py
  230. +2 −5 testsuite/python/nsquare.py
  231. +44 −35 testsuite/python/observable_cylindrical.py
  232. +84 −164 testsuite/python/observable_cylindricalLB.py
  233. +10 −17 testsuite/python/observable_profile.py
  234. +4 −3 testsuite/python/observable_profileLB.py
  235. +13 −12 testsuite/python/observables.py
  236. +10 −11 testsuite/python/oif_volume_conservation.py
  237. +25 −23 testsuite/python/p3m_electrostatic_pressure.py
  238. +6 −11 testsuite/python/p3m_gpu.py
  239. +11 −15 testsuite/python/pair_criteria.py
  240. +12 −16 testsuite/python/pairs.py
  241. +23 −22 testsuite/python/particle.py
  242. +80 −96 testsuite/python/particle_slice.py
  243. +19 −27 testsuite/python/polymer.py
  244. +2 −3 testsuite/python/random_pairs.py
  245. +3 −3 testsuite/python/rdf.py
  246. +4 −14 testsuite/python/reaction_ensemble.py
  247. +0 −1 testsuite/python/rescale.py
  248. +3 −6 testsuite/python/rigid_bond.py
  249. +11 −15 testsuite/python/rotation_per_particle.py
  250. +74 −71 testsuite/python/rotational-diffusion-aniso.py
  251. +27 −48 testsuite/python/rotational_inertia.py
  252. +11 −15 testsuite/python/scafacos_dipoles_1d_2d.py
  253. +19 −2 testsuite/python/sigint.py
  254. +18 −1 testsuite/python/sigint_child.py
  255. +17 −12 testsuite/python/simple_pore.py
  256. +3 −7 testsuite/python/stress.py
  257. +2 −2 testsuite/python/subt_lj.py
  258. +2 −3 testsuite/python/tabulated.py
  259. +14 −29 testsuite/python/test_checkpoint.py
  260. +26 −81 testsuite/python/tests_common.py
  261. +23 −16 testsuite/python/thermalized_bond.py
  262. +38 −24 testsuite/python/thole.py
  263. +59 −0 testsuite/python/unittest_decorators.py
  264. +0 −107 testsuite/python/variant_conversion.py
  265. +22 −26 testsuite/python/virtual_sites_relative.py
  266. +4 −12 testsuite/python/virtual_sites_tracers.py
  267. +19 −25 testsuite/python/virtual_sites_tracers_common.py
  268. +4 −14 testsuite/python/virtual_sites_tracers_gpu.py
  269. +11 −11 testsuite/python/wang_landau_reaction_ensemble.py
  270. +15 −21 testsuite/python/widom_insertion.py
  271. +4 −7 testsuite/python/writevtf.py
  272. +1 −0 testsuite/scripts/CMakeLists.txt
  273. +24 −0 testsuite/scripts/benchmarks/CMakeLists.txt
  274. +32 −0 testsuite/scripts/benchmarks/test_lj.py
  275. +32 −0 testsuite/scripts/benchmarks/test_p3m.py
  276. +3 −0 testsuite/scripts/tutorials/CMakeLists.txt
  277. +42 −0 testsuite/scripts/tutorials/test_11-ferrofluid_1.py
  278. +45 −0 testsuite/scripts/tutorials/test_11-ferrofluid_2.py
  279. +49 −0 testsuite/scripts/tutorials/test_11-ferrofluid_3.py
@@ -209,7 +209,8 @@ tutorials-samples-maxset:
stage: build
image: gitlab.icp.uni-stuttgart.de:4567/espressomd/docker/cuda:tutorials
script:
- export myconfig=maxset with_coverage=false python_version=3 make_check=false make_check_tutorials=true make_check_samples=true test_timeout=1200
- export myconfig=maxset with_coverage=false python_version=3 make_check=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=true test_timeout=1200
- bash maintainer/CI/build_cmake.sh
tags:
- docker
@@ -221,7 +222,8 @@ tutorials-samples-default:
stage: build
image: gitlab.icp.uni-stuttgart.de:4567/espressomd/docker/cuda:tutorials
script:
- export myconfig=default with_coverage=false python_version=3 make_check=false make_check_tutorials=true make_check_samples=true test_timeout=1200
- export myconfig=default with_coverage=false python_version=3 make_check=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=true test_timeout=1200
- bash maintainer/CI/build_cmake.sh
tags:
- docker
@@ -235,7 +237,8 @@ tutorials-samples-empty:
stage: build
image: gitlab.icp.uni-stuttgart.de:4567/espressomd/docker/cuda:tutorials
script:
- export myconfig=empty with_coverage=false python_version=3 make_check=false make_check_tutorials=true make_check_samples=true test_timeout=1200
- export myconfig=empty with_coverage=false python_version=3 make_check=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=true test_timeout=1200
- bash maintainer/CI/build_cmake.sh
tags:
- docker
@@ -249,7 +252,8 @@ tutorials-samples-no-gpu:
stage: build
image: gitlab.icp.uni-stuttgart.de:4567/espressomd/docker/cuda:tutorials
script:
- export myconfig=maxset with_coverage=false python_version=3 make_check=false make_check_tutorials=true make_check_samples=true test_timeout=1200 hide_gpu=true
- export myconfig=maxset with_coverage=false python_version=3 make_check=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=true test_timeout=1200 hide_gpu=true
- bash maintainer/CI/build_cmake.sh
tags:
- docker
@@ -209,10 +209,10 @@ if(WITH_CUDA)

set(CUDA_LINK_LIBRARIES_KEYWORD PUBLIC)

set(CUDA_NVCC_FLAGS_DEBUG "${CUDA_NVCC_FLAGS_DEBUG} -g -G")
set(CUDA_NVCC_FLAGS_DEBUG "${CUDA_NVCC_FLAGS_DEBUG} -g")
set(CUDA_NVCC_FLAGS_RELEASE "${CUDA_NVCC_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CUDA_NVCC_FLAGS_MINSIZEREL "${CUDA_NVCC_FLAGS_MINSIZEREL} -Os -DNDEBUG")
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "${CUDA_NVCC_FLAGS_RELWITHDEBINFO} -g -G -O2")
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "${CUDA_NVCC_FLAGS_RELWITHDEBINFO} -g -O2")
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_52,code=compute_52")
list(APPEND CUDA_NVCC_FLAGS "-std=c++14")
SET(CUDA_PROPAGATE_HOST_FLAGS OFF)
@@ -150,8 +150,7 @@ friction coefficient (this is different from the Object-in-Fluid method
below). We implement these marker points as virtual tracer
particles which are not integrated using the usual velocity-Verlet
scheme, but instead are propagated using a simple Euler algorithm with
the local fluid velocity (if the ``IMMERSED_BOUNDARY`` feature is turned
on).
the local fluid velocity.

The immersed boundary method consists of two components, which can be used independently:

@@ -62,7 +62,7 @@ For example, ::

Momentum of the System
~~~~~~~~~~~~~~~~~~~~~~
:meth:`espressomd.analyze.Analysis.analyze_linear_momentum`
:meth:`espressomd.analyze.Analysis.linear_momentum`

This command returns the total linear momentum of the particles and the
lattice Boltzmann (LB) fluid, if one exists. Giving the optional
@@ -44,6 +44,7 @@ C++ Compiler

Boost
A number of advanced C++ features used by ESPResSo is provided by Boost.
We strongly recommend to use at least boost 1.67.

FFTW
For some algorithms (P\ :math:`^3`\ M), ESPResSo needs the FFTW library
@@ -55,24 +56,31 @@ MPI
environment that implements the MPI standard version 1.2.

Python
ESPResSo's main user interface is via the Python scripting interface. Both, Python 2 and 3 are supported.
ESPResSo's main user interface is via the Python scripting interface.
We strongly recommend Python 3. Python 2 support is about to be removed.

Cython
Cython is used for connecting the C++ core to Python
Cython is used for connecting the C++ core to Python.
At least version 0.23 is required.


.. _Installing Requirements on Ubuntu Linux:

Installing Requirements on Ubuntu Linux
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These instructions pertain to Python 3. If you need to use the deprecated
Python 2 support, leave out the `3` in the Python package names.
I.e., use `python-numpy` rather than `python3-numpy`.


To make ESPResSo run on Ubuntu 16.04 LTS or 18.04 LTS, its dependencies can be
To make ESPResSo run on 18.04 LTS, its dependencies can be
installed with:

.. code-block:: bash
sudo apt install build-essential cmake cython python-numpy \
sudo apt install build-essential cmake cython python3-numpy \
libboost-all-dev openmpi-common fftw3-dev libhdf5-dev libhdf5-openmpi-dev \
doxygen python-opengl python-sphinx python-pip libgsl-dev
doxygen python3-opengl python3-sphinx python3-pip libgsl-dev
Optionally the ccmake utility can be installed for easier configuration:
@@ -166,9 +174,9 @@ command in |es| 's source directory:
.. code-block:: bash
pip install -r requirements.txt --user --upgrade
pip3 install -r requirements.txt --user --upgrade
Please note that on some systems, ``pip`` has to be replaced by ``pip2`` to install Python 2 versions of the packages.
Please note that on some systems, ``pip3`` has to be replaced by ``pip`` or ``pip2`` to install Python 2 versions of the packages.
.. _Quick installation:
@@ -178,15 +186,24 @@ Quick installation
If you have installed the requirements (see section :ref:`Requirements
<requirements>` ) in standard locations, to compile, it is usually enough to
create a build directory and call ``cmake`` and ``make`` (optional steps
which modify the build process are commented out):
which modify the build process are commented out).
To chose the correct Python version, run
.. code-block:: bash
python -V
python3 -V
This shows which Python version the binaries are for. Then pass the one you'd like to use in the cmake command line, below.
.. code-block:: bash
mkdir build
cd build
#cp myconfig-default.hpp myconfig.hpp # use the default configuration as template
#nano myconfig.hpp # edit to add/remove features as desired
cmake ..
cmake -DPYTHON_EXECUTABLE=`which python3` ..
#ccmake . // in order to add/remove features like SCAFACOS or CUDA
make
@@ -412,7 +429,6 @@ General features
- ``METADYNAMICS``
- ``OVERLAPPED``
- ``COLLISION_DETECTION`` Allows particles to be bound on collision.
@@ -463,8 +479,6 @@ Fluid dynamics and fluid structure interaction
- ``EK_DOUBLE_PREC``
- ``IMMERSED_BOUNDARY`` Immersed-Boundary Bayreuth version.
- ``OIF_LOCAL_FORCES``
- ``OIF_GLOBAL_FORCES``
@@ -527,18 +541,6 @@ following features.
- ``UMBRELLA`` (experimental)
.. _Miscellaneous:
Miscellaneous
^^^^^^^^^^^^^
- ``FLATNOISE`` Shape of the noise in the (LB) thermostat.
- ``GAUSSRANDOM`` Shape of the noise in the (LB) thermostat.
- ``GAUSSRANDOMCUT`` Shape of the noise in the (LB) thermostat.
.. _Debug messages:
@@ -44,7 +44,7 @@ completely unphysical simulations.
Dipolar P3M
~~~~~~~~~~~
This is the dipolar version of the P3M algorithm, described in :cite:`cerda08d`.
It is interfaced via :class:`espressomd.magnetostatics.DipolarP3M`.
It is interfaced via :class:`~espressomd.magnetostatics.DipolarP3M`.

Make sure that you know the relevance of the P3M parameters before using
P3M! If you are not sure, read the following references
@@ -94,7 +94,7 @@ The method is used as follows::



.. _Dipolar direct sum on gpu:
.. _Dipolar direct sum:

Dipolar direct sum
------------------
@@ -111,31 +111,34 @@ Due to the long-range nature of dipolar interactions, Direct summation with mini

Two methods are available:

* :class:`espressomd.magnetostatics.DipolarDirectSumCpu`
* :class:`~espressomd.magnetostatics.DipolarDirectSumCpu`
performs the calculation in double precision on the Cpu.


* :class:`espressomd.magnetostatics.DipolarDirectSumGpu`
* :class:`~espressomd.magnetostatics.DipolarDirectSumGpu`
performs the calculations in single precision on a Cuda-capable graphics card.
The implementation is optimized for large systems of several thousand
particles. It makes use of one thread per particle. When there are fewer
particles than the number of threads the gpu can execute simultaneously,
the rest of the gpu remains idle. Hence, the method will perform poorly
for small systems.

To use the methods, create an instance of either :class:`espressomd.magnetostatics.DipolarDirectSumCpu` or :class:`espressomd.magnetostatics.DipolarDirectSumGpu` and add it to the system's list of active actors. The only required parameter is the Prefactor :eq:`dipolar_prefactor`::
To use the methods, create an instance of either :class:`~espressomd.magnetostatics.DipolarDirectSumCpu` or :class:`~espressomd.magnetostatics.DipolarDirectSumGpu` and add it to the system's list of active actors. The only required parameter is the Prefactor :eq:`dipolar_prefactor`::

from espressomd.magnetostatics import DipolarDirectSumGpu
dds = DipolarDirectSumGpu(bjerrum_length=1)
system.actors.add(dds)


For testing purposes, a variant of the dipolar direct sum is available which adds periodic copies to the system in periodic directions (:class:`espressomd.magnetostatics.DipolarDirectSumWithReplicaCpu`).

For testing purposes, a variant of the dipolar direct sum is available which
adds periodic copies to the system in periodic directions:
:class:`~espressomd.magnetostatics.DipolarDirectSumWithReplicaCpu`.
As it is very slow, this method is not intended to do simulations, but
rather to check the results you get from more efficient methods like
P3M.
rather to check the results you get from more efficient methods like P3M.

:class:`~espressomd.magnetostatics.DipolarDirectSumCpu` and
:class:`~espressomd.magnetostatics.DipolarDirectSumWithReplicaCpu`
do not support MPI parallelization.



@@ -154,7 +157,7 @@ an additive distance respectively. For the detailed description of the
Barnes-Hut method application to the dipole-dipole interactions, please
refer to :cite:`Polyakov2013`.

To use the method, create an instance of :class:`espressomd.magnetostatics.DipolarBarnesHutGpu` and add it to the system's list of active actors::
To use the method, create an instance of :class:`~espressomd.magnetostatics.DipolarBarnesHutGpu` and add it to the system's list of active actors::

from espressomd.magnetostatics import DipolarBarnesHutGpu
bh = DipolarBarnesHutGpu(prefactor=pf_dds_gpu, epssq=200.0, itolsq=8.0)
@@ -171,7 +174,7 @@ library for dipoles, if the methods support dipolar calculations. The feature
feature. Dipolar calculations are only included in the ``dipolar`` branch of
the Scafacos code.

To use SCAFACOS, create an instance of :class:`espressomd.magnetostatics.Scafacos`
To use SCAFACOS, create an instance of :class:`~espressomd.magnetostatics.Scafacos`
and add it to the list of active actors. Three parameters have to be specified:

* ``method_name``: name of the SCAFACOS method being used.

0 comments on commit 1492817

Please sign in to comment.
You can’t perform that action at this time.