struphy 3.1.0__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. {struphy-3.1.0/src/struphy.egg-info → struphy-3.2.0}/PKG-INFO +91 -76
  2. {struphy-3.1.0 → struphy-3.2.0}/README.md +53 -36
  3. {struphy-3.1.0 → struphy-3.2.0}/pyproject.toml +41 -43
  4. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/__init__.py +5 -1
  5. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/particles/__init__.py +4 -0
  6. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/format.py +68 -67
  7. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/main.py +1 -1
  8. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/basis_projection_ops.py +11 -28
  9. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/mass.py +404 -92
  10. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/preconditioner.py +8 -0
  11. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/psydac_derham.py +17 -26
  12. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_basis_ops.py +87 -116
  13. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_mass_matrices.py +109 -17
  14. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/utilities.py +36 -5
  15. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/variational_utilities.py +1 -1
  16. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/base.py +3 -9
  17. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/equils.py +22 -32
  18. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/projected_equils.py +8 -10
  19. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/base.py +69 -11
  20. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/tests/test_domain.py +47 -0
  21. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/base.py +26 -5
  22. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/perturbations.py +89 -9
  23. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/io/options.py +25 -29
  24. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/io/setup.py +10 -31
  25. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/base.py +296 -20
  26. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/maxwellians.py +71 -74
  27. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/tests/test_base.py +60 -1
  28. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -2
  29. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/saddle_point.py +11 -16
  30. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/solver.py +18 -3
  31. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +2 -2
  32. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -3
  33. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/base.py +76 -66
  34. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/cold_plasma.py +123 -10
  35. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/cold_plasma_vlasov.py +167 -27
  36. struphy-3.2.0/src/struphy/models/deterministic_particle_diffusion.py +169 -0
  37. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +142 -56
  38. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/guiding_center.py +101 -8
  39. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/hasegawa_wakatani.py +109 -12
  40. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_extended_mh_duniform.py +130 -10
  41. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_mhd.py +17 -13
  42. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_mhd_driftkinetic_cc.py +189 -20
  43. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_mhd_vlasov_cc.py +166 -20
  44. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_mhd_vlasov_pc.py +154 -16
  45. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_vlasov_ampere_one_species.py +154 -24
  46. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/linear_vlasov_maxwell_one_species.py +162 -16
  47. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/maxwell.py +14 -12
  48. struphy-3.2.0/src/struphy/models/poisson.py +191 -0
  49. struphy-3.2.0/src/struphy/models/pressure_less_sph.py +212 -0
  50. struphy-3.2.0/src/struphy/models/random_particle_diffusion.py +163 -0
  51. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/shear_alfven.py +94 -6
  52. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/species.py +98 -78
  53. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/default_params/test_models.py +34 -32
  54. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/test_examples.py +1 -1
  55. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/utils_testing.py +5 -6
  56. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/test_verif_LinearMHD.py +3 -4
  57. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/test_verif_Maxwell.py +6 -8
  58. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/test_verif_Poisson.py +3 -4
  59. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +16 -12
  60. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +10 -6
  61. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/toy_drift.py +129 -55
  62. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/two_fluid_quasi_neutral_toy.py +98 -6
  63. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/variables.py +62 -62
  64. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/variational_barotropic_fluid.py +102 -8
  65. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/variational_compressible_fluid.py +116 -10
  66. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/variational_pressureless_fluid.py +97 -8
  67. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_deltaf_mhd.py +138 -14
  68. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +137 -14
  69. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_linear_mhd.py +133 -12
  70. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_linear_mhd_with_q.py +130 -12
  71. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_mhd.py +147 -16
  72. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_mhd_with_p.py +140 -14
  73. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/visco_resistive_mhd_with_q.py +142 -15
  74. struphy-3.2.0/src/struphy/models/viscous_euler_sph.py +240 -0
  75. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/viscous_fluid.py +118 -38
  76. struphy-3.2.0/src/struphy/models/vlasov.py +184 -0
  77. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/vlasov_ampere_one_species.py +32 -25
  78. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/vlasov_maxwell_one_species.py +149 -97
  79. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/particles/parameters.py +150 -90
  80. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/physics/physics.py +22 -23
  81. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/particles_to_grid.py +0 -1
  82. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/base.py +132 -149
  83. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/particles.py +3 -11
  84. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/pusher.py +14 -36
  85. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_mat_vec_filler.py +13 -23
  86. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_sorting.py +5 -3
  87. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_sph.py +65 -46
  88. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_tesselation.py +6 -5
  89. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/post_processing_tools.py +35 -68
  90. struphy-3.2.0/src/struphy/propagators/adiabatic_phi.py +208 -0
  91. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/propagators/base.py +11 -6
  92. struphy-3.2.0/src/struphy/propagators/curl_curl_solve.py +325 -0
  93. struphy-3.2.0/src/struphy/propagators/current_coupling_5d_curlb.py +319 -0
  94. struphy-3.2.0/src/struphy/propagators/current_coupling_5d_density.py +238 -0
  95. struphy-3.2.0/src/struphy/propagators/current_coupling_5d_gradb.py +834 -0
  96. struphy-3.2.0/src/struphy/propagators/current_coupling_6d_current.py +306 -0
  97. struphy-3.2.0/src/struphy/propagators/current_coupling_6d_density.py +296 -0
  98. struphy-3.2.0/src/struphy/propagators/efield_weights_coupling.py +310 -0
  99. struphy-3.2.0/src/struphy/propagators/faraday_extended.py +229 -0
  100. struphy-3.2.0/src/struphy/propagators/hall.py +175 -0
  101. struphy-3.2.0/src/struphy/propagators/hasegawa_wakatani_step.py +343 -0
  102. struphy-3.2.0/src/struphy/propagators/implicit_diffusion.py +372 -0
  103. struphy-3.2.0/src/struphy/propagators/jxb_cold.py +157 -0
  104. struphy-3.2.0/src/struphy/propagators/magnetosonic.py +244 -0
  105. struphy-3.2.0/src/struphy/propagators/magnetosonic_uniform.py +242 -0
  106. struphy-3.2.0/src/struphy/propagators/maxwell_weak_ampere.py +252 -0
  107. struphy-3.2.0/src/struphy/propagators/ohm_cold.py +188 -0
  108. struphy-3.2.0/src/struphy/propagators/poisson_solve.py +145 -0
  109. struphy-3.2.0/src/struphy/propagators/pressure_coupling_6d.py +394 -0
  110. struphy-3.2.0/src/struphy/propagators/push_deterministic_diffusion.py +173 -0
  111. struphy-3.2.0/src/struphy/propagators/push_eta.py +129 -0
  112. struphy-3.2.0/src/struphy/propagators/push_eta_pc.py +171 -0
  113. struphy-3.2.0/src/struphy/propagators/push_guiding_center_bx_estar.py +482 -0
  114. struphy-3.2.0/src/struphy/propagators/push_guiding_center_parallel.py +506 -0
  115. struphy-3.2.0/src/struphy/propagators/push_random_diffusion.py +162 -0
  116. struphy-3.2.0/src/struphy/propagators/push_vin_efield.py +143 -0
  117. struphy-3.2.0/src/struphy/propagators/push_vin_sph_pressure.py +185 -0
  118. struphy-3.2.0/src/struphy/propagators/push_vin_viscous_potential.py +196 -0
  119. struphy-3.2.0/src/struphy/propagators/push_vxb.py +169 -0
  120. struphy-3.2.0/src/struphy/propagators/shear_alfven_b1.py +214 -0
  121. struphy-3.2.0/src/struphy/propagators/shear_alfven_current_coupling_5d.py +465 -0
  122. struphy-3.2.0/src/struphy/propagators/shear_alfven_propagator.py +244 -0
  123. struphy-3.2.0/src/struphy/propagators/tests/test_curl_curl.py +424 -0
  124. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +260 -84
  125. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/propagators/tests/test_poisson.py +6 -9
  126. struphy-3.2.0/src/struphy/propagators/time_dependent_source.py +114 -0
  127. struphy-3.2.0/src/struphy/propagators/two_fluid_quasi_neutral_full.py +462 -0
  128. struphy-3.2.0/src/struphy/propagators/variational_density_evolve.py +613 -0
  129. struphy-3.2.0/src/struphy/propagators/variational_entropy_evolve.py +467 -0
  130. struphy-3.2.0/src/struphy/propagators/variational_mag_field_evolve.py +420 -0
  131. struphy-3.2.0/src/struphy/propagators/variational_momentum_advection.py +291 -0
  132. struphy-3.2.0/src/struphy/propagators/variational_pb_evolve.py +667 -0
  133. struphy-3.2.0/src/struphy/propagators/variational_qb_evolve.py +690 -0
  134. struphy-3.2.0/src/struphy/propagators/variational_resistivity.py +809 -0
  135. struphy-3.2.0/src/struphy/propagators/variational_viscosity.py +827 -0
  136. struphy-3.2.0/src/struphy/propagators/vlasov_ampere_coupling.py +250 -0
  137. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/simulation/base.py +6 -6
  138. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/simulation/sim.py +127 -177
  139. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/topology/grids.py +16 -20
  140. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/clone_config.py +4 -7
  141. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/docstring_converter.py +139 -14
  142. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/utils.py +12 -1
  143. {struphy-3.1.0 → struphy-3.2.0/src/struphy.egg-info}/PKG-INFO +91 -76
  144. {struphy-3.1.0 → struphy-3.2.0}/src/struphy.egg-info/SOURCES.txt +44 -3
  145. struphy-3.2.0/src/struphy.egg-info/requires.txt +77 -0
  146. struphy-3.1.0/src/struphy/models/deterministic_particle_diffusion.py +0 -87
  147. struphy-3.1.0/src/struphy/models/poisson.py +0 -130
  148. struphy-3.1.0/src/struphy/models/pressure_less_sph.py +0 -127
  149. struphy-3.1.0/src/struphy/models/random_particle_diffusion.py +0 -86
  150. struphy-3.1.0/src/struphy/models/viscous_euler_sph.py +0 -156
  151. struphy-3.1.0/src/struphy/models/vlasov.py +0 -102
  152. struphy-3.1.0/src/struphy/propagators/propagators_coupling.py +0 -2132
  153. struphy-3.1.0/src/struphy/propagators/propagators_fields.py +0 -8086
  154. struphy-3.1.0/src/struphy/propagators/propagators_markers.py +0 -1894
  155. struphy-3.1.0/src/struphy.egg-info/requires.txt +0 -79
  156. {struphy-3.1.0 → struphy-3.2.0}/LICENSE +0 -0
  157. {struphy-3.1.0 → struphy-3.2.0}/setup.cfg +0 -0
  158. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/__init__.py +0 -0
  159. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/domains/__init__.py +0 -0
  160. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/equils/__init__.py +0 -0
  161. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/grids/__init__.py +0 -0
  162. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/maxwellians/__init__.py +0 -0
  163. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/models/__init__.py +0 -0
  164. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/ode/__init__.py +0 -0
  165. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/options/__init__.py +0 -0
  166. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/perturbations/__init__.py +0 -0
  167. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/post_processing/__init__.py +0 -0
  168. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/api/simulation/__init__.py +0 -0
  169. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/__init__.py +0 -0
  170. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/bsplines.py +0 -0
  171. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  172. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  173. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  174. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  175. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  176. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/tests/__init__.py +0 -0
  177. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
  178. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  179. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/compile_struphy.mk +0 -0
  180. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/conftest.py +0 -0
  181. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/__init__.py +0 -0
  182. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/compile.py +0 -0
  183. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/likwid.py +0 -0
  184. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/params.py +0 -0
  185. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/parsers.py +0 -0
  186. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/profile.py +0 -0
  187. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/test.py +0 -0
  188. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/console/tests/xx_test_console.py +0 -0
  189. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/dependencies.py +0 -0
  190. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/__init__.py +0 -0
  191. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/console_diagn.py +0 -0
  192. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/diagn_tools.py +0 -0
  193. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/paraview/__init__.py +0 -0
  194. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
  195. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
  196. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/dispersion_relations/__init__.py +0 -0
  197. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/dispersion_relations/analytic.py +0 -0
  198. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/dispersion_relations/base.py +0 -0
  199. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/dispersion_relations/utilities.py +0 -0
  200. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  201. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/examples/_draw_parallel.py +0 -0
  202. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/examples/restelli2018/__init__.py +0 -0
  203. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/examples/restelli2018/callables.py +0 -0
  204. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/__init__.py +0 -0
  205. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  206. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/basis_projection_kernels.py +0 -0
  207. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/linear_operators.py +0 -0
  208. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/local_projectors_kernels.py +0 -0
  209. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/mass_kernels.py +0 -0
  210. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/projectors.py +0 -0
  211. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/__init__.py +0 -0
  212. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_derham.py +0 -0
  213. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_eval_field.py +0 -0
  214. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_field_init.py +0 -0
  215. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
  216. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_local_matrix_vector.py +0 -0
  217. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_local_projectors.py +0 -0
  218. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  219. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
  220. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
  221. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
  222. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/utilities_kernels.py +0 -0
  223. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/feec/utilities_local_projectors.py +0 -0
  224. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/__init__.py +0 -0
  225. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
  226. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/coil_fields/base.py +0 -0
  227. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
  228. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
  229. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
  230. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  231. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
  232. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
  233. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
  234. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
  235. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
  236. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
  237. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
  238. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
  239. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
  240. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
  241. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
  242. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
  243. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
  244. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
  245. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
  246. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
  247. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/tests/__init__.py +0 -0
  248. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
  249. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
  250. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
  251. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
  252. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/__init__.py +0 -0
  253. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/domains.py +0 -0
  254. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/evaluation_kernels.py +0 -0
  255. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/map_coef/__init__.py +0 -0
  256. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/mappings_kernels.py +0 -0
  257. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/tests/__init__.py +0 -0
  258. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/transform_kernels.py +0 -0
  259. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/utilities.py +0 -0
  260. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/geometry/utilities_kernels.py +0 -0
  261. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/__init__.py +0 -0
  262. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/eigenfunctions.py +0 -0
  263. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/tests/__init__.py +0 -0
  264. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/tests/test_init_perturbations.py +0 -0
  265. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/initial/utilities.py +0 -0
  266. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/io/__init__.py +0 -0
  267. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/io/output_handling.py +0 -0
  268. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kernel_arguments/__init__.py +0 -0
  269. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
  270. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
  271. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/__init__.py +0 -0
  272. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/moment_functions.py +0 -0
  273. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/kinetic_background/tests/__init__.py +0 -0
  274. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/__init__.py +0 -0
  275. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  276. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  277. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/schur_solver.py +0 -0
  278. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  279. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  280. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/tests/__init__.py +0 -0
  281. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
  282. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
  283. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/__init__.py +0 -0
  284. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/scalars.py +0 -0
  285. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/__init__.py +0 -0
  286. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/default_params/__init__.py +0 -0
  287. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/tests/verification/__init__.py +0 -0
  288. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/models/utils.py +0 -0
  289. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/ode/__init__.py +0 -0
  290. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/ode/solvers.py +0 -0
  291. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/ode/tests/__init__.py +0 -0
  292. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/ode/tests/test_ode_feec.py +0 -0
  293. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/ode/utils.py +0 -0
  294. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/particles/__init__.py +0 -0
  295. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/physics/__init__.py +0 -0
  296. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/__init__.py +0 -0
  297. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/__init__.py +0 -0
  298. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
  299. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
  300. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  301. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/filter.py +0 -0
  302. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
  303. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  304. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/__init__.py +0 -0
  305. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/eval_kernels_gc.py +0 -0
  306. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/pusher_kernels.py +0 -0
  307. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
  308. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  309. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/sampling_kernels.py +0 -0
  310. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/sobol_seq.py +0 -0
  311. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/sorting_kernels.py +0 -0
  312. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/sph_eval_kernels.py +0 -0
  313. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/sph_smoothing_kernels.py +0 -0
  314. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/__init__.py +0 -0
  315. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
  316. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_binning.py +0 -0
  317. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
  318. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_pushers.py +0 -0
  319. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/tests/test_set_zero_velocity.py +0 -0
  320. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/utilities.py +0 -0
  321. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/pic/utilities_kernels.py +0 -0
  322. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/__init__.py +0 -0
  323. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/basic.py +0 -0
  324. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/extraction_operators.py +0 -0
  325. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/linear_operators.py +0 -0
  326. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/tests/__init__.py +0 -0
  327. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/polar/tests/test_polar.py +0 -0
  328. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/__init__.py +0 -0
  329. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/cprofile_analyser.py +0 -0
  330. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/__init__.py +0 -0
  331. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
  332. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
  333. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
  334. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
  335. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/plot_time_traces.py +0 -0
  336. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
  337. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/orbits/__init__.py +0 -0
  338. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
  339. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
  340. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/profile_struphy.py +0 -0
  341. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/post_processing/tests/__init__.py +0 -0
  342. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/propagators/__init__.py +0 -0
  343. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/propagators/tests/__init__.py +0 -0
  344. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/simulation/__init__.py +0 -0
  345. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/topology/__init__.py +0 -0
  346. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/__init__.py +0 -0
  347. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/cupy_vs_numpy.py +0 -0
  348. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/pyccel.py +0 -0
  349. {struphy-3.1.0 → struphy-3.2.0}/src/struphy/utils/test_clone_config.py +0 -0
  350. {struphy-3.1.0 → struphy-3.2.0}/src/struphy.egg-info/dependency_links.txt +0 -0
  351. {struphy-3.1.0 → struphy-3.2.0}/src/struphy.egg-info/entry_points.txt +0 -0
  352. {struphy-3.1.0 → struphy-3.2.0}/src/struphy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: struphy
3
- Version: 3.1.0
3
+ Version: 3.2.0
4
4
  Summary: Multi-model plasma physics package
5
5
  Author: Max Planck Institute for Plasma Physics
6
6
  Author-email: stefan.possanner@ipp.mpg.de, max.lindqvist@ipp.mpg.de, eric.sonnendruecker@ipp.mpg.de
@@ -32,68 +32,66 @@ Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
33
  Requires-Dist: numpy<=2.4.3
34
34
  Requires-Dist: cunumpy<=0.1.1
35
- Requires-Dist: pyccel<=2.2.3,>=2.1
35
+ Requires-Dist: pyccel<=2.2.3,>=2.2.0
36
36
  Requires-Dist: feectools<=0.1.3
37
37
  Requires-Dist: scipy<=1.17.1
38
38
  Requires-Dist: h5py<=3.16.0
39
39
  Requires-Dist: matplotlib<=3.10.8
40
40
  Requires-Dist: pyyaml<=6.0.3
41
41
  Requires-Dist: vtk<=9.6.1
42
- Requires-Dist: tqdm<=4.67.3
42
+ Requires-Dist: tqdm<=4.68.1
43
43
  Requires-Dist: argcomplete<=3.6.3
44
44
  Requires-Dist: ipywidgets<=8.1.8
45
- Requires-Dist: plotly<=6.6.0
46
- Requires-Dist: pyvista<=0.47.3
47
- Requires-Dist: trame<=3.12.0
45
+ Requires-Dist: plotly<=6.8.0
46
+ Requires-Dist: pyvista<=0.48.0
47
+ Requires-Dist: trame<=3.13.0
48
48
  Requires-Dist: trame-vtk<=2.11.8
49
- Requires-Dist: trame-vuetify<=3.2.1
49
+ Requires-Dist: trame-vuetify<=3.2.2
50
50
  Requires-Dist: nest_asyncio2<=1.7.2
51
51
  Requires-Dist: vtk<=9.6.1
52
52
  Requires-Dist: pytest<=9.0.3
53
53
  Requires-Dist: pytest-mpi<=0.6
54
54
  Requires-Dist: pytest-testmon<=2.2.0
55
- Requires-Dist: ruff<=0.15.11,>=0.15.0
55
+ Requires-Dist: ruff<=0.15.12,>=0.15.0
56
56
  Requires-Dist: line_profiler<=5.0.2
57
57
  Requires-Dist: scope-profiler<=0.1.9,>=0.1.7
58
- Requires-Dist: jax-finufft<=1.2.0
58
+ Provides-Extra: mpi
59
+ Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
59
60
  Provides-Extra: phys
60
61
  Requires-Dist: gvec<=1.4.1,>=1.1.0; extra == "phys"
61
62
  Requires-Dist: desc-opt<=0.17.1; extra == "phys"
62
63
  Provides-Extra: dev
63
64
  Requires-Dist: struphy[mpi]; extra == "dev"
64
- Requires-Dist: notebook<=7.5.5; extra == "dev"
65
- Requires-Dist: autopep8<=2.3.2; extra == "dev"
66
- Requires-Dist: isort<=8.0.1; extra == "dev"
67
- Requires-Dist: flake8<=7.3.0; extra == "dev"
68
- Requires-Dist: pylint<=4.0.5; extra == "dev"
69
- Requires-Dist: ssort<=0.16.0; extra == "dev"
70
- Requires-Dist: add-trailing-comma<=4.0.0; extra == "dev"
71
- Requires-Dist: pre-commit<=4.6.0; extra == "dev"
72
- Requires-Dist: nbstripout<=0.9.1; extra == "dev"
73
- Requires-Dist: tabulate<=0.10.0; extra == "dev"
74
- Requires-Dist: tomli-w<=1.2.0; extra == "dev"
75
- Requires-Dist: kaleido<=1.2.0; extra == "dev"
76
- Requires-Dist: pandas<=3.0.2; extra == "dev"
77
- Provides-Extra: mpi
78
- Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
65
+ Requires-Dist: notebook; extra == "dev"
66
+ Requires-Dist: autopep8; extra == "dev"
67
+ Requires-Dist: isort; extra == "dev"
68
+ Requires-Dist: flake8; extra == "dev"
69
+ Requires-Dist: pylint; extra == "dev"
70
+ Requires-Dist: ssort; extra == "dev"
71
+ Requires-Dist: add-trailing-comma; extra == "dev"
72
+ Requires-Dist: pre-commit; extra == "dev"
73
+ Requires-Dist: nbstripout; extra == "dev"
74
+ Requires-Dist: tabulate; extra == "dev"
75
+ Requires-Dist: tomli-w; extra == "dev"
76
+ Requires-Dist: kaleido; extra == "dev"
77
+ Requires-Dist: pandas; extra == "dev"
79
78
  Provides-Extra: doc
80
79
  Requires-Dist: struphy[phys]; extra == "doc"
81
- Requires-Dist: jupyter<=1.1.1; extra == "doc"
82
- Requires-Dist: nbconvert<=6.5.4; extra == "doc"
83
- Requires-Dist: ipykernel<=7.2.0; extra == "doc"
84
- Requires-Dist: sphinx<=9.1.0; extra == "doc"
85
- Requires-Dist: sphinx-design<=0.7.0; extra == "doc"
86
- Requires-Dist: lxml_html_clean<=0.4.4; extra == "doc"
87
- Requires-Dist: sphinxcontrib-napoleon<=0.7; extra == "doc"
88
- Requires-Dist: sphinx-copybutton<=0.5.2; extra == "doc"
89
- Requires-Dist: sphinx-collections<=0.3.1; extra == "doc"
90
- Requires-Dist: pydata-sphinx-theme<=0.17.1; extra == "doc"
91
- Requires-Dist: nbsphinx<=0.9.8; extra == "doc"
92
- Requires-Dist: m2r2<=0.3.4; extra == "doc"
93
- Requires-Dist: myst-parser<=5.0.0; extra == "doc"
94
- Requires-Dist: mistune<=0.8.4; extra == "doc"
95
- Requires-Dist: docutils<=0.22.4; extra == "doc"
96
- Requires-Dist: ipyparallel<=9.1.0; extra == "doc"
80
+ Requires-Dist: jupyter; extra == "doc"
81
+ Requires-Dist: nbconvert; extra == "doc"
82
+ Requires-Dist: ipykernel; extra == "doc"
83
+ Requires-Dist: sphinx; extra == "doc"
84
+ Requires-Dist: sphinx-design; extra == "doc"
85
+ Requires-Dist: lxml_html_clean; extra == "doc"
86
+ Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
87
+ Requires-Dist: sphinx-copybutton; extra == "doc"
88
+ Requires-Dist: sphinx-collections; extra == "doc"
89
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
90
+ Requires-Dist: nbsphinx; extra == "doc"
91
+ Requires-Dist: m2r2; extra == "doc"
92
+ Requires-Dist: myst-parser; extra == "doc"
93
+ Requires-Dist: docutils; extra == "doc"
94
+ Requires-Dist: ipyparallel; extra == "doc"
97
95
  Provides-Extra: likwid
98
96
  Requires-Dist: struphy[dev]; extra == "likwid"
99
97
  Requires-Dist: pylikwid; extra == "likwid"
@@ -122,6 +120,7 @@ Dynamic: license-file
122
120
 
123
121
  - Maxwell’s equations
124
122
  - Magneto-hydrodynamics (MHD)
123
+ - Multi-fluid models
125
124
  - Vlasov-Poisson and Vlasov-Maxwell kinetic models
126
125
  - Drift-kinetic models for strongly magnetized plasma
127
126
  - MHD-kinetic hybrid models
@@ -132,17 +131,10 @@ The code is freely available under an [MIT license](https://github.com/struphy-h
132
131
 
133
132
  ![Max Planck Institute Logo](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb_centered.png)
134
133
 
135
- ## Tutorials
136
-
137
- Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
138
-
139
134
  ## Quick install
140
135
 
141
- Quick install on your computer (using a virtual environment):
136
+ Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
142
137
 
143
- python -m venv struphy_env
144
- source struphy_env/bin/activate
145
- pip install -U pip
146
138
  pip install -U struphy
147
139
  struphy compile
148
140
 
@@ -151,6 +143,38 @@ In case you face troubles with install/compile:
151
143
  1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
152
144
  2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
153
145
 
146
+ ## Example: solve Maxwell’s equations
147
+
148
+ Use the command line to generate a default launch file:
149
+
150
+ struphy params Maxwell
151
+
152
+ This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
153
+
154
+ python params_Maxwell.py
155
+
156
+ The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
157
+
158
+ Parallel simulations are run for example with
159
+
160
+ pip install -U mpi4py
161
+ mpirun -n 4 python params_Maxwell.py
162
+
163
+ You can also put the run command in a batch script.
164
+
165
+ ## Available models
166
+
167
+ Check the list of currently available models in the [documentation](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
168
+
169
+ ## Documentation
170
+
171
+ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
172
+
173
+ - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
174
+ - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
175
+ - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
176
+ - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
177
+
154
178
  ## Python API
155
179
 
156
180
  Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
@@ -181,24 +205,9 @@ sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
181
205
 
182
206
  This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
183
207
 
184
- ## Quick run
185
-
186
- As an example, let’s say we want to solve Maxwell’s equations. We can use the CLI and generate a default launch file via
187
-
188
- struphy params Maxwell
189
-
190
- Hit yes when prompted - this will create the file `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters, then run
191
-
192
- python params_Maxwell.py
193
-
194
- The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
195
-
196
- Parallel simulations are run for example with
197
-
198
- pip install -U mpi4py
199
- mpirun -n 4 python params_Maxwell.py
208
+ ## Tutorials on Binder
200
209
 
201
- You can also put the run command in a batch script.
210
+ Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
202
211
 
203
212
  ## Docker
204
213
 
@@ -217,15 +226,6 @@ There is also a [Docker image with just the prerequisites](https://hub.docker.co
217
226
  docker pull spossann/ubuntu-for-struphy:main
218
227
  docker run -it --rm spossann/ubuntu-for-struphy:main
219
228
 
220
- ## Documentation
221
-
222
- The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
223
-
224
- - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
225
- - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
226
- - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
227
- - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
228
-
229
229
  ## Get in touch
230
230
 
231
231
  - [Issues](https://github.com/struphy-hub/struphy/issues)
@@ -234,6 +234,21 @@ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html),
234
234
  - [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
235
235
  - [LinkedIn profile](https://www.linkedin.com/company/struphy/)
236
236
 
237
- ## Citing Struphy
237
+ ## Publications
238
+
239
+ - D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
240
+ [**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
241
+ Journal of Computational Physics, Volume 555, 114765 (2026).
242
+
243
+ - V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
244
+ Journal of Computational Physics, Volume 523, 113647 (2025).
245
+
246
+ - Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
247
+
248
+ - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
249
+
250
+ - F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
251
+
252
+ - F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
238
253
 
239
- - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information 2023, 263-271, Springer Nature Switzerland.
254
+ - F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).
@@ -15,6 +15,7 @@
15
15
 
16
16
  - Maxwell’s equations
17
17
  - Magneto-hydrodynamics (MHD)
18
+ - Multi-fluid models
18
19
  - Vlasov-Poisson and Vlasov-Maxwell kinetic models
19
20
  - Drift-kinetic models for strongly magnetized plasma
20
21
  - MHD-kinetic hybrid models
@@ -25,17 +26,10 @@ The code is freely available under an [MIT license](https://github.com/struphy-h
25
26
 
26
27
  ![Max Planck Institute Logo](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb_centered.png)
27
28
 
28
- ## Tutorials
29
-
30
- Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
31
-
32
29
  ## Quick install
33
30
 
34
- Quick install on your computer (using a virtual environment):
31
+ Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
35
32
 
36
- python -m venv struphy_env
37
- source struphy_env/bin/activate
38
- pip install -U pip
39
33
  pip install -U struphy
40
34
  struphy compile
41
35
 
@@ -44,6 +38,38 @@ In case you face troubles with install/compile:
44
38
  1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
45
39
  2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
46
40
 
41
+ ## Example: solve Maxwell’s equations
42
+
43
+ Use the command line to generate a default launch file:
44
+
45
+ struphy params Maxwell
46
+
47
+ This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
48
+
49
+ python params_Maxwell.py
50
+
51
+ The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
52
+
53
+ Parallel simulations are run for example with
54
+
55
+ pip install -U mpi4py
56
+ mpirun -n 4 python params_Maxwell.py
57
+
58
+ You can also put the run command in a batch script.
59
+
60
+ ## Available models
61
+
62
+ Check the list of currently available models in the [documentation](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
63
+
64
+ ## Documentation
65
+
66
+ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
67
+
68
+ - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
69
+ - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
70
+ - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
71
+ - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
72
+
47
73
  ## Python API
48
74
 
49
75
  Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
@@ -74,24 +100,9 @@ sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
74
100
 
75
101
  This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
76
102
 
77
- ## Quick run
103
+ ## Tutorials on Binder
78
104
 
79
- As an example, let’s say we want to solve Maxwell’s equations. We can use the CLI and generate a default launch file via
80
-
81
- struphy params Maxwell
82
-
83
- Hit yes when prompted - this will create the file `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters, then run
84
-
85
- python params_Maxwell.py
86
-
87
- The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
88
-
89
- Parallel simulations are run for example with
90
-
91
- pip install -U mpi4py
92
- mpirun -n 4 python params_Maxwell.py
93
-
94
- You can also put the run command in a batch script.
105
+ Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
95
106
 
96
107
  ## Docker
97
108
 
@@ -110,15 +121,6 @@ There is also a [Docker image with just the prerequisites](https://hub.docker.co
110
121
  docker pull spossann/ubuntu-for-struphy:main
111
122
  docker run -it --rm spossann/ubuntu-for-struphy:main
112
123
 
113
- ## Documentation
114
-
115
- The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
116
-
117
- - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
118
- - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
119
- - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
120
- - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
121
-
122
124
  ## Get in touch
123
125
 
124
126
  - [Issues](https://github.com/struphy-hub/struphy/issues)
@@ -127,6 +129,21 @@ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html),
127
129
  - [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
128
130
  - [LinkedIn profile](https://www.linkedin.com/company/struphy/)
129
131
 
130
- ## Citing Struphy
132
+ ## Publications
133
+
134
+ - D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
135
+ [**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
136
+ Journal of Computational Physics, Volume 555, 114765 (2026).
137
+
138
+ - V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
139
+ Journal of Computational Physics, Volume 523, 113647 (2025).
140
+
141
+ - Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
142
+
143
+ - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
144
+
145
+ - F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
146
+
147
+ - F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
131
148
 
132
- - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information 2023, 263-271, Springer Nature Switzerland.
149
+ - F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "struphy"
9
- version = "3.1.0"
9
+ version = "3.2.0"
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.10"
12
12
  authors = [
@@ -25,77 +25,75 @@ classifiers = [
25
25
  dependencies = [
26
26
  "numpy<=2.4.3",
27
27
  "cunumpy<=0.1.1",
28
- "pyccel<=2.2.3, >=2.1",
28
+ "pyccel>=2.2.0, <=2.2.3",
29
29
  "feectools<=0.1.3",
30
30
  "scipy<=1.17.1",
31
31
  "h5py<=3.16.0",
32
32
  "matplotlib<=3.10.8",
33
33
  "pyyaml<=6.0.3",
34
34
  "vtk<=9.6.1",
35
- "tqdm<=4.67.3",
35
+ "tqdm<=4.68.1",
36
36
  "argcomplete<=3.6.3",
37
37
  "ipywidgets<=8.1.8",
38
- "plotly<=6.6.0",
39
- "pyvista<=0.47.3",
40
- "trame<=3.12.0",
38
+ "plotly<=6.8.0",
39
+ "pyvista<=0.48.0",
40
+ "trame<=3.13.0",
41
41
  "trame-vtk<=2.11.8",
42
- "trame-vuetify<=3.2.1",
42
+ "trame-vuetify<=3.2.2",
43
43
  "nest_asyncio2<=1.7.2",
44
44
  "vtk<=9.6.1",
45
45
  "pytest<=9.0.3",
46
46
  "pytest-mpi<=0.6",
47
47
  "pytest-testmon<=2.2.0",
48
- "ruff<=0.15.11, >=0.15.0",
48
+ "ruff>=0.15.0, <=0.15.12",
49
49
  "line_profiler<=5.0.2",
50
- "scope-profiler<=0.1.9, >=0.1.7",
51
- "jax-finufft<=1.2.0",
50
+ "scope-profiler>=0.1.7, <=0.1.9",
52
51
  ]
53
52
 
54
53
  [project.license]
55
54
  file = "LICENSE"
56
55
 
57
56
  [project.optional-dependencies]
57
+ mpi = [
58
+ "mpi4py<=4.1.1",
59
+ ]
58
60
  phys = [
59
- "gvec<=1.4.1, >=1.1.0",
61
+ "gvec>=1.1.0, <=1.4.1",
60
62
  "desc-opt<=0.17.1",
61
63
  ]
62
64
  dev = [
63
65
  "struphy[mpi]",
64
- "notebook<=7.5.5",
65
- "autopep8<=2.3.2",
66
- "isort<=8.0.1",
67
- "flake8<=7.3.0",
68
- "pylint<=4.0.5",
69
- "ssort<=0.16.0",
70
- "add-trailing-comma<=4.0.0",
71
- "pre-commit<=4.6.0",
72
- "nbstripout<=0.9.1",
73
- "tabulate<=0.10.0",
74
- "tomli-w<=1.2.0",
75
- "kaleido<=1.2.0",
76
- "pandas<=3.0.2",
77
- ]
78
- mpi = [
79
- "mpi4py<=4.1.1",
66
+ "notebook",
67
+ "autopep8",
68
+ "isort",
69
+ "flake8",
70
+ "pylint",
71
+ "ssort",
72
+ "add-trailing-comma",
73
+ "pre-commit",
74
+ "nbstripout",
75
+ "tabulate",
76
+ "tomli-w",
77
+ "kaleido",
78
+ "pandas",
80
79
  ]
81
80
  doc = [
82
81
  "struphy[phys]",
83
- "jupyter<=1.1.1",
84
- "nbconvert<=6.5.4",
85
- "ipykernel<=7.2.0",
86
- "sphinx<=9.1.0",
87
- "sphinx-design<=0.7.0",
88
- "lxml_html_clean<=0.4.4",
89
- "sphinxcontrib-napoleon<=0.7",
90
- "sphinx-copybutton<=0.5.2",
91
- "sphinx-collections<=0.3.1",
92
- "pydata-sphinx-theme<=0.17.1",
93
- "nbsphinx<=0.9.8",
94
- "m2r2<=0.3.4",
95
- "myst-parser<=5.0.0",
96
- "mistune<=0.8.4",
97
- "docutils<=0.22.4",
98
- "ipyparallel<=9.1.0",
82
+ "jupyter",
83
+ "nbconvert",
84
+ "ipykernel",
85
+ "sphinx",
86
+ "sphinx-design",
87
+ "lxml_html_clean",
88
+ "sphinxcontrib-napoleon",
89
+ "sphinx-copybutton",
90
+ "sphinx-collections",
91
+ "pydata-sphinx-theme",
92
+ "nbsphinx",
93
+ "m2r2",
94
+ "myst-parser",
95
+ "docutils",
96
+ "ipyparallel",
99
97
  ]
100
98
  likwid = [
101
99
  "struphy[dev]",
@@ -48,7 +48,7 @@ config = {
48
48
 
49
49
  def set_logging_level(level: int = logging.WARNING):
50
50
  """Set logging level for struphy logger and its handlers.
51
-
51
+
52
52
  Useful levels are:
53
53
  * logging.DEBUG: for detailed debugging information.
54
54
  * logging.INFO: for general informational messages about the simulation setup and progress, plus key events.
@@ -123,6 +123,8 @@ from struphy.api.particles import (
123
123
  BoundaryParameters,
124
124
  KernelDensityPlot,
125
125
  LoadingParameters,
126
+ SavingParameters,
127
+ SortingParameters,
126
128
  WeightsParameters,
127
129
  )
128
130
  from struphy.api.perturbations import perturbations
@@ -141,6 +143,8 @@ __all__ = [
141
143
  "LoadingParameters",
142
144
  "WeightsParameters",
143
145
  "BoundaryParameters",
146
+ "SortingParameters",
147
+ "SavingParameters",
144
148
  "BinningPlot",
145
149
  "KernelDensityPlot",
146
150
  "DerhamOptions",
@@ -3,12 +3,16 @@ from struphy.particles.parameters import (
3
3
  BoundaryParameters,
4
4
  KernelDensityPlot,
5
5
  LoadingParameters,
6
+ SavingParameters,
7
+ SortingParameters,
6
8
  WeightsParameters,
7
9
  )
8
10
 
9
11
  __all__ = [
10
12
  "LoadingParameters",
11
13
  "WeightsParameters",
14
+ "SortingParameters",
15
+ "SavingParameters",
12
16
  "BoundaryParameters",
13
17
  "BinningPlot",
14
18
  "KernelDensityPlot",