struphy 2.3.3__tar.gz → 2.4.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 (340) hide show
  1. {struphy-2.3.3 → struphy-2.4.0}/LICENSE +1 -1
  2. {struphy-2.3.3/src/struphy.egg-info → struphy-2.4.0}/PKG-INFO +42 -38
  3. {struphy-2.3.3 → struphy-2.4.0}/pyproject.toml +78 -39
  4. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/tests/test_bsplines_kernels.py +30 -29
  5. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/compile_struphy.mk +1 -13
  6. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/conftest.py +8 -3
  7. struphy-2.4.0/src/struphy/console/compile.py +326 -0
  8. struphy-2.4.0/src/struphy/console/format.py +1321 -0
  9. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/main.py +442 -389
  10. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/pproc.py +15 -22
  11. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/run.py +142 -125
  12. struphy-2.4.0/src/struphy/console/test.py +137 -0
  13. struphy-2.4.0/src/struphy/console/tests/test_console.py +537 -0
  14. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/dependencies.py +27 -26
  15. struphy-2.4.0/src/struphy/diagnostics/continuous_spectra.py +362 -0
  16. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/diagn_tools.py +251 -184
  17. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/dispersion_relations/analytic.py +308 -322
  18. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/dispersion_relations/base.py +43 -52
  19. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/kernels_2d.py +94 -36
  20. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/kernels_projectors_global_mhd.py +523 -339
  21. struphy-2.4.0/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_control_variate.py +444 -0
  22. struphy-2.4.0/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_control_variate.py +672 -0
  23. struphy-2.4.0/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_control_variate.py +595 -0
  24. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/mhd_operators_MF.py +692 -757
  25. struphy-2.4.0/src/struphy/feec/basis_projection_kernels.py +598 -0
  26. struphy-2.4.0/src/struphy/feec/basis_projection_ops.py +2331 -0
  27. struphy-2.4.0/src/struphy/feec/local_projectors_args_kernels.py +120 -0
  28. struphy-2.4.0/src/struphy/feec/local_projectors_kernels.py +1202 -0
  29. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/mass.py +1179 -609
  30. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/preconditioner.py +319 -196
  31. struphy-2.4.0/src/struphy/feec/projectors.py +2159 -0
  32. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/psydac_derham.py +882 -631
  33. struphy-2.4.0/src/struphy/feec/tests/test_local_projectors.py +1537 -0
  34. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/utilities.py +96 -55
  35. struphy-2.4.0/src/struphy/feec/utilities_local_projectors.py +915 -0
  36. struphy-2.4.0/src/struphy/feec/variational_utilities.py +284 -0
  37. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/braginskii_equil/base.py +215 -211
  38. struphy-2.4.0/src/struphy/fields_background/fluid_equils/base.py +366 -0
  39. struphy-2.4.0/src/struphy/fields_background/fluid_equils/equils.py +49 -0
  40. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/base.py +387 -318
  41. struphy-2.4.0/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +261 -0
  42. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/equils.py +897 -947
  43. struphy-2.4.0/src/struphy/fields_background/tests/test_gvec_equil.py +164 -0
  44. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/base.py +572 -380
  45. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/domains.py +215 -158
  46. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/mappings_kernels.py +467 -344
  47. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/perturbations.py +175 -174
  48. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/parameters.yml +5 -4
  49. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/setup.py +160 -128
  50. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/maxwellians.py +287 -345
  51. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/schur_solver.py +24 -34
  52. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/main.py +134 -129
  53. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/base.py +809 -778
  54. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/fluid.py +259 -182
  55. struphy-2.4.0/src/struphy/models/hybrid.py +1244 -0
  56. struphy-2.4.0/src/struphy/models/kinetic.py +1265 -0
  57. struphy-2.4.0/src/struphy/models/tests/test_fluid_models.py +53 -0
  58. struphy-2.4.0/src/struphy/models/tests/test_hybrid_models.py +53 -0
  59. struphy-2.4.0/src/struphy/models/tests/test_kinetic_models.py +53 -0
  60. struphy-2.4.0/src/struphy/models/tests/test_toy_models.py +42 -0
  61. struphy-2.4.0/src/struphy/models/tests/util.py +214 -0
  62. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/toy.py +418 -320
  63. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/particles_to_grid.py +75 -35
  64. struphy-2.4.0/src/struphy/pic/base.py +2935 -0
  65. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/particles.py +316 -145
  66. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/pusher_kernels.py +926 -555
  67. struphy-2.4.0/src/struphy/pic/sorting_kernels.py +166 -0
  68. struphy-2.4.0/src/struphy/pic/sph_eval_kernels.py +239 -0
  69. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_accum_vec_H1.py +48 -33
  70. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_accumulation.py +1 -0
  71. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_binning.py +334 -330
  72. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_draw_parallel.py +1 -1
  73. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pushers.py +6 -6
  74. struphy-2.4.0/src/struphy/pic/tests/test_sorting.py +94 -0
  75. struphy-2.4.0/src/struphy/pic/tests/test_sph.py +74 -0
  76. struphy-2.4.0/src/struphy/pic/utilities.py +67 -0
  77. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/utilities_kernels.py +201 -168
  78. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/basic.py +63 -37
  79. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/base.py +70 -62
  80. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/propagators_coupling.py +612 -529
  81. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/propagators_fields.py +2025 -1701
  82. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/propagators_markers.py +349 -270
  83. struphy-2.4.0/src/struphy/psydac-2.4.0-py3-none-any.whl +0 -0
  84. {struphy-2.3.3 → struphy-2.4.0/src/struphy.egg-info}/PKG-INFO +42 -38
  85. {struphy-2.3.3 → struphy-2.4.0}/src/struphy.egg-info/SOURCES.txt +9 -1
  86. struphy-2.4.0/src/struphy.egg-info/requires.txt +41 -0
  87. struphy-2.3.3/src/struphy/console/compile.py +0 -273
  88. struphy-2.3.3/src/struphy/console/format.py +0 -778
  89. struphy-2.3.3/src/struphy/console/test.py +0 -384
  90. struphy-2.3.3/src/struphy/diagnostics/continuous_spectra.py +0 -359
  91. struphy-2.3.3/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_control_variate.py +0 -139
  92. struphy-2.3.3/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_control_variate.py +0 -208
  93. struphy-2.3.3/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_control_variate.py +0 -159
  94. struphy-2.3.3/src/struphy/feec/basis_projection_kernels.py +0 -1976
  95. struphy-2.3.3/src/struphy/feec/basis_projection_ops.py +0 -1371
  96. struphy-2.3.3/src/struphy/feec/projectors.py +0 -1780
  97. struphy-2.3.3/src/struphy/feec/tests/test_local_projectors.py +0 -259
  98. struphy-2.3.3/src/struphy/feec/variational_utilities.py +0 -226
  99. struphy-2.3.3/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -238
  100. struphy-2.3.3/src/struphy/fields_background/tests/test_gvec_equil.py +0 -175
  101. struphy-2.3.3/src/struphy/models/hybrid.py +0 -1182
  102. struphy-2.3.3/src/struphy/models/kinetic.py +0 -1122
  103. struphy-2.3.3/src/struphy/models/tests/test_fluid_models.py +0 -53
  104. struphy-2.3.3/src/struphy/models/tests/test_hybrid_models.py +0 -52
  105. struphy-2.3.3/src/struphy/models/tests/test_kinetic_models.py +0 -55
  106. struphy-2.3.3/src/struphy/models/tests/test_toy_models.py +0 -40
  107. struphy-2.3.3/src/struphy/models/tests/util.py +0 -144
  108. struphy-2.3.3/src/struphy/pic/base.py +0 -2088
  109. struphy-2.3.3/src/struphy/pic/sorting_kernels.py +0 -85
  110. struphy-2.3.3/src/struphy/pic/tests/test_sorting.py +0 -80
  111. struphy-2.3.3/src/struphy/pic/utilities.py +0 -62
  112. struphy-2.3.3/src/struphy/psydac-0.1.13-py3-none-any.whl +0 -0
  113. struphy-2.3.3/src/struphy.egg-info/requires.txt +0 -34
  114. {struphy-2.3.3 → struphy-2.4.0}/README.md +0 -0
  115. {struphy-2.3.3 → struphy-2.4.0}/setup.cfg +0 -0
  116. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/__init__.py +0 -0
  117. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/__init__.py +0 -0
  118. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/bsplines.py +0 -0
  119. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  120. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  121. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  122. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  123. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  124. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/tests/__init__.py +0 -0
  125. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  126. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/__init__.py +0 -0
  127. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/params.py +0 -0
  128. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/profile.py +0 -0
  129. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/console/units.py +0 -0
  130. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/__init__.py +0 -0
  131. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/console_diagn.py +0 -0
  132. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/paraview/__init__.py +0 -0
  133. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
  134. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
  135. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/dispersion_relations/__init__.py +0 -0
  136. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/dispersion_relations/utilities.py +0 -0
  137. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/__init__.py +0 -0
  138. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  139. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/kernels_3d.py +0 -0
  140. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/kernels_projectors_global.py +0 -0
  141. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/MHD_eigenvalues_cylinder_1D.py +0 -0
  142. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/__init__.py +0 -0
  143. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/__init__.py +0 -0
  144. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/control_variate.py +0 -0
  145. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kernels_control_variate.py +0 -0
  146. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/__init__.py +0 -0
  147. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_kernels_control_variate.py +0 -0
  148. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_cv_kernel_2.py +0 -0
  149. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_kernels_control_variate.py +0 -0
  150. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_cvker.py +0 -0
  151. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_kernels_control_variate.py +0 -0
  152. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/emw_operators.py +0 -0
  153. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_1d.py +0 -0
  154. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_2d.py +0 -0
  155. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_3d.py +0 -0
  156. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_1d.py +0 -0
  157. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_2d.py +0 -0
  158. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_3d.py +0 -0
  159. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/mass_matrices_3d_pre.py +0 -0
  160. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/__init__.py +0 -0
  161. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_arrays.py +0 -0
  162. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bb_kernel.py +0 -0
  163. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bv_kernel.py +0 -0
  164. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_massless_linear_operators.py +0 -0
  165. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_vv_kernel.py +0 -0
  166. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/__init__.py +0 -0
  167. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/__init__.py +0 -0
  168. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local.py +0 -0
  169. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local_mhd.py +0 -0
  170. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/mhd_operators_3d_local.py +0 -0
  171. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/projectors_local.py +0 -0
  172. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/__init__.py +0 -0
  173. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_L2_projector_kernel.py +0 -0
  174. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_L2.py +0 -0
  175. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_local.py +0 -0
  176. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_local_projector_kernel.py +0 -0
  177. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mass_matrices_1d.py +0 -0
  178. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mass_matrices_2d.py +0 -0
  179. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mass_matrices_3d.py +0 -0
  180. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_main.py +0 -0
  181. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_pproc.py +0 -0
  182. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mhd_operators.py +0 -0
  183. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/mhd_operators_core.py +0 -0
  184. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/projectors_global.py +0 -0
  185. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/spline_space.py +0 -0
  186. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/eigenvalue_solvers/tests/__init__.py +0 -0
  187. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/examples/_draw_parallel.py +0 -0
  188. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/__init__.py +0 -0
  189. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  190. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/linear_operators.py +0 -0
  191. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/mass_kernels.py +0 -0
  192. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/__init__.py +0 -0
  193. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_basis_ops.py +0 -0
  194. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_derham.py +0 -0
  195. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_eval_field.py +0 -0
  196. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_field_init.py +0 -0
  197. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
  198. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  199. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_mass_matrices.py +0 -0
  200. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
  201. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
  202. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
  203. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/feec/utilities_kernels.py +0 -0
  204. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/__init__.py +0 -0
  205. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/braginskii_equil/__init__.py +0 -0
  206. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/braginskii_equil/equils.py +0 -0
  207. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
  208. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
  209. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  210. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
  211. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
  212. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E1D6_M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  213. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E1D6_M6N6/parameter.ini +0 -0
  214. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E4D6_M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  215. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E4D6_M6N6/parameter.ini +0 -0
  216. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/oldBC_E40D5M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  217. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/oldBC_E40D5M6N6/parameter.ini +0 -0
  218. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
  219. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
  220. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/projected_equils.py +0 -0
  221. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
  222. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/tests/__init__.py +0 -0
  223. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
  224. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
  225. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
  226. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/__init__.py +0 -0
  227. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/evaluation_kernels.py +0 -0
  228. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/map_coef/__init__.py +0 -0
  229. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/tests/__init__.py +0 -0
  230. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/tests/test_domain.py +0 -0
  231. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/transform_kernels.py +0 -0
  232. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/utilities.py +0 -0
  233. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/geometry/utilities_kernels.py +0 -0
  234. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/__init__.py +0 -0
  235. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/eigenfunctions.py +0 -0
  236. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/tests/__init__.py +0 -0
  237. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/tests/test_init_perturbations.py +0 -0
  238. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/initial/utilities.py +0 -0
  239. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/__init__.py +0 -0
  240. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/batch_cobra.sh +0 -0
  241. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_016.sh +0 -0
  242. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_032.sh +0 -0
  243. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_064.sh +0 -0
  244. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_128.sh +0 -0
  245. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_256.sh +0 -0
  246. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/batch/p_512.sh +0 -0
  247. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/__init__.py +0 -0
  248. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_TAE_tokamak.yml +0 -0
  249. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovcc.yml +0 -0
  250. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovpc.yml +0 -0
  251. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_linearextendedmhd.yml +0 -0
  252. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_landau.yml +0 -0
  253. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_streaming_weibel.yml +0 -0
  254. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_weibel.yml +0 -0
  255. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_02.yml +0 -0
  256. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_03.yml +0 -0
  257. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_04a.yml +0 -0
  258. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_04b.yml +0 -0
  259. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_04c.yml +0 -0
  260. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05a.yml +0 -0
  261. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05b.yml +0 -0
  262. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05c.yml +0 -0
  263. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05d.yml +0 -0
  264. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05e.yml +0 -0
  265. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_05f.yml +0 -0
  266. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_12a.yml +0 -0
  267. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/inp/tutorials/params_12b.yml +0 -0
  268. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/out/__init__.py +0 -0
  269. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/io/output_handling.py +0 -0
  270. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/__init__.py +0 -0
  271. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/base.py +0 -0
  272. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/tests/__init__.py +0 -0
  273. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/tests/test_base.py +0 -0
  274. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -0
  275. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/__init__.py +0 -0
  276. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  277. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  278. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  279. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  280. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/tests/__init__.py +0 -0
  281. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/tests/test_stencil_dot_kernels.py +0 -0
  282. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/linear_algebra/tests/test_stencil_transpose_kernels.py +0 -0
  283. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/__init__.py +0 -0
  284. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/tests/__init__.py +0 -0
  285. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/models/tests/test_xxpproc.py +0 -0
  286. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/__init__.py +0 -0
  287. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/__init__.py +0 -0
  288. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
  289. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
  290. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  291. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
  292. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  293. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/__init__.py +0 -0
  294. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/eval_kernels_gc.py +0 -0
  295. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/pusher.py +0 -0
  296. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/pusher_args_kernels.py +0 -0
  297. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
  298. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  299. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/sampling_kernels.py +0 -0
  300. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/sobol_seq.py +0 -0
  301. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/__init__.py +0 -0
  302. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
  303. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/__init__.py +0 -0
  304. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/accumulation.py +0 -0
  305. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/accumulation_kernels_3d.py +0 -0
  306. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d.py +0 -0
  307. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d_fast.py +0 -0
  308. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher.py +0 -0
  309. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_pos.py +0 -0
  310. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_2d.py +0 -0
  311. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_3d.py +0 -0
  312. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_2d.py +0 -0
  313. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_3d.py +0 -0
  314. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/__init__.py +0 -0
  315. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/extraction_operators.py +0 -0
  316. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/linear_operators.py +0 -0
  317. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/tests/__init__.py +0 -0
  318. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/tests/test_legacy_polar_splines.py +0 -0
  319. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/polar/tests/test_polar.py +0 -0
  320. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/__init__.py +0 -0
  321. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/cprofile_analyser.py +0 -0
  322. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/orbits/__init__.py +0 -0
  323. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
  324. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
  325. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/post_processing_tools.py +0 -0
  326. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/pproc_struphy.py +0 -0
  327. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/profile_struphy.py +0 -0
  328. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/post_processing/tests/__init__.py +0 -0
  329. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/profiling/__init__.py +0 -0
  330. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/profiling/profiling.py +0 -0
  331. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/__init__.py +0 -0
  332. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/tests/__init__.py +0 -0
  333. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
  334. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/propagators/tests/test_poisson.py +0 -0
  335. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/tutorials/tests/test_tutorials.py +0 -0
  336. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/utils/__init__.py +0 -0
  337. {struphy-2.3.3 → struphy-2.4.0}/src/struphy/utils/utils.py +0 -0
  338. {struphy-2.3.3 → struphy-2.4.0}/src/struphy.egg-info/dependency_links.txt +0 -0
  339. {struphy-2.3.3 → struphy-2.4.0}/src/struphy.egg-info/entry_points.txt +0 -0
  340. {struphy-2.3.3 → struphy-2.4.0}/src/struphy.egg-info/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2024, Struphy developers, Max Planck Institute for Plasma Physics
1
+ Copyright (c) 2019-2025, 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
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: struphy
3
- Version: 2.3.3
3
+ Version: 2.4.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, eric.sonnendruecker@ipp.mpg.de
7
- License: Copyright (c) 2019-2024, Struphy developers, Max Planck Institute for Plasma Physics
7
+ License: Copyright (c) 2019-2025, 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,
@@ -27,43 +27,47 @@ Project-URL: changelog, https://gitlab.mpcdf.mpg.de/struphy/struphy/-/blob/devel
27
27
  Project-URL: Bug Tracker, https://gitlab.mpcdf.mpg.de/struphy/struphy/-/issues
28
28
  Keywords: plasma physics, fusion, numerical modeling, partial differential equations, energetic particles
29
29
  Classifier: Programming Language :: Python :: 3
30
- Requires-Python: <3.12,>=3.10
30
+ Requires-Python: >=3.10
31
31
  Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
- Requires-Dist: PyYAML==6.0.1
34
- Requires-Dist: add-trailing-comma==3.1.0
35
- Requires-Dist: argcomplete==3.4.0
36
- Requires-Dist: autopep8==2.3.1
37
- Requires-Dist: desc-opt==0.12.0
38
- Requires-Dist: docutils==0.21.2
39
- Requires-Dist: flake8==7.1.1
40
- Requires-Dist: gvec-to-python==1.2.2
41
- Requires-Dist: h5py==3.11.0
42
- Requires-Dist: ipyparallel==8.8.0
43
- Requires-Dist: isort==5.13.2
44
- Requires-Dist: lxml_html_clean==0.1.1
45
- Requires-Dist: m2r2==0.3.3.post2
46
- Requires-Dist: matplotlib==3.9.0
47
- Requires-Dist: mistune==0.8.4
48
- Requires-Dist: mpi4py==3.1.6
49
- Requires-Dist: myst-parser==3.0.1
50
- Requires-Dist: nbsphinx==0.9.4
51
- Requires-Dist: netCDF4==1.6.5
52
- Requires-Dist: notebook==7.2.1
53
- Requires-Dist: numpy==1.24.4
54
- Requires-Dist: pre_commit==4.0.1
55
- Requires-Dist: pyccel==1.12.1
56
- Requires-Dist: pydata-sphinx-theme==0.15.3
57
- Requires-Dist: pylint==3.3.1
58
- Requires-Dist: pytest==8.2.2
59
- Requires-Dist: pytest-monitor==1.6.6
60
- Requires-Dist: pytest-mpi==0.6
61
- Requires-Dist: scipy==1.13.1
62
- Requires-Dist: Sphinx==7.3.7
63
- Requires-Dist: sphinxcontrib-napoleon==0.7
64
- Requires-Dist: tqdm==4.66.4
65
- Requires-Dist: vtk==9.3.0
66
- Requires-Dist: wheel==0.43.0
33
+ Requires-Dist: numpy
34
+ Requires-Dist: pyccel>=1.11.1
35
+ Requires-Dist: mpi4py<4
36
+ Requires-Dist: scipy
37
+ Requires-Dist: h5py
38
+ Requires-Dist: matplotlib
39
+ Requires-Dist: pyyaml
40
+ Requires-Dist: vtk
41
+ Requires-Dist: tqdm
42
+ Requires-Dist: argcomplete
43
+ Requires-Dist: gvec-to-python
44
+ Requires-Dist: desc-opt
45
+ Requires-Dist: netcdf4<1.7
46
+ Provides-Extra: test
47
+ Requires-Dist: pytest; extra == "test"
48
+ Requires-Dist: pytest-mpi; extra == "test"
49
+ Provides-Extra: dev
50
+ Requires-Dist: struphy[test]; extra == "dev"
51
+ Requires-Dist: notebook; extra == "dev"
52
+ Requires-Dist: autopep8; extra == "dev"
53
+ Requires-Dist: isort; extra == "dev"
54
+ Requires-Dist: flake8; extra == "dev"
55
+ Requires-Dist: pylint; extra == "dev"
56
+ Requires-Dist: add-trailing-comma; extra == "dev"
57
+ Requires-Dist: ruff>=0.9.1; extra == "dev"
58
+ Requires-Dist: pre-commit; extra == "dev"
59
+ Provides-Extra: doc
60
+ Requires-Dist: sphinx; extra == "doc"
61
+ Requires-Dist: sphinx-design; extra == "doc"
62
+ Requires-Dist: lxml_html_clean; extra == "doc"
63
+ Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
64
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
65
+ Requires-Dist: nbsphinx; extra == "doc"
66
+ Requires-Dist: m2r2; extra == "doc"
67
+ Requires-Dist: myst-parser; extra == "doc"
68
+ Requires-Dist: mistune; extra == "doc"
69
+ Requires-Dist: docutils; extra == "doc"
70
+ Requires-Dist: ipyparallel; extra == "doc"
67
71
 
68
72
  # Struphy - Structure-preserving hybrid codes
69
73
 
@@ -4,9 +4,9 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "struphy"
7
- version = "2.3.3"
7
+ version = "2.4.0"
8
8
  readme = "README.md"
9
- requires-python = ">=3.10, <3.12"
9
+ requires-python = ">=3.10"
10
10
  license = {file = "LICENSE"}
11
11
  authors = [
12
12
  { name = "Max Planck Institute for Plasma Physics"},
@@ -19,42 +19,52 @@ classifiers = [
19
19
  "Programming Language :: Python :: 3",
20
20
  ]
21
21
  dependencies = [
22
- 'PyYAML==6.0.1',
23
- 'add-trailing-comma==3.1.0',
24
- 'argcomplete==3.4.0',
25
- 'autopep8==2.3.1',
26
- 'desc-opt==0.12.0',
27
- 'docutils==0.21.2',
28
- 'flake8==7.1.1',
29
- 'gvec-to-python==1.2.2',
30
- 'h5py==3.11.0',
31
- 'ipyparallel==8.8.0',
32
- 'isort==5.13.2',
33
- 'lxml_html_clean==0.1.1',
34
- 'm2r2==0.3.3.post2',
35
- 'matplotlib==3.9.0',
36
- 'mistune==0.8.4',
37
- 'mpi4py==3.1.6',
38
- 'myst-parser==3.0.1',
39
- 'nbsphinx==0.9.4',
40
- 'netCDF4==1.6.5',
41
- 'notebook==7.2.1',
42
- 'numpy==1.24.4',
43
- 'pre_commit==4.0.1',
44
- 'pyccel==1.12.1',
45
- 'pydata-sphinx-theme==0.15.3',
46
- 'pylint==3.3.1',
47
- 'pytest==8.2.2',
48
- 'pytest-monitor==1.6.6',
49
- 'pytest-mpi==0.6',
50
- 'scipy==1.13.1',
51
- 'Sphinx==7.3.7',
52
- 'sphinxcontrib-napoleon==0.7',
53
- 'tqdm==4.66.4',
54
- 'vtk==9.3.0',
55
- 'wheel==0.43.0',
22
+ 'numpy',
23
+ 'pyccel>=1.11.1',
24
+ 'mpi4py<4',
25
+ 'scipy',
26
+ 'h5py',
27
+ 'matplotlib',
28
+ 'pyyaml',
29
+ 'vtk',
30
+ 'tqdm',
31
+ 'argcomplete',
32
+ 'gvec-to-python',
33
+ 'desc-opt',
34
+ 'netcdf4<1.7',
56
35
  ]
57
36
 
37
+ [project.optional-dependencies]
38
+ test = [
39
+ 'pytest',
40
+ 'pytest-mpi',
41
+ ]
42
+ dev = [
43
+ 'struphy[test]',
44
+ 'notebook',
45
+ 'autopep8',
46
+ 'isort',
47
+ 'flake8',
48
+ 'pylint',
49
+ 'add-trailing-comma',
50
+ 'ruff>=0.9.1',
51
+ 'pre-commit',
52
+ ]
53
+ doc = [
54
+ 'sphinx',
55
+ 'sphinx-design',
56
+ 'lxml_html_clean',
57
+ 'sphinxcontrib-napoleon',
58
+ 'pydata-sphinx-theme',
59
+ 'nbsphinx',
60
+ 'm2r2',
61
+ 'myst-parser',
62
+ 'mistune',
63
+ 'docutils',
64
+ 'ipyparallel',
65
+ ]
66
+
67
+
58
68
  [project.urls]
59
69
  homepage = "https://struphy.pages.mpcdf.de/struphy/"
60
70
  documentation = "https://struphy.pages.mpcdf.de/struphy/"
@@ -88,8 +98,7 @@ struphy = "struphy.console.main:struphy"
88
98
  ]
89
99
 
90
100
  struphy = ['compile_struphy.mk',
91
- 'psydac-0.1.13-py3-none-any.whl',
92
- ]
101
+ 'psydac-2.4.0-py3-none-any.whl',]
93
102
 
94
103
  [tool.autopep8]
95
104
  # Add specific settings for autopep8
@@ -116,4 +125,34 @@ force_grid_wrap = 0
116
125
  combine_as_imports = true
117
126
 
118
127
  [tool.pylint]
119
- max-line-length=120
128
+ max-line-length=120
129
+ quote-style = "single"
130
+
131
+ [tool.ruff]
132
+ line-length=120
133
+ lint.ignore = [
134
+ "E265", # Checks for block comments that lack a single space after the leading # character.
135
+ "E402", # Module-level imports should be placed at the top of the file (before any other code)
136
+ "E701", # Multiple statements on one line (colon)
137
+ # "E711", # Comparison to `None` should be `cond is None`
138
+ # "E712", # Comparison to True, False, or None should be avoided (e.g., use `if variable:` instead of `if variable == True:`)
139
+ # "E713", # Convert to `not in`
140
+ # "E721", # Avoid comparing types directly with `type()` (e.g., use `isinstance()` instead of `type(variable) == list`)
141
+ "E722", # Do not use bare 'except'
142
+ "E731", # Do not assign a lambda expression, use a def
143
+ "E741", # Do not use variables named 'l', 'O', or 'I'
144
+ "E742", # Do not define classes named 'l', 'O', or 'I'
145
+ "E743", # Do not define functions named 'l', 'O', or 'I'
146
+ "E902", # IOError
147
+ # "E999", # SyntaxError
148
+ "F401", # Module imported but unused
149
+ "F403", # 'from module import *' used; unable to detect undefined names
150
+ "F405", # Name may be undefined, or defined from star imports: module
151
+ # "F811", # Redefinition of a variable that might cause ambiguity (e.g., reusing a variable name in a conflicting scope)
152
+ # "F821", # Undefined name
153
+ # "F822", # Undefined name in __all__
154
+ # "F823", # Local variable name referenced before assignment
155
+ # "F841", # Local variable name assigned to but never used
156
+ "D211", # Checks for docstrings on class definitions that are preceded by a blank line
157
+ "D213", # Checks for docstring summary lines that are not positioned on the second physical line of the docstring
158
+ ]
@@ -1,7 +1,8 @@
1
- import pytest
1
+ import time
2
+
2
3
  import numpy as np
4
+ import pytest
3
5
  from mpi4py import MPI
4
- import time
5
6
 
6
7
 
7
8
  @pytest.mark.mpi(min_size=2)
@@ -14,11 +15,11 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
14
15
  Print timings.
15
16
  '''
16
17
 
17
- from struphy.feec.psydac_derham import Derham
18
+ import psydac.core.bsplines_kernels as bsp_psy
18
19
 
19
- from struphy.feec.utilities import create_equal_random_arrays as cera
20
20
  import struphy.bsplines.bsplines_kernels as bsp
21
- import psydac.core.bsplines_pyccel as bsp_psy
21
+ from struphy.feec.psydac_derham import Derham
22
+ from struphy.feec.utilities import create_equal_random_arrays as cera
22
23
 
23
24
  comm = MPI.COMM_WORLD
24
25
  assert comm.size >= 2
@@ -48,7 +49,7 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
48
49
  t1 = time.time()
49
50
  if rank == 0:
50
51
  print(f'struphy find_span : {t1 - t0}')
51
-
52
+
52
53
  # psydac find_span_p
53
54
  t0 = time.time()
54
55
  span1s_psy, span2s_psy, span3s_psy = [], [], []
@@ -59,20 +60,20 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
59
60
  t1 = time.time()
60
61
  if rank == 0:
61
62
  print(f'psydac find_span_p : {t1 - t0}')
62
-
63
+
63
64
  assert np.allclose(span1s, span1s_psy)
64
65
  assert np.allclose(span2s, span2s_psy)
65
66
  assert np.allclose(span3s, span3s_psy)
66
-
67
+
67
68
  # allocate tmps
68
69
  bn1 = np.empty(derham.p[0] + 1, dtype=float)
69
70
  bn2 = np.empty(derham.p[1] + 1, dtype=float)
70
71
  bn3 = np.empty(derham.p[2] + 1, dtype=float)
71
-
72
+
72
73
  bd1 = np.empty(derham.p[0], dtype=float)
73
74
  bd2 = np.empty(derham.p[1], dtype=float)
74
75
  bd3 = np.empty(derham.p[2], dtype=float)
75
-
76
+
76
77
  # struphy b_splines_slim
77
78
  val1s, val2s, val3s = [], [], []
78
79
  t0 = time.time()
@@ -86,7 +87,7 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
86
87
  t1 = time.time()
87
88
  if rank == 0:
88
89
  print(f'bsp.b_splines_slim : {t1 - t0}')
89
-
90
+
90
91
  # psydac basis_funs_p
91
92
  val1s_psy, val2s_psy, val3s_psy = [], [], []
92
93
  t0 = time.time()
@@ -100,17 +101,17 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
100
101
  t1 = time.time()
101
102
  if rank == 0:
102
103
  print(f'bsp_psy.basis_funs_p for N: {t1 - t0}')
103
-
104
+
104
105
  # compare
105
106
  for val1, val1_psy in zip(val1s, val1s_psy):
106
107
  assert np.allclose(val1, val1_psy)
107
-
108
+
108
109
  for val2, val2_psy in zip(val2s, val2s_psy):
109
110
  assert np.allclose(val2, val2_psy)
110
-
111
+
111
112
  for val3, val3_psy in zip(val3s, val3s_psy):
112
113
  assert np.allclose(val3, val3_psy)
113
-
114
+
114
115
  # struphy b_d_splines_slim
115
116
  val1s_n, val2s_n, val3s_n = [], [], []
116
117
  val1s_d, val2s_d, val3s_d = [], [], []
@@ -128,24 +129,24 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
128
129
  t1 = time.time()
129
130
  if rank == 0:
130
131
  print(f'bsp.b_d_splines_slim : {t1 - t0}')
131
-
132
+
132
133
  # compare
133
134
  for val1, val1_psy in zip(val1s_n, val1s_psy):
134
135
  assert np.allclose(val1, val1_psy)
135
-
136
+
136
137
  for val2, val2_psy in zip(val2s_n, val2s_psy):
137
138
  assert np.allclose(val2, val2_psy)
138
-
139
+
139
140
  for val3, val3_psy in zip(val3s_n, val3s_psy):
140
141
  assert np.allclose(val3, val3_psy)
141
-
142
+
142
143
  # struphy d_splines_slim
143
144
  span1s, span2s, span3s = [], [], []
144
145
  for eta1, eta2, eta3 in zip(eta1s, eta2s, eta3s):
145
146
  span1s += [bsp.find_span(td1, derham.p[0] - 1, eta1)]
146
147
  span2s += [bsp.find_span(td2, derham.p[1] - 1, eta2)]
147
148
  span3s += [bsp.find_span(td3, derham.p[2] - 1, eta3)]
148
-
149
+
149
150
  val1s, val2s, val3s = [], [], []
150
151
  t0 = time.time()
151
152
  for eta1, eta2, eta3, span1, span2, span3 in zip(eta1s, eta2s, eta3s, span1s, span2s, span3s):
@@ -158,7 +159,7 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
158
159
  t1 = time.time()
159
160
  if rank == 0:
160
161
  print(f'bsp.d_splines_slim : {t1 - t0}')
161
-
162
+
162
163
  # psydac basis_funs_p for D-splines
163
164
  val1s_psy, val2s_psy, val3s_psy = [], [], []
164
165
  t0 = time.time()
@@ -172,26 +173,26 @@ def test_bsplines_span_and_basis(Nel, p, spl_kind):
172
173
  t1 = time.time()
173
174
  if rank == 0:
174
175
  print(f'bsp_psy.basis_funs_p for D: {t1 - t0}')
175
-
176
+
176
177
  # compare
177
178
  for val1, val1_psy in zip(val1s, val1s_psy):
178
179
  assert np.allclose(val1, val1_psy)
179
-
180
+
180
181
  for val2, val2_psy in zip(val2s, val2s_psy):
181
182
  assert np.allclose(val2, val2_psy)
182
-
183
+
183
184
  for val3, val3_psy in zip(val3s, val3s_psy):
184
185
  assert np.allclose(val3, val3_psy)
185
-
186
+
186
187
  for val1, val1_psy in zip(val1s_d, val1s_psy):
187
188
  assert np.allclose(val1, val1_psy)
188
-
189
+
189
190
  for val2, val2_psy in zip(val2s_d, val2s_psy):
190
191
  assert np.allclose(val2, val2_psy)
191
-
192
+
192
193
  for val3, val3_psy in zip(val3s_d, val3s_psy):
193
194
  assert np.allclose(val3, val3_psy)
194
-
195
-
195
+
196
+
196
197
  if __name__ == '__main__':
197
198
  test_bsplines_span_and_basis([8, 9, 10], [3, 4, 3], [False, False, True])
@@ -5,7 +5,6 @@
5
5
  PYTHON := python3
6
6
  SO_EXT := $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")
7
7
  LIBDIR := $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
8
- psydac_path := $(shell $(PYTHON) -c "import psydac as _; print(_.__path__[0])")
9
8
  struphy_path := $(shell $(PYTHON) -c "import struphy as _; print(_.__path__[0])")
10
9
 
11
10
  # Arguments to this script are:
@@ -18,13 +17,7 @@ FLAGS_openmp_mhd := $(flags_openmp_mhd)
18
17
  # SOURCE FILES
19
18
  #--------------------------------------
20
19
 
21
- PSY0 := $(psydac_path)/core/arrays
22
- PSY1 := $(psydac_path)/core/kernels
23
- PSY2 := $(psydac_path)/core/bsplines_pyccel
24
- PSY3 := $(psydac_path)/linalg/kernels
25
- PSY4 := $(psydac_path)/feec/dof_kernels
26
-
27
- SOURCES := $(PSY0).py $(PSY1).py $(PSY2).py $(PSY3).py $(PSY4).py $(STRUPHY_SOURCES)
20
+ SOURCES := $(STRUPHY_SOURCES)
28
21
 
29
22
  OUTPUTS := $(SOURCES:.py=$(SO_EXT))
30
23
 
@@ -52,11 +45,6 @@ all: $(OUTPUTS)
52
45
  .PHONY: clean
53
46
  clean:
54
47
  rm -rf $(OUTPUTS)
55
-
56
- rm -rf $(psydac_path)/__pyccel__ $(psydac_path)/__pycache__
57
- rm -rf $(psydac_path)/core/__pyccel__ $(psydac_path)/core/__pycache__ $(psydac_path)/core/.lock_acquisition.lock
58
- rm -rf $(psydac_path)/linalg/__pyccel__ $(psydac_path)/linalg/__pycache__ $(psydac_path)/linalg/.lock_acquisition.lock
59
- rm -rf $(psydac_path)/feec/__pyccel__ $(psydac_path)/feec/__pycache__ $(psydac_path)/feec/.lock_acquisition.lock
60
48
 
61
49
  find $(struphy_path)/ -type d -name '__pyccel__' -prune -exec rm -rf {} \;
62
50
  find $(struphy_path)/ -type d -name '__pycache__' -prune -exec rm -rf {} \;
@@ -1,15 +1,20 @@
1
1
  def pytest_addoption(parser):
2
2
  parser.addoption("--fast", action="store_true")
3
3
  parser.addoption("--with-desc", action="store_true")
4
+ parser.addoption("--vrbose", action="store_true")
4
5
 
5
6
 
6
7
  def pytest_generate_tests(metafunc):
7
8
  # This is called for every test. Only get/set command line arguments
8
9
  # if the argument is specified in the list of test "fixturenames".
9
10
  option_value = metafunc.config.option.fast
10
- if 'fast' in metafunc.fixturenames and option_value is not None:
11
+ if "fast" in metafunc.fixturenames and option_value is not None:
11
12
  metafunc.parametrize("fast", [option_value])
12
-
13
+
13
14
  option_value = metafunc.config.option.with_desc
14
- if 'with_desc' in metafunc.fixturenames and option_value is not None:
15
+ if "with_desc" in metafunc.fixturenames and option_value is not None:
15
16
  metafunc.parametrize("with_desc", [option_value])
17
+
18
+ option_value = metafunc.config.option.vrbose
19
+ if "vrbose" in metafunc.fixturenames and option_value is not None:
20
+ metafunc.parametrize("vrbose", [option_value])