struphy 3.0.1__tar.gz → 3.0.3__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 (315) hide show
  1. {struphy-3.0.1 → struphy-3.0.3}/LICENSE +1 -1
  2. {struphy-3.0.1/src/struphy.egg-info → struphy-3.0.3}/PKG-INFO +29 -27
  3. {struphy-3.0.1 → struphy-3.0.3}/README.md +2 -2
  4. {struphy-3.0.1 → struphy-3.0.3}/pyproject.toml +26 -25
  5. struphy-3.0.3/src/struphy/__init__.py +44 -0
  6. struphy-3.0.3/src/struphy/api/domains/__init__.py +3 -0
  7. struphy-3.0.3/src/struphy/api/equils/__init__.py +3 -0
  8. struphy-3.0.3/src/struphy/api/grids/__init__.py +3 -0
  9. struphy-3.0.3/src/struphy/api/maxwellians/__init__.py +3 -0
  10. struphy-3.0.3/src/struphy/api/models/__init__.py +81 -0
  11. struphy-3.0.3/src/struphy/api/ode/__init__.py +3 -0
  12. struphy-3.0.3/src/struphy/api/options/__init__.py +16 -0
  13. struphy-3.0.3/src/struphy/api/particles/__init__.py +15 -0
  14. struphy-3.0.3/src/struphy/api/perturbations/__init__.py +3 -0
  15. struphy-3.0.3/src/struphy/api/post_processing/__init__.py +3 -0
  16. struphy-3.0.3/src/struphy/api/simulation/__init__.py +3 -0
  17. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/compile_struphy.mk +1 -1
  18. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/compile.py +17 -13
  19. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/format.py +28 -22
  20. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/main.py +11 -40
  21. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/params.py +6 -9
  22. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/test.py +9 -10
  23. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/tests/test_console.py +0 -10
  24. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/console_diagn.py +6 -8
  25. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/dispersion_relations/analytic.py +3 -3
  26. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/basis_projection_ops.py +61 -47
  27. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/mass.py +75 -59
  28. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/preconditioner.py +4 -1
  29. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/psydac_derham.py +10 -9
  30. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_basis_ops.py +2 -2
  31. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_eval_field.py +1 -1
  32. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_field_init.py +3 -5
  33. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_l2_projectors.py +1 -1
  34. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_local_projectors.py +2 -2
  35. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_mass_matrices.py +4 -4
  36. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_toarray_struphy.py +1 -1
  37. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_tosparse_struphy.py +1 -1
  38. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/xx_test_preconds.py +1 -1
  39. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/utilities_local_projectors.py +1 -1
  40. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/base.py +110 -32
  41. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/equils.py +299 -151
  42. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +1 -1
  43. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/projected_equils.py +13 -5
  44. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/tests/test_generic_equils.py +3 -7
  45. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/tests/test_mhd_equils.py +2 -2
  46. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +1 -2
  47. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/base.py +86 -4
  48. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/domains.py +9 -1
  49. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/tests/test_domain.py +5 -5
  50. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/utilities.py +3 -3
  51. struphy-3.0.3/src/struphy/initial/base.py +105 -0
  52. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/perturbations.py +58 -53
  53. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/tests/test_init_perturbations.py +13 -14
  54. struphy-3.0.3/src/struphy/io/options.py +290 -0
  55. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/io/setup.py +0 -60
  56. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/base.py +7 -0
  57. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/tests/test_maxwellians.py +5 -11
  58. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/schur_solver.py +4 -0
  59. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/solver.py +2 -2
  60. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +2 -3
  61. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +1 -2
  62. struphy-3.0.3/src/struphy/models/__init__.py +77 -0
  63. struphy-3.0.3/src/struphy/models/base.py +804 -0
  64. struphy-3.0.3/src/struphy/models/cold_plasma.py +127 -0
  65. struphy-3.0.3/src/struphy/models/cold_plasma_vlasov.py +241 -0
  66. struphy-3.0.3/src/struphy/models/deterministic_particle_diffusion.py +89 -0
  67. struphy-3.0.3/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +226 -0
  68. struphy-3.0.3/src/struphy/models/guiding_center.py +132 -0
  69. struphy-3.0.3/src/struphy/models/hasegawa_wakatani.py +142 -0
  70. struphy-3.0.3/src/struphy/models/linear_extended_mh_duniform.py +194 -0
  71. struphy-3.0.3/src/struphy/models/linear_mhd.py +172 -0
  72. struphy-3.0.3/src/struphy/models/linear_mhd_driftkinetic_cc.py +329 -0
  73. struphy-3.0.3/src/struphy/models/linear_mhd_vlasov_cc.py +244 -0
  74. struphy-3.0.3/src/struphy/models/linear_mhd_vlasov_pc.py +271 -0
  75. struphy-3.0.3/src/struphy/models/linear_vlasov_ampere_one_species.py +270 -0
  76. struphy-3.0.3/src/struphy/models/linear_vlasov_maxwell_one_species.py +167 -0
  77. struphy-3.0.3/src/struphy/models/maxwell.py +99 -0
  78. struphy-3.0.3/src/struphy/models/poisson.py +121 -0
  79. struphy-3.0.3/src/struphy/models/pressure_less_sph.py +111 -0
  80. struphy-3.0.3/src/struphy/models/random_particle_diffusion.py +88 -0
  81. struphy-3.0.3/src/struphy/models/shear_alfven.py +125 -0
  82. struphy-3.0.3/src/struphy/models/species.py +424 -0
  83. struphy-3.0.3/src/struphy/models/tests/default_params/test_models.py +93 -0
  84. struphy-3.0.3/src/struphy/models/tests/utils_testing.py +84 -0
  85. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_LinearMHD.py +31 -33
  86. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_Maxwell.py +44 -55
  87. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_Poisson.py +31 -48
  88. struphy-3.0.1/src/struphy/models/tests/verification/test_verif_EulerSPH.py → struphy-3.0.3/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +22 -25
  89. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +22 -30
  90. struphy-3.0.3/src/struphy/models/two_fluid_quasi_neutral_toy.py +128 -0
  91. struphy-3.0.3/src/struphy/models/utils.py +73 -0
  92. struphy-3.0.3/src/struphy/models/variables.py +677 -0
  93. struphy-3.0.3/src/struphy/models/variational_barotropic_fluid.py +122 -0
  94. struphy-3.0.3/src/struphy/models/variational_compressible_fluid.py +185 -0
  95. struphy-3.0.3/src/struphy/models/variational_pressureless_fluid.py +110 -0
  96. struphy-3.0.3/src/struphy/models/visco_resistive_deltaf_mhd.py +250 -0
  97. struphy-3.0.3/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +246 -0
  98. struphy-3.0.3/src/struphy/models/visco_resistive_linear_mhd.py +256 -0
  99. struphy-3.0.3/src/struphy/models/visco_resistive_linear_mhd_with_q.py +243 -0
  100. struphy-3.0.3/src/struphy/models/visco_resistive_mhd.py +254 -0
  101. struphy-3.0.3/src/struphy/models/visco_resistive_mhd_with_p.py +218 -0
  102. struphy-3.0.3/src/struphy/models/visco_resistive_mhd_with_q.py +227 -0
  103. struphy-3.0.3/src/struphy/models/viscous_euler_sph.py +150 -0
  104. struphy-3.0.3/src/struphy/models/viscous_fluid.py +208 -0
  105. struphy-3.0.3/src/struphy/models/vlasov.py +92 -0
  106. struphy-3.0.3/src/struphy/models/vlasov_ampere_one_species.py +247 -0
  107. struphy-3.0.3/src/struphy/models/vlasov_maxwell_one_species.py +264 -0
  108. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/ode/tests/test_ode_feec.py +2 -2
  109. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/ode/utils.py +46 -14
  110. struphy-3.0.3/src/struphy/particles/parameters.py +285 -0
  111. struphy-3.0.3/src/struphy/physics/physics.py +150 -0
  112. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/filter.py +2 -2
  113. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/particles_to_grid.py +1 -1
  114. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/base.py +323 -149
  115. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/particles.py +34 -210
  116. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/pushing/eval_kernels_gc.py +27 -23
  117. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/pushing/pusher.py +1 -1
  118. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_kernels.py +1 -1
  119. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/sph_smoothing_kernels.py +18 -0
  120. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_accum_vec_H1.py +1 -2
  121. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_binning.py +425 -35
  122. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_draw_parallel.py +1 -2
  123. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_pushers.py +6 -12
  124. struphy-3.0.3/src/struphy/pic/tests/test_set_zero_velocity.py +264 -0
  125. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_sorting.py +1 -2
  126. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_sph.py +393 -9
  127. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_tesselation.py +1 -3
  128. struphy-3.0.3/src/struphy/pic/utilities.py +77 -0
  129. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/cprofile_analyser.py +0 -1
  130. struphy-3.0.3/src/struphy/post_processing/likwid/plot_time_traces.py +377 -0
  131. struphy-3.0.3/src/struphy/post_processing/post_processing_tools.py +1345 -0
  132. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/__init__.py +2 -7
  133. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/base.py +16 -9
  134. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/propagators_coupling.py +40 -63
  135. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/propagators_fields.py +144 -245
  136. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/propagators_markers.py +51 -95
  137. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +1 -1
  138. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/tests/test_poisson.py +8 -8
  139. struphy-3.0.3/src/struphy/simulation/base.py +40 -0
  140. struphy-3.0.3/src/struphy/simulation/sim.py +1377 -0
  141. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/topology/grids.py +5 -0
  142. struphy-3.0.3/src/struphy/utils/__init__.py +0 -0
  143. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/utils/utils.py +26 -91
  144. {struphy-3.0.1 → struphy-3.0.3/src/struphy.egg-info}/PKG-INFO +29 -27
  145. {struphy-3.0.1 → struphy-3.0.3}/src/struphy.egg-info/SOURCES.txt +57 -12
  146. {struphy-3.0.1 → struphy-3.0.3}/src/struphy.egg-info/requires.txt +25 -23
  147. struphy-3.0.1/src/struphy/fields_background/generic.py +0 -89
  148. struphy-3.0.1/src/struphy/initial/base.py +0 -47
  149. struphy-3.0.1/src/struphy/io/options.py +0 -363
  150. struphy-3.0.1/src/struphy/main.py +0 -984
  151. struphy-3.0.1/src/struphy/models/__init__.py +0 -74
  152. struphy-3.0.1/src/struphy/models/base.py +0 -1789
  153. struphy-3.0.1/src/struphy/models/fluid.py +0 -2559
  154. struphy-3.0.1/src/struphy/models/hybrid.py +0 -1012
  155. struphy-3.0.1/src/struphy/models/kinetic.py +0 -1096
  156. struphy-3.0.1/src/struphy/models/species.py +0 -212
  157. struphy-3.0.1/src/struphy/models/tests/default_params/test_models.py +0 -67
  158. struphy-3.0.1/src/struphy/models/tests/utils_testing.py +0 -138
  159. struphy-3.0.1/src/struphy/models/toy.py +0 -1227
  160. struphy-3.0.1/src/struphy/models/variables.py +0 -425
  161. struphy-3.0.1/src/struphy/physics/physics.py +0 -11
  162. struphy-3.0.1/src/struphy/pic/utilities.py +0 -310
  163. struphy-3.0.1/src/struphy/post_processing/likwid/plot_time_traces.py +0 -412
  164. struphy-3.0.1/src/struphy/post_processing/post_processing_tools.py +0 -835
  165. struphy-3.0.1/src/struphy/profiling/profiling.py +0 -347
  166. {struphy-3.0.1 → struphy-3.0.3}/setup.cfg +0 -0
  167. {struphy-3.0.1/src/struphy → struphy-3.0.3/src/struphy/api}/__init__.py +0 -0
  168. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/__init__.py +0 -0
  169. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/bsplines.py +0 -0
  170. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  171. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  172. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  173. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  174. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  175. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/tests/__init__.py +0 -0
  176. /struphy-3.0.1/src/struphy/bsplines/tests/test_bsplines_kernels.py → /struphy-3.0.3/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
  177. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  178. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/conftest.py +0 -0
  179. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/__init__.py +0 -0
  180. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/likwid.py +0 -0
  181. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/parsers.py +0 -0
  182. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/console/profile.py +0 -0
  183. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/dependencies.py +0 -0
  184. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/__init__.py +0 -0
  185. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/diagn_tools.py +0 -0
  186. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/paraview/__init__.py +0 -0
  187. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
  188. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
  189. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/dispersion_relations/__init__.py +0 -0
  190. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/dispersion_relations/base.py +0 -0
  191. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/dispersion_relations/utilities.py +0 -0
  192. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  193. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/examples/_draw_parallel.py +0 -0
  194. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/examples/restelli2018/__init__.py +0 -0
  195. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/examples/restelli2018/callables.py +0 -0
  196. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/__init__.py +0 -0
  197. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  198. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/basis_projection_kernels.py +0 -0
  199. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/linear_operators.py +0 -0
  200. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/local_projectors_kernels.py +0 -0
  201. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/mass_kernels.py +0 -0
  202. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/projectors.py +0 -0
  203. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/__init__.py +0 -0
  204. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_derham.py +0 -0
  205. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  206. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/utilities.py +0 -0
  207. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/utilities_kernels.py +0 -0
  208. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/feec/variational_utilities.py +0 -0
  209. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/__init__.py +0 -0
  210. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
  211. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/base.py +0 -0
  212. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
  213. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
  214. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
  215. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  216. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
  217. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
  218. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
  219. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
  220. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
  221. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
  222. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
  223. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
  224. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
  225. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
  226. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
  227. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
  228. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
  229. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
  230. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
  231. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/tests/__init__.py +0 -0
  232. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
  233. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/__init__.py +0 -0
  234. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/evaluation_kernels.py +0 -0
  235. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/map_coef/__init__.py +0 -0
  236. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/mappings_kernels.py +0 -0
  237. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/tests/__init__.py +0 -0
  238. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/transform_kernels.py +0 -0
  239. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/geometry/utilities_kernels.py +0 -0
  240. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/__init__.py +0 -0
  241. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/eigenfunctions.py +0 -0
  242. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/tests/__init__.py +0 -0
  243. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/initial/utilities.py +0 -0
  244. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/io/__init__.py +0 -0
  245. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/io/output_handling.py +0 -0
  246. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kernel_arguments/__init__.py +0 -0
  247. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
  248. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
  249. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/__init__.py +0 -0
  250. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/maxwellians.py +0 -0
  251. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/moment_functions.py +0 -0
  252. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/tests/__init__.py +0 -0
  253. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/kinetic_background/tests/test_base.py +0 -0
  254. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/__init__.py +0 -0
  255. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  256. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  257. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/saddle_point.py +0 -0
  258. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  259. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  260. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/linear_algebra/tests/__init__.py +0 -0
  261. /struphy-3.0.1/src/struphy/linear_algebra/tests/test_stencil_dot_kernels.py → /struphy-3.0.3/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
  262. /struphy-3.0.1/src/struphy/linear_algebra/tests/test_stencil_transpose_kernels.py → /struphy-3.0.3/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
  263. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/__init__.py +0 -0
  264. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/default_params/__init__.py +0 -0
  265. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/models/tests/verification/__init__.py +0 -0
  266. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/ode/__init__.py +0 -0
  267. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/ode/solvers.py +0 -0
  268. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/ode/tests/__init__.py +0 -0
  269. {struphy-3.0.1/src/struphy/physics → struphy-3.0.3/src/struphy/particles}/__init__.py +0 -0
  270. {struphy-3.0.1/src/struphy/pic → struphy-3.0.3/src/struphy/physics}/__init__.py +0 -0
  271. {struphy-3.0.1/src/struphy/pic/accumulation → struphy-3.0.3/src/struphy/pic}/__init__.py +0 -0
  272. {struphy-3.0.1/src/struphy/pic/pushing → struphy-3.0.3/src/struphy/pic/accumulation}/__init__.py +0 -0
  273. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
  274. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
  275. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  276. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
  277. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  278. {struphy-3.0.1/src/struphy/pic/tests → struphy-3.0.3/src/struphy/pic/pushing}/__init__.py +0 -0
  279. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
  280. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  281. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/sampling_kernels.py +0 -0
  282. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/sobol_seq.py +0 -0
  283. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/sorting_kernels.py +0 -0
  284. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/sph_eval_kernels.py +0 -0
  285. {struphy-3.0.1/src/struphy/polar → struphy-3.0.3/src/struphy/pic/tests}/__init__.py +0 -0
  286. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
  287. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/pic/utilities_kernels.py +0 -0
  288. {struphy-3.0.1/src/struphy/polar/tests → struphy-3.0.3/src/struphy/polar}/__init__.py +0 -0
  289. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/polar/basic.py +0 -0
  290. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/polar/extraction_operators.py +0 -0
  291. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/polar/linear_operators.py +0 -0
  292. {struphy-3.0.1/src/struphy/post_processing → struphy-3.0.3/src/struphy/polar/tests}/__init__.py +0 -0
  293. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/polar/tests/test_polar.py +0 -0
  294. {struphy-3.0.1/src/struphy/post_processing/likwid → struphy-3.0.3/src/struphy/post_processing}/__init__.py +0 -0
  295. {struphy-3.0.1/src/struphy/post_processing/orbits → struphy-3.0.3/src/struphy/post_processing/likwid}/__init__.py +0 -0
  296. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
  297. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
  298. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
  299. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
  300. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
  301. {struphy-3.0.1/src/struphy/post_processing/tests → struphy-3.0.3/src/struphy/post_processing/orbits}/__init__.py +0 -0
  302. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
  303. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
  304. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/post_processing/profile_struphy.py +0 -0
  305. {struphy-3.0.1/src/struphy/profiling → struphy-3.0.3/src/struphy/post_processing/tests}/__init__.py +0 -0
  306. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/propagators/tests/__init__.py +0 -0
  307. {struphy-3.0.1/src/struphy/topology → struphy-3.0.3/src/struphy/simulation}/__init__.py +0 -0
  308. {struphy-3.0.1/src/struphy/utils → struphy-3.0.3/src/struphy/topology}/__init__.py +0 -0
  309. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/utils/clone_config.py +0 -0
  310. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/utils/cupy_vs_numpy.py +0 -0
  311. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/utils/pyccel.py +0 -0
  312. {struphy-3.0.1 → struphy-3.0.3}/src/struphy/utils/test_clone_config.py +0 -0
  313. {struphy-3.0.1 → struphy-3.0.3}/src/struphy.egg-info/dependency_links.txt +0 -0
  314. {struphy-3.0.1 → struphy-3.0.3}/src/struphy.egg-info/entry_points.txt +0 -0
  315. {struphy-3.0.1 → struphy-3.0.3}/src/struphy.egg-info/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics
1
+ Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
4
4
  associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: struphy
3
- Version: 3.0.1
3
+ Version: 3.0.3
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
7
- License: Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics
7
+ License: Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics
8
8
 
9
9
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
10
10
  associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -32,39 +32,40 @@ Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
33
  Requires-Dist: numpy<=2.2.6
34
34
  Requires-Dist: cunumpy<=0.1
35
- Requires-Dist: pyccel<=2.1.0,>=2.0
36
- Requires-Dist: feectools<=0.1.0
35
+ Requires-Dist: pyccel<=2.1.0,>=2.1
36
+ Requires-Dist: feectools<=0.1.3
37
37
  Requires-Dist: scipy<=1.15.3
38
- Requires-Dist: h5py<=3.14.0
39
- Requires-Dist: matplotlib<=3.10.5
38
+ Requires-Dist: h5py<=3.15.1
39
+ Requires-Dist: matplotlib<=3.10.7
40
40
  Requires-Dist: pyyaml<=6.0.3
41
- Requires-Dist: vtk<=9.5.2
42
- Requires-Dist: tqdm<=4.67.1
41
+ Requires-Dist: vtk<=9.6.0
42
+ Requires-Dist: tqdm<=4.67.3
43
43
  Requires-Dist: argcomplete<=3.6.3
44
+ Requires-Dist: plotly<=6.4.0
44
45
  Requires-Dist: pytest<=9.0.2
45
46
  Requires-Dist: pytest-mpi<=0.6
46
47
  Requires-Dist: pytest-testmon<=2.2.0
47
- Requires-Dist: line_profiler<=5.0.0
48
+ Requires-Dist: line_profiler<=5.0.1
49
+ Requires-Dist: scope-profiler<=0.1.7,>=0.1.7
48
50
  Provides-Extra: phys
49
- Requires-Dist: gvec<=1.2.0,>=1.1.0; extra == "phys"
50
- Requires-Dist: desc-opt<=0.15.0; extra == "phys"
51
+ Requires-Dist: gvec<=1.3.1,>=1.1.0; extra == "phys"
52
+ Requires-Dist: desc-opt<=0.16.0; extra == "phys"
51
53
  Provides-Extra: dev
52
54
  Requires-Dist: struphy[mpi]; extra == "dev"
53
- Requires-Dist: notebook<=7.4.7; extra == "dev"
55
+ Requires-Dist: notebook<=7.5.3; extra == "dev"
54
56
  Requires-Dist: autopep8<=2.3.2; extra == "dev"
55
- Requires-Dist: isort<=7.0.0; extra == "dev"
57
+ Requires-Dist: isort<=8.0.0; extra == "dev"
56
58
  Requires-Dist: flake8<=7.3.0; extra == "dev"
57
- Requires-Dist: pylint<=4.0.2; extra == "dev"
58
- Requires-Dist: ssort<=0.15.0; extra == "dev"
59
+ Requires-Dist: pylint<=4.0.5; extra == "dev"
60
+ Requires-Dist: ssort<=0.16.0; extra == "dev"
59
61
  Requires-Dist: add-trailing-comma<=4.0.0; extra == "dev"
60
- Requires-Dist: ruff<=0.14.4,>=0.9.1; extra == "dev"
61
- Requires-Dist: pre-commit<=4.4.0; extra == "dev"
62
- Requires-Dist: nbstripout<=0.8.1; extra == "dev"
62
+ Requires-Dist: ruff<=0.15.2,>=0.15.0; extra == "dev"
63
+ Requires-Dist: pre-commit<=4.5.1; extra == "dev"
64
+ Requires-Dist: nbstripout<=0.9.1; extra == "dev"
63
65
  Requires-Dist: tabulate<=0.9.0; extra == "dev"
64
66
  Requires-Dist: tomli-w<=1.2.0; extra == "dev"
65
67
  Requires-Dist: kaleido<=1.2.0; extra == "dev"
66
- Requires-Dist: pandas<=2.3.3; extra == "dev"
67
- Requires-Dist: plotly<=6.3.0; extra == "dev"
68
+ Requires-Dist: pandas<=3.0.1; extra == "dev"
68
69
  Provides-Extra: mpi
69
70
  Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
70
71
  Provides-Extra: doc
@@ -72,17 +73,17 @@ Requires-Dist: struphy[phys]; extra == "doc"
72
73
  Requires-Dist: jupyter<=1.1.1; extra == "doc"
73
74
  Requires-Dist: nbconvert<=6.5.4; extra == "doc"
74
75
  Requires-Dist: ipykernel<=7.1.0; extra == "doc"
75
- Requires-Dist: sphinx<=8.1.3; extra == "doc"
76
- Requires-Dist: sphinx-design<=0.6.1; extra == "doc"
76
+ Requires-Dist: sphinx<=9.1.0; extra == "doc"
77
+ Requires-Dist: sphinx-design<=0.7.0; extra == "doc"
77
78
  Requires-Dist: lxml_html_clean<=0.4.3; extra == "doc"
78
79
  Requires-Dist: sphinxcontrib-napoleon<=0.7; extra == "doc"
79
80
  Requires-Dist: sphinx-copybutton<=0.5.2; extra == "doc"
80
81
  Requires-Dist: pydata-sphinx-theme<=0.16.1; extra == "doc"
81
- Requires-Dist: nbsphinx<=0.9.7; extra == "doc"
82
+ Requires-Dist: nbsphinx<=0.9.8; extra == "doc"
82
83
  Requires-Dist: m2r2<=0.3.4; extra == "doc"
83
- Requires-Dist: myst-parser<=4.0.1; extra == "doc"
84
+ Requires-Dist: myst-parser<=5.0.0; extra == "doc"
84
85
  Requires-Dist: mistune<=0.8.4; extra == "doc"
85
- Requires-Dist: docutils<=0.21.2; extra == "doc"
86
+ Requires-Dist: docutils<=0.22.4; extra == "doc"
86
87
  Requires-Dist: ipyparallel<=9.0.2; extra == "doc"
87
88
  Provides-Extra: likwid
88
89
  Requires-Dist: struphy[dev]; extra == "likwid"
@@ -92,6 +93,7 @@ Requires-Dist: struphy[phys]; extra == "all"
92
93
  Requires-Dist: struphy[dev]; extra == "all"
93
94
  Requires-Dist: struphy[mpi]; extra == "all"
94
95
  Requires-Dist: struphy[doc]; extra == "all"
96
+ Requires-Dist: struphy[likwid]; extra == "all"
95
97
  Dynamic: license-file
96
98
 
97
99
  <h1 align="center">
@@ -101,8 +103,8 @@ Dynamic: license-file
101
103
  [![Release](https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release)](https://github.com/struphy-hub/struphy/releases)
102
104
  [![License](https://img.shields.io/badge/License-MIT-violet)](https://github.com/struphy-hub/struphy/blob/devel/LICENSE)
103
105
  [![badge](https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main)
104
- [![Ubuntu latest](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml)
105
- [![MacOS latest](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml)
106
+ [![Ubuntu latest](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml)
107
+ [![MacOS latest](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml)
106
108
  [![isort and ruff](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml)
107
109
  [![PyPI](https://img.shields.io/pypi/v/struphy?label=PyPI)](https://pypi.org/project/struphy/)
108
110
  [![PyPI Downloads](https://img.shields.io/pypi/dm/struphy.svg?label=PyPI%20downloads)](
@@ -5,8 +5,8 @@
5
5
  [![Release](https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release)](https://github.com/struphy-hub/struphy/releases)
6
6
  [![License](https://img.shields.io/badge/License-MIT-violet)](https://github.com/struphy-hub/struphy/blob/devel/LICENSE)
7
7
  [![badge](https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main)
8
- [![Ubuntu latest](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml)
9
- [![MacOS latest](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml)
8
+ [![Ubuntu latest](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml)
9
+ [![MacOS latest](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml)
10
10
  [![isort and ruff](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg)](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml)
11
11
  [![PyPI](https://img.shields.io/pypi/v/struphy?label=PyPI)](https://pypi.org/project/struphy/)
12
12
  [![PyPI Downloads](https://img.shields.io/pypi/dm/struphy.svg?label=PyPI%20downloads)](
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "struphy"
9
- version = "3.0.1"
9
+ version = "3.0.3"
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.10"
12
12
  authors = [
@@ -25,19 +25,21 @@ classifiers = [
25
25
  dependencies = [
26
26
  "numpy<=2.2.6",
27
27
  "cunumpy<=0.1",
28
- "pyccel<=2.1.0, >=2.0",
29
- "feectools<=0.1.0",
28
+ "pyccel<=2.1.0, >=2.1",
29
+ "feectools<=0.1.3",
30
30
  "scipy<=1.15.3",
31
- "h5py<=3.14.0",
32
- "matplotlib<=3.10.5",
31
+ "h5py<=3.15.1",
32
+ "matplotlib<=3.10.7",
33
33
  "pyyaml<=6.0.3",
34
- "vtk<=9.5.2",
35
- "tqdm<=4.67.1",
34
+ "vtk<=9.6.0",
35
+ "tqdm<=4.67.3",
36
36
  "argcomplete<=3.6.3",
37
+ "plotly<=6.4.0",
37
38
  "pytest<=9.0.2",
38
39
  "pytest-mpi<=0.6",
39
40
  "pytest-testmon<=2.2.0",
40
- "line_profiler<=5.0.0",
41
+ "line_profiler<=5.0.1",
42
+ "scope-profiler<=0.1.7, >=0.1.7",
41
43
  ]
42
44
 
43
45
  [project.license]
@@ -45,26 +47,25 @@ file = "LICENSE"
45
47
 
46
48
  [project.optional-dependencies]
47
49
  phys = [
48
- "gvec<=1.2.0, >=1.1.0",
49
- "desc-opt<=0.15.0",
50
+ "gvec<=1.3.1, >=1.1.0",
51
+ "desc-opt<=0.16.0",
50
52
  ]
51
53
  dev = [
52
54
  "struphy[mpi]",
53
- "notebook<=7.4.7",
55
+ "notebook<=7.5.3",
54
56
  "autopep8<=2.3.2",
55
- "isort<=7.0.0",
57
+ "isort<=8.0.0",
56
58
  "flake8<=7.3.0",
57
- "pylint<=4.0.2",
58
- "ssort<=0.15.0",
59
+ "pylint<=4.0.5",
60
+ "ssort<=0.16.0",
59
61
  "add-trailing-comma<=4.0.0",
60
- "ruff<=0.14.4, >=0.9.1",
61
- "pre-commit<=4.4.0",
62
- "nbstripout<=0.8.1",
62
+ "ruff<=0.15.2, >=0.15.0",
63
+ "pre-commit<=4.5.1",
64
+ "nbstripout<=0.9.1",
63
65
  "tabulate<=0.9.0",
64
66
  "tomli-w<=1.2.0",
65
67
  "kaleido<=1.2.0",
66
- "pandas<=2.3.3",
67
- "plotly<=6.3.0",
68
+ "pandas<=3.0.1",
68
69
  ]
69
70
  mpi = [
70
71
  "mpi4py<=4.1.1",
@@ -74,17 +75,17 @@ doc = [
74
75
  "jupyter<=1.1.1",
75
76
  "nbconvert<=6.5.4",
76
77
  "ipykernel<=7.1.0",
77
- "sphinx<=8.1.3",
78
- "sphinx-design<=0.6.1",
78
+ "sphinx<=9.1.0",
79
+ "sphinx-design<=0.7.0",
79
80
  "lxml_html_clean<=0.4.3",
80
81
  "sphinxcontrib-napoleon<=0.7",
81
82
  "sphinx-copybutton<=0.5.2",
82
83
  "pydata-sphinx-theme<=0.16.1",
83
- "nbsphinx<=0.9.7",
84
+ "nbsphinx<=0.9.8",
84
85
  "m2r2<=0.3.4",
85
- "myst-parser<=4.0.1",
86
+ "myst-parser<=5.0.0",
86
87
  "mistune<=0.8.4",
87
- "docutils<=0.21.2",
88
+ "docutils<=0.22.4",
88
89
  "ipyparallel<=9.0.2",
89
90
  ]
90
91
  likwid = [
@@ -96,6 +97,7 @@ all = [
96
97
  "struphy[dev]",
97
98
  "struphy[mpi]",
98
99
  "struphy[doc]",
100
+ "struphy[likwid]",
99
101
  ]
100
102
 
101
103
  [project.urls]
@@ -164,7 +166,6 @@ ignore = [
164
166
  [tool.pytest.ini_options]
165
167
  markers = [
166
168
  "models",
167
- "toy",
168
169
  "fluid",
169
170
  "kinetic",
170
171
  "hybrid",
@@ -0,0 +1,44 @@
1
+ from struphy.api.domains import domains
2
+ from struphy.api.equils import equils
3
+ from struphy.api.grids import grids
4
+ from struphy.api.maxwellians import maxwellians
5
+ from struphy.api.ode import ButcherTableau
6
+ from struphy.api.options import (
7
+ BaseUnits,
8
+ DerhamOptions,
9
+ EnvironmentOptions,
10
+ FieldsBackground,
11
+ Time,
12
+ )
13
+ from struphy.api.particles import (
14
+ BinningPlot,
15
+ BoundaryParameters,
16
+ KernelDensityPlot,
17
+ LoadingParameters,
18
+ WeightsParameters,
19
+ )
20
+ from struphy.api.perturbations import perturbations
21
+ from struphy.api.post_processing import PlottingData, PostProcessor
22
+ from struphy.api.simulation import Simulation
23
+
24
+ __all__ = [
25
+ "domains",
26
+ "equils",
27
+ "grids",
28
+ "maxwellians",
29
+ "EnvironmentOptions",
30
+ "BaseUnits",
31
+ "Time",
32
+ "perturbations",
33
+ "LoadingParameters",
34
+ "WeightsParameters",
35
+ "BoundaryParameters",
36
+ "BinningPlot",
37
+ "KernelDensityPlot",
38
+ "DerhamOptions",
39
+ "FieldsBackground",
40
+ "ButcherTableau",
41
+ "PostProcessor",
42
+ "PlottingData",
43
+ "Simulation",
44
+ ]
@@ -0,0 +1,3 @@
1
+ from struphy.geometry import domains
2
+
3
+ __all__ = ["domains"]
@@ -0,0 +1,3 @@
1
+ from struphy.fields_background import equils
2
+
3
+ __all__ = ["equils"]
@@ -0,0 +1,3 @@
1
+ from struphy.topology import grids
2
+
3
+ __all__ = ["grids"]
@@ -0,0 +1,3 @@
1
+ from struphy.kinetic_background import maxwellians
2
+
3
+ __all__ = ["maxwellians"]
@@ -0,0 +1,81 @@
1
+ from struphy.models.cold_plasma import ColdPlasma
2
+ from struphy.models.cold_plasma_vlasov import ColdPlasmaVlasov
3
+ from struphy.models.deterministic_particle_diffusion import (
4
+ DeterministicParticleDiffusion,
5
+ )
6
+ from struphy.models.drift_kinetic_electrostatic_adiabatic import (
7
+ DriftKineticElectrostaticAdiabatic,
8
+ )
9
+ from struphy.models.guiding_center import GuidingCenter
10
+ from struphy.models.hasegawa_wakatani import HasegawaWakatani
11
+ from struphy.models.linear_extended_mh_duniform import LinearExtendedMHDuniform
12
+ from struphy.models.linear_mhd import LinearMHD
13
+ from struphy.models.linear_mhd_driftkinetic_cc import LinearMHDDriftkineticCC
14
+ from struphy.models.linear_mhd_vlasov_cc import LinearMHDVlasovCC
15
+ from struphy.models.linear_mhd_vlasov_pc import LinearMHDVlasovPC
16
+ from struphy.models.linear_vlasov_ampere_one_species import LinearVlasovAmpereOneSpecies
17
+ from struphy.models.linear_vlasov_maxwell_one_species import (
18
+ LinearVlasovMaxwellOneSpecies,
19
+ )
20
+ from struphy.models.maxwell import Maxwell
21
+ from struphy.models.poisson import Poisson
22
+ from struphy.models.pressure_less_sph import PressureLessSPH
23
+ from struphy.models.random_particle_diffusion import RandomParticleDiffusion
24
+ from struphy.models.shear_alfven import ShearAlfven
25
+ from struphy.models.two_fluid_quasi_neutral_toy import TwoFluidQuasiNeutralToy
26
+ from struphy.models.variational_barotropic_fluid import VariationalBarotropicFluid
27
+ from struphy.models.variational_compressible_fluid import VariationalCompressibleFluid
28
+ from struphy.models.variational_pressureless_fluid import VariationalPressurelessFluid
29
+ from struphy.models.visco_resistive_deltaf_mhd import ViscoResistiveDeltafMHD
30
+ from struphy.models.visco_resistive_deltaf_mhd_with_q import (
31
+ ViscoResistiveDeltafMHD_with_q,
32
+ )
33
+ from struphy.models.visco_resistive_linear_mhd import ViscoResistiveLinearMHD
34
+ from struphy.models.visco_resistive_linear_mhd_with_q import (
35
+ ViscoResistiveLinearMHD_with_q,
36
+ )
37
+ from struphy.models.visco_resistive_mhd import ViscoResistiveMHD
38
+ from struphy.models.visco_resistive_mhd_with_p import ViscoResistiveMHD_with_p
39
+ from struphy.models.visco_resistive_mhd_with_q import ViscoResistiveMHD_with_q
40
+ from struphy.models.viscous_euler_sph import ViscousEulerSPH
41
+ from struphy.models.viscous_fluid import ViscousFluid
42
+ from struphy.models.vlasov import Vlasov
43
+ from struphy.models.vlasov_ampere_one_species import VlasovAmpereOneSpecies
44
+ from struphy.models.vlasov_maxwell_one_species import VlasovMaxwellOneSpecies
45
+
46
+ __all__ = [
47
+ "ColdPlasma",
48
+ "ColdPlasmaVlasov",
49
+ "DeterministicParticleDiffusion",
50
+ "DriftKineticElectrostaticAdiabatic",
51
+ "GuidingCenter",
52
+ "HasegawaWakatani",
53
+ "LinearExtendedMHDuniform",
54
+ "LinearMHD",
55
+ "LinearMHDDriftkineticCC",
56
+ "LinearMHDVlasovCC",
57
+ "LinearMHDVlasovPC",
58
+ "LinearVlasovAmpereOneSpecies",
59
+ "LinearVlasovMaxwellOneSpecies",
60
+ "Maxwell",
61
+ "Poisson",
62
+ "PressureLessSPH",
63
+ "RandomParticleDiffusion",
64
+ "ShearAlfven",
65
+ "TwoFluidQuasiNeutralToy",
66
+ "VariationalBarotropicFluid",
67
+ "VariationalCompressibleFluid",
68
+ "VariationalPressurelessFluid",
69
+ "ViscoResistiveDeltafMHD",
70
+ "ViscoResistiveDeltafMHD_with_q",
71
+ "ViscoResistiveLinearMHD",
72
+ "ViscoResistiveLinearMHD_with_q",
73
+ "ViscoResistiveMHD",
74
+ "ViscoResistiveMHD_with_p",
75
+ "ViscoResistiveMHD_with_q",
76
+ "ViscousEulerSPH",
77
+ "ViscousFluid",
78
+ "Vlasov",
79
+ "VlasovAmpereOneSpecies",
80
+ "VlasovMaxwellOneSpecies",
81
+ ]
@@ -0,0 +1,3 @@
1
+ from struphy.ode.utils import ButcherTableau
2
+
3
+ all = ["ButcherTableau"]
@@ -0,0 +1,16 @@
1
+ from struphy.io.options import (
2
+ BaseUnits,
3
+ DerhamOptions,
4
+ EnvironmentOptions,
5
+ FieldsBackground,
6
+ Time,
7
+ )
8
+
9
+ __all__ = [
10
+ "EnvironmentOptions",
11
+ "BaseUnits",
12
+ "Time",
13
+ #
14
+ "DerhamOptions",
15
+ "FieldsBackground",
16
+ ]
@@ -0,0 +1,15 @@
1
+ from struphy.particles.parameters import (
2
+ BinningPlot,
3
+ BoundaryParameters,
4
+ KernelDensityPlot,
5
+ LoadingParameters,
6
+ WeightsParameters,
7
+ )
8
+
9
+ __all__ = [
10
+ "LoadingParameters",
11
+ "WeightsParameters",
12
+ "BoundaryParameters",
13
+ "BinningPlot",
14
+ "KernelDensityPlot",
15
+ ]
@@ -0,0 +1,3 @@
1
+ from struphy.initial import perturbations
2
+
3
+ __all__ = ["perturbations"]
@@ -0,0 +1,3 @@
1
+ from struphy.post_processing.post_processing_tools import PlottingData, PostProcessor
2
+
3
+ __all__ = ["PostProcessor", "PlottingData"]
@@ -0,0 +1,3 @@
1
+ from struphy.simulation.sim import Simulation
2
+
3
+ all = ["Simulation",]
@@ -35,7 +35,7 @@ all: $(OUTPUTS)
35
35
  @for dep in $^ ; do \
36
36
  echo $$dep ; \
37
37
  done
38
- pyccel $(FLAGS) $(FLAGS_openmp_pic) $(FLAGS_openmp_mhd) $<
38
+ pyccel compile -v $(FLAGS) $(FLAGS_openmp_pic) $(FLAGS_openmp_mhd) $<
39
39
  @echo ""
40
40
 
41
41
  #--------------------------------------
@@ -1,6 +1,4 @@
1
- import sys
2
-
3
- from struphy.utils.utils import subp_run
1
+ from struphy.utils.utils import STRUPHY_LIBPATH, subp_run
4
2
 
5
3
 
6
4
  def struphy_compile(
@@ -21,7 +19,7 @@ def struphy_compile(
21
19
  Parameters
22
20
  ----------
23
21
  language : str
24
- Either "c" (default) or "fortran".
22
+ Either "fortran" (default) or "c".
25
23
 
26
24
  compiler : str
27
25
  Either "GNU" (default), "intel", "PGI", "nvidia", or "LLVM"
@@ -67,7 +65,7 @@ def struphy_compile(
67
65
  import struphy.dependencies as depmod
68
66
  import struphy.utils.utils as utils
69
67
 
70
- libpath = struphy.__path__[0]
68
+ libpath = STRUPHY_LIBPATH
71
69
 
72
70
  so_suffix = sysconfig.get_config_var("EXT_SUFFIX")
73
71
 
@@ -107,6 +105,11 @@ def struphy_compile(
107
105
  if delete:
108
106
  # (change dir not to be in source path)
109
107
  print("\nDeleting .f90/.c and .so files ...")
108
+ # TODO: for using pyccel clean in the future
109
+ # cmd = [
110
+ # "pyccel",
111
+ # "clean",
112
+ # ]
110
113
  cmd = [
111
114
  "make",
112
115
  "clean",
@@ -272,6 +275,15 @@ def struphy_compile(
272
275
 
273
276
  # compilation
274
277
  print("\nCompiling Struphy kernels ...")
278
+ kernel_file = os.path.join(libpath, "kernels.txt")
279
+ # TODO: for using pyccel make in the future
280
+ # cmd = [
281
+ # "pyccel",
282
+ # "make",
283
+ # "-d",
284
+ # kernel_file,
285
+ # "-v",
286
+ # ]
275
287
  cmd = [
276
288
  "make",
277
289
  "-f",
@@ -290,11 +302,3 @@ def struphy_compile(
290
302
  "--status",
291
303
  ]
292
304
  subp_run(cmd)
293
-
294
- # collect available models
295
- print("")
296
- cmd = [
297
- "struphy",
298
- "--refresh-models",
299
- ]
300
- subp_run(cmd)
@@ -73,6 +73,8 @@ generate_html_table_from_combined_data(combined_data, sort_descending=True)
73
73
 
74
74
  import ast
75
75
  import fileinput
76
+ import importlib
77
+ import inspect
76
78
  import json
77
79
  import os
78
80
  import re
@@ -86,6 +88,7 @@ from collections import defaultdict
86
88
  from tabulate import tabulate
87
89
 
88
90
  import struphy
91
+ from struphy.models.base import StruphyModel
89
92
 
90
93
  LIBPATH = struphy.__path__[0]
91
94
 
@@ -1269,27 +1272,27 @@ def run_linters_on_files(linters, python_files, flags, verbose):
1269
1272
  print(line, end="")
1270
1273
 
1271
1274
 
1272
- def construct_models_init_file() -> str:
1275
+ def construct_models_init_file(models_dir: str = "src/struphy/models") -> str:
1273
1276
  """
1274
- Constructs the content for the __init__.py file for the models module.
1275
-
1276
- Returns:
1277
- str: The content for the __init__.py file as a string.
1277
+ Constructs __init__.py for all generated model files by reading actual class names.
1278
+ Skips base.py and __init__.py.
1278
1279
  """
1279
- import struphy.models.fluid as fluid
1280
- import struphy.models.hybrid as hybrid
1281
- import struphy.models.kinetic as kinetic
1282
- import struphy.models.toy as toy
1283
- from struphy.models.base import StruphyModel
1284
-
1285
1280
  models_init = ""
1286
-
1287
1281
  model_names = []
1288
- for model_type in [toy, fluid, hybrid, kinetic]:
1289
- for _, cls in model_type.__dict__.items():
1290
- if isinstance(cls, type) and issubclass(cls, StruphyModel) and cls != StruphyModel:
1291
- model_names.append(cls.__name__)
1292
- models_init += f"from {model_type.__name__} import {cls.__name__}\n"
1282
+
1283
+ for file_name in sorted(os.listdir(models_dir)):
1284
+ if file_name.endswith(".py") and file_name not in ["__init__.py", "base.py"]:
1285
+ module_name = file_name[:-3] # strip .py
1286
+ module = importlib.import_module(f"struphy.models.{module_name}")
1287
+
1288
+ # Loop over all classes in the module
1289
+ for _, cls in inspect.getmembers(module, inspect.isclass):
1290
+ # Only subclasses of StruphyModel defined in this module
1291
+ if issubclass(cls, StruphyModel) and cls.__module__ == module.__name__ and cls != StruphyModel:
1292
+ class_name = cls.__name__
1293
+ models_init += f"from struphy.models.{module_name} import {class_name}\n"
1294
+ model_names.append(class_name)
1295
+
1293
1296
  models_init += "\n\n"
1294
1297
  models_init += f"__all__ = {model_names}\n"
1295
1298
  return models_init
@@ -1352,17 +1355,20 @@ def struphy_format(config, verbose, yes=False):
1352
1355
  input_type = "path"
1353
1356
 
1354
1357
  if input_type == "__init__.py":
1355
- print(f"Rewriting {PROPAGATORS_INIT_PATH}")
1356
- propagators_init = construct_propagators_init_file()
1357
- with open(PROPAGATORS_INIT_PATH, "w") as f:
1358
- f.write(propagators_init)
1358
+ # print(f"Rewriting {PROPAGATORS_INIT_PATH}")
1359
+ # propagators_init = construct_propagators_init_file()
1360
+ # with open(PROPAGATORS_INIT_PATH, "w") as f:
1361
+ # f.write(propagators_init)
1359
1362
 
1360
1363
  print(f"Rewriting {MODELS_INIT_PATH}")
1361
1364
  models_init = construct_models_init_file()
1362
1365
  with open(MODELS_INIT_PATH, "w") as f:
1363
1366
  f.write(models_init)
1364
1367
 
1365
- python_files = [PROPAGATORS_INIT_PATH, MODELS_INIT_PATH]
1368
+ python_files = [
1369
+ # PROPAGATORS_INIT_PATH,
1370
+ MODELS_INIT_PATH,
1371
+ ]
1366
1372
  input_type = "path"
1367
1373
  else:
1368
1374
  python_files = get_python_files(input_type, path)