struphy 3.0.2__tar.gz → 3.0.4__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 (304) hide show
  1. {struphy-3.0.2/src/struphy.egg-info → struphy-3.0.4}/PKG-INFO +74 -51
  2. {struphy-3.0.2 → struphy-3.0.4}/README.md +24 -1
  3. {struphy-3.0.2 → struphy-3.0.4}/pyproject.toml +52 -57
  4. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/__init__.py +5 -0
  5. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/models/__init__.py +0 -2
  6. struphy-3.0.4/src/struphy/api/post_processing/__init__.py +3 -0
  7. struphy-3.0.4/src/struphy/api/simulation/__init__.py +3 -0
  8. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/psydac_derham.py +7 -6
  9. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/base.py +110 -32
  10. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/equils.py +87 -14
  11. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/projected_equils.py +13 -5
  12. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/base.py +86 -4
  13. struphy-3.0.4/src/struphy/initial/base.py +105 -0
  14. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/perturbations.py +23 -25
  15. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/tests/test_init_perturbations.py +12 -12
  16. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/options.py +22 -0
  17. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/setup.py +0 -60
  18. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/base.py +7 -0
  19. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/__init__.py +0 -2
  20. struphy-3.0.4/src/struphy/models/base.py +804 -0
  21. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/cold_plasma.py +5 -6
  22. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/cold_plasma_vlasov.py +33 -38
  23. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/deterministic_particle_diffusion.py +1 -3
  24. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +12 -18
  25. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/guiding_center.py +6 -4
  26. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/hasegawa_wakatani.py +5 -10
  27. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_extended_mh_duniform.py +12 -13
  28. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd.py +12 -13
  29. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_driftkinetic_cc.py +8 -9
  30. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_vlasov_cc.py +6 -7
  31. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_vlasov_pc.py +7 -8
  32. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_vlasov_ampere_one_species.py +47 -53
  33. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_vlasov_maxwell_one_species.py +2 -3
  34. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/maxwell.py +4 -5
  35. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/poisson.py +7 -15
  36. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/pressure_less_sph.py +1 -3
  37. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/random_particle_diffusion.py +1 -3
  38. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/shear_alfven.py +9 -16
  39. struphy-3.0.4/src/struphy/models/species.py +424 -0
  40. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/utils_testing.py +13 -32
  41. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_LinearMHD.py +31 -27
  42. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_Maxwell.py +43 -48
  43. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_Poisson.py +29 -33
  44. struphy-3.0.2/src/struphy/models/tests/verification/test_verif_EulerSPH.py → struphy-3.0.4/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +15 -18
  45. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +12 -20
  46. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/two_fluid_quasi_neutral_toy.py +1 -3
  47. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variables.py +273 -42
  48. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_barotropic_fluid.py +4 -5
  49. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_compressible_fluid.py +5 -6
  50. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_pressureless_fluid.py +3 -4
  51. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_deltaf_mhd.py +13 -14
  52. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +10 -11
  53. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_linear_mhd.py +13 -14
  54. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_linear_mhd_with_q.py +10 -11
  55. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd.py +10 -11
  56. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd_with_p.py +10 -11
  57. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd_with_q.py +10 -11
  58. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/viscous_euler_sph.py +29 -21
  59. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/viscous_fluid.py +6 -7
  60. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov.py +1 -3
  61. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov_ampere_one_species.py +32 -38
  62. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov_maxwell_one_species.py +37 -43
  63. struphy-3.0.4/src/struphy/particles/parameters.py +285 -0
  64. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/base.py +172 -31
  65. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/particles.py +27 -71
  66. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/eval_kernels_gc.py +27 -23
  67. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_kernels.py +1 -1
  68. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sph_smoothing_kernels.py +18 -0
  69. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_binning.py +35 -35
  70. struphy-3.0.4/src/struphy/pic/tests/test_set_zero_velocity.py +264 -0
  71. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_sph.py +381 -2
  72. struphy-3.0.4/src/struphy/post_processing/post_processing_tools.py +1345 -0
  73. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/base.py +16 -9
  74. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_coupling.py +6 -30
  75. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_fields.py +23 -120
  76. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_markers.py +39 -79
  77. struphy-3.0.4/src/struphy/simulation/base.py +40 -0
  78. struphy-3.0.4/src/struphy/simulation/sim.py +1377 -0
  79. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/topology/grids.py +5 -0
  80. struphy-3.0.4/src/struphy/utils/__init__.py +0 -0
  81. {struphy-3.0.2 → struphy-3.0.4/src/struphy.egg-info}/PKG-INFO +74 -51
  82. {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/SOURCES.txt +7 -3
  83. struphy-3.0.4/src/struphy.egg-info/requires.txt +70 -0
  84. struphy-3.0.2/src/struphy/initial/base.py +0 -48
  85. struphy-3.0.2/src/struphy/main.py +0 -847
  86. struphy-3.0.2/src/struphy/models/base.py +0 -1809
  87. struphy-3.0.2/src/struphy/models/euler_sph.py +0 -140
  88. struphy-3.0.2/src/struphy/models/species.py +0 -250
  89. struphy-3.0.2/src/struphy/particles/parameters.py +0 -238
  90. struphy-3.0.2/src/struphy/post_processing/post_processing_tools.py +0 -835
  91. struphy-3.0.2/src/struphy.egg-info/requires.txt +0 -70
  92. {struphy-3.0.2 → struphy-3.0.4}/LICENSE +0 -0
  93. {struphy-3.0.2 → struphy-3.0.4}/setup.cfg +0 -0
  94. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/__init__.py +0 -0
  95. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/domains/__init__.py +0 -0
  96. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/equils/__init__.py +0 -0
  97. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/grids/__init__.py +0 -0
  98. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/maxwellians/__init__.py +0 -0
  99. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/ode/__init__.py +0 -0
  100. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/options/__init__.py +0 -0
  101. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/particles/__init__.py +0 -0
  102. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/perturbations/__init__.py +0 -0
  103. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/__init__.py +0 -0
  104. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/bsplines.py +0 -0
  105. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  106. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  107. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  108. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  109. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  110. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/__init__.py +0 -0
  111. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
  112. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  113. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/compile_struphy.mk +0 -0
  114. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/conftest.py +0 -0
  115. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/__init__.py +0 -0
  116. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/compile.py +0 -0
  117. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/format.py +0 -0
  118. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/likwid.py +0 -0
  119. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/main.py +0 -0
  120. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/params.py +0 -0
  121. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/parsers.py +0 -0
  122. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/profile.py +0 -0
  123. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/test.py +0 -0
  124. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/tests/test_console.py +0 -0
  125. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dependencies.py +0 -0
  126. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/__init__.py +0 -0
  127. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/console_diagn.py +0 -0
  128. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/diagn_tools.py +0 -0
  129. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/__init__.py +0 -0
  130. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
  131. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
  132. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/__init__.py +0 -0
  133. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/analytic.py +0 -0
  134. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/base.py +0 -0
  135. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/utilities.py +0 -0
  136. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  137. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/_draw_parallel.py +0 -0
  138. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/restelli2018/__init__.py +0 -0
  139. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/restelli2018/callables.py +0 -0
  140. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/__init__.py +0 -0
  141. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  142. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/basis_projection_kernels.py +0 -0
  143. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/basis_projection_ops.py +0 -0
  144. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/linear_operators.py +0 -0
  145. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/local_projectors_kernels.py +0 -0
  146. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/mass.py +0 -0
  147. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/mass_kernels.py +0 -0
  148. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/preconditioner.py +0 -0
  149. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/projectors.py +0 -0
  150. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/__init__.py +0 -0
  151. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_basis_ops.py +0 -0
  152. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_derham.py +0 -0
  153. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_eval_field.py +0 -0
  154. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_field_init.py +0 -0
  155. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
  156. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_local_projectors.py +0 -0
  157. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  158. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_mass_matrices.py +0 -0
  159. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
  160. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
  161. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
  162. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities.py +0 -0
  163. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities_kernels.py +0 -0
  164. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities_local_projectors.py +0 -0
  165. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/variational_utilities.py +0 -0
  166. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/__init__.py +0 -0
  167. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
  168. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/base.py +0 -0
  169. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
  170. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
  171. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
  172. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  173. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
  174. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
  175. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
  176. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
  177. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
  178. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
  179. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
  180. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
  181. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
  182. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
  183. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
  184. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
  185. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
  186. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
  187. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
  188. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
  189. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/__init__.py +0 -0
  190. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
  191. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
  192. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
  193. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
  194. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/__init__.py +0 -0
  195. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/domains.py +0 -0
  196. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/evaluation_kernels.py +0 -0
  197. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/map_coef/__init__.py +0 -0
  198. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/mappings_kernels.py +0 -0
  199. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/tests/__init__.py +0 -0
  200. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/tests/test_domain.py +0 -0
  201. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/transform_kernels.py +0 -0
  202. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/utilities.py +0 -0
  203. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/utilities_kernels.py +0 -0
  204. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/__init__.py +0 -0
  205. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/eigenfunctions.py +0 -0
  206. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/tests/__init__.py +0 -0
  207. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/utilities.py +0 -0
  208. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/__init__.py +0 -0
  209. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/output_handling.py +0 -0
  210. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/__init__.py +0 -0
  211. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
  212. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
  213. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/__init__.py +0 -0
  214. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/maxwellians.py +0 -0
  215. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/moment_functions.py +0 -0
  216. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/__init__.py +0 -0
  217. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/test_base.py +0 -0
  218. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -0
  219. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/__init__.py +0 -0
  220. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  221. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  222. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/saddle_point.py +0 -0
  223. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/schur_solver.py +0 -0
  224. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/solver.py +0 -0
  225. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  226. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  227. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/__init__.py +0 -0
  228. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +0 -0
  229. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -0
  230. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
  231. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
  232. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/__init__.py +0 -0
  233. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/default_params/__init__.py +0 -0
  234. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/default_params/test_models.py +0 -0
  235. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/__init__.py +0 -0
  236. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/utils.py +0 -0
  237. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/__init__.py +0 -0
  238. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/solvers.py +0 -0
  239. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/tests/__init__.py +0 -0
  240. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/tests/test_ode_feec.py +0 -0
  241. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/utils.py +0 -0
  242. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/particles/__init__.py +0 -0
  243. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/physics/__init__.py +0 -0
  244. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/physics/physics.py +0 -0
  245. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/__init__.py +0 -0
  246. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/__init__.py +0 -0
  247. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
  248. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
  249. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  250. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filter.py +0 -0
  251. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
  252. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  253. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/particles_to_grid.py +0 -0
  254. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/__init__.py +0 -0
  255. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher.py +0 -0
  256. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
  257. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  258. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sampling_kernels.py +0 -0
  259. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sobol_seq.py +0 -0
  260. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sorting_kernels.py +0 -0
  261. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sph_eval_kernels.py +0 -0
  262. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/__init__.py +0 -0
  263. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
  264. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
  265. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
  266. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_pushers.py +0 -0
  267. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_sorting.py +0 -0
  268. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_tesselation.py +0 -0
  269. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/utilities.py +0 -0
  270. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/utilities_kernels.py +0 -0
  271. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/__init__.py +0 -0
  272. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/basic.py +0 -0
  273. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/extraction_operators.py +0 -0
  274. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/linear_operators.py +0 -0
  275. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/tests/__init__.py +0 -0
  276. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/tests/test_polar.py +0 -0
  277. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/__init__.py +0 -0
  278. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/cprofile_analyser.py +0 -0
  279. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/__init__.py +0 -0
  280. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
  281. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
  282. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
  283. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
  284. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/plot_time_traces.py +0 -0
  285. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
  286. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/__init__.py +0 -0
  287. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
  288. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
  289. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/profile_struphy.py +0 -0
  290. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/tests/__init__.py +0 -0
  291. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/__init__.py +0 -0
  292. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/__init__.py +0 -0
  293. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
  294. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/test_poisson.py +0 -0
  295. {struphy-3.0.2/src/struphy/topology → struphy-3.0.4/src/struphy/simulation}/__init__.py +0 -0
  296. {struphy-3.0.2/src/struphy/utils → struphy-3.0.4/src/struphy/topology}/__init__.py +0 -0
  297. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/clone_config.py +0 -0
  298. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/cupy_vs_numpy.py +0 -0
  299. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/pyccel.py +0 -0
  300. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/test_clone_config.py +0 -0
  301. {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/utils.py +0 -0
  302. {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/dependency_links.txt +0 -0
  303. {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/entry_points.txt +0 -0
  304. {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: struphy
3
- Version: 3.0.2
3
+ Version: 3.0.4
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
@@ -30,61 +30,61 @@ Classifier: Programming Language :: Python :: 3
30
30
  Requires-Python: >=3.10
31
31
  Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
- Requires-Dist: numpy
34
- Requires-Dist: cunumpy
35
- Requires-Dist: pyccel>=2.1
36
- Requires-Dist: feectools
37
- Requires-Dist: scipy
38
- Requires-Dist: h5py
39
- Requires-Dist: matplotlib
40
- Requires-Dist: pyyaml
41
- Requires-Dist: vtk
42
- Requires-Dist: tqdm
43
- Requires-Dist: argcomplete
44
- Requires-Dist: pytest
45
- Requires-Dist: pytest-mpi
46
- Requires-Dist: pytest-testmon
47
- Requires-Dist: line_profiler
48
- Requires-Dist: scope-profiler>=0.1.7
33
+ Requires-Dist: numpy<=2.2.6
34
+ Requires-Dist: cunumpy<=0.1
35
+ Requires-Dist: pyccel<=2.2.0,>=2.2.0
36
+ Requires-Dist: feectools<=0.1.3
37
+ Requires-Dist: scipy<=1.15.3
38
+ Requires-Dist: h5py<=3.15.1
39
+ Requires-Dist: matplotlib<=3.10.7
40
+ Requires-Dist: pyyaml<=6.0.3
41
+ Requires-Dist: vtk<=9.6.0
42
+ Requires-Dist: tqdm<=4.67.3
43
+ Requires-Dist: argcomplete<=3.6.3
44
+ Requires-Dist: plotly<=6.4.0
45
+ Requires-Dist: pytest<=9.0.2
46
+ Requires-Dist: pytest-mpi<=0.6
47
+ Requires-Dist: pytest-testmon<=2.2.0
48
+ Requires-Dist: line_profiler<=5.0.2
49
+ Requires-Dist: scope-profiler<=0.1.7,>=0.1.7
49
50
  Provides-Extra: phys
50
- Requires-Dist: gvec>=1.1.0; extra == "phys"
51
- Requires-Dist: desc-opt; extra == "phys"
51
+ Requires-Dist: gvec<=1.3.1,>=1.1.0; extra == "phys"
52
+ Requires-Dist: desc-opt<=0.16.0; extra == "phys"
52
53
  Provides-Extra: dev
53
54
  Requires-Dist: struphy[mpi]; extra == "dev"
54
- Requires-Dist: notebook; extra == "dev"
55
- Requires-Dist: autopep8; extra == "dev"
56
- Requires-Dist: isort; extra == "dev"
57
- Requires-Dist: flake8; extra == "dev"
58
- Requires-Dist: pylint; extra == "dev"
59
- Requires-Dist: ssort; extra == "dev"
60
- Requires-Dist: add-trailing-comma; extra == "dev"
61
- Requires-Dist: ruff>=0.15.0; extra == "dev"
62
- Requires-Dist: pre-commit; extra == "dev"
63
- Requires-Dist: nbstripout; extra == "dev"
64
- Requires-Dist: tabulate; extra == "dev"
65
- Requires-Dist: tomli-w; extra == "dev"
66
- Requires-Dist: kaleido; extra == "dev"
67
- Requires-Dist: pandas; extra == "dev"
68
- Requires-Dist: plotly; extra == "dev"
55
+ Requires-Dist: notebook<=7.5.4; extra == "dev"
56
+ Requires-Dist: autopep8<=2.3.2; extra == "dev"
57
+ Requires-Dist: isort<=8.0.0; extra == "dev"
58
+ Requires-Dist: flake8<=7.3.0; extra == "dev"
59
+ Requires-Dist: pylint<=4.0.5; extra == "dev"
60
+ Requires-Dist: ssort<=0.16.0; extra == "dev"
61
+ Requires-Dist: add-trailing-comma<=4.0.0; extra == "dev"
62
+ Requires-Dist: ruff<=0.15.4,>=0.15.0; extra == "dev"
63
+ Requires-Dist: pre-commit<=4.5.1; extra == "dev"
64
+ Requires-Dist: nbstripout<=0.9.1; extra == "dev"
65
+ Requires-Dist: tabulate<=0.9.0; extra == "dev"
66
+ Requires-Dist: tomli-w<=1.2.0; extra == "dev"
67
+ Requires-Dist: kaleido<=1.2.0; extra == "dev"
68
+ Requires-Dist: pandas<=3.0.1; extra == "dev"
69
69
  Provides-Extra: mpi
70
- Requires-Dist: mpi4py; extra == "mpi"
70
+ Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
71
71
  Provides-Extra: doc
72
72
  Requires-Dist: struphy[phys]; extra == "doc"
73
- Requires-Dist: jupyter; extra == "doc"
74
- Requires-Dist: nbconvert; extra == "doc"
75
- Requires-Dist: ipykernel; extra == "doc"
76
- Requires-Dist: sphinx; extra == "doc"
77
- Requires-Dist: sphinx-design; extra == "doc"
78
- Requires-Dist: lxml_html_clean; extra == "doc"
79
- Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
80
- Requires-Dist: sphinx-copybutton; extra == "doc"
81
- Requires-Dist: pydata-sphinx-theme; extra == "doc"
82
- Requires-Dist: nbsphinx; extra == "doc"
83
- Requires-Dist: m2r2; extra == "doc"
84
- Requires-Dist: myst-parser; extra == "doc"
85
- Requires-Dist: mistune; extra == "doc"
86
- Requires-Dist: docutils; extra == "doc"
87
- Requires-Dist: ipyparallel; extra == "doc"
73
+ Requires-Dist: jupyter<=1.1.1; extra == "doc"
74
+ Requires-Dist: nbconvert<=6.5.4; extra == "doc"
75
+ Requires-Dist: ipykernel<=7.2.0; extra == "doc"
76
+ Requires-Dist: sphinx<=9.1.0; extra == "doc"
77
+ Requires-Dist: sphinx-design<=0.7.0; extra == "doc"
78
+ Requires-Dist: lxml_html_clean<=0.4.4; extra == "doc"
79
+ Requires-Dist: sphinxcontrib-napoleon<=0.7; extra == "doc"
80
+ Requires-Dist: sphinx-copybutton<=0.5.2; extra == "doc"
81
+ Requires-Dist: pydata-sphinx-theme<=0.16.1; extra == "doc"
82
+ Requires-Dist: nbsphinx<=0.9.8; extra == "doc"
83
+ Requires-Dist: m2r2<=0.3.4; extra == "doc"
84
+ Requires-Dist: myst-parser<=5.0.0; extra == "doc"
85
+ Requires-Dist: mistune<=0.8.4; extra == "doc"
86
+ Requires-Dist: docutils<=0.22.4; extra == "doc"
87
+ Requires-Dist: ipyparallel<=9.0.2; extra == "doc"
88
88
  Provides-Extra: likwid
89
89
  Requires-Dist: struphy[dev]; extra == "likwid"
90
90
  Requires-Dist: pylikwid; extra == "likwid"
@@ -133,7 +133,7 @@ Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eig
133
133
  ![](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/gallery_step_1496.png) | ![](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/gallery_struphy_heat.png)
134
134
 
135
135
 
136
- The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics.
136
+ The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
137
137
 
138
138
  <h1 align="center">
139
139
  <img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
@@ -162,6 +162,29 @@ In case you face troubles with install/compile:
162
162
  2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
163
163
 
164
164
 
165
+ ## Docker
166
+
167
+ If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
168
+
169
+ ```
170
+ docker pull spossann/struphy:main
171
+ docker run -it --rm spossann/struphy:main
172
+ ls struphy_*
173
+ ```
174
+ This will show three available Struphy environments, which you can activate for example via
175
+
176
+ ```
177
+ source struphy_fortran_/env_fortran_/bin/activate
178
+ ```
179
+
180
+ There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
181
+
182
+ ```
183
+ docker pull spossann/ubuntu-for-struphy:main
184
+ docker run -it --rm spossann/ubuntu-for-struphy:main
185
+ ```
186
+
187
+
165
188
  ## Quick run
166
189
 
167
190
  As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
@@ -35,7 +35,7 @@ Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eig
35
35
  ![](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/gallery_step_1496.png) | ![](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/gallery_struphy_heat.png)
36
36
 
37
37
 
38
- The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics.
38
+ The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
39
39
 
40
40
  <h1 align="center">
41
41
  <img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
@@ -64,6 +64,29 @@ In case you face troubles with install/compile:
64
64
  2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
65
65
 
66
66
 
67
+ ## Docker
68
+
69
+ If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
70
+
71
+ ```
72
+ docker pull spossann/struphy:main
73
+ docker run -it --rm spossann/struphy:main
74
+ ls struphy_*
75
+ ```
76
+ This will show three available Struphy environments, which you can activate for example via
77
+
78
+ ```
79
+ source struphy_fortran_/env_fortran_/bin/activate
80
+ ```
81
+
82
+ There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
83
+
84
+ ```
85
+ docker pull spossann/ubuntu-for-struphy:main
86
+ docker run -it --rm spossann/ubuntu-for-struphy:main
87
+ ```
88
+
89
+
67
90
  ## Quick run
68
91
 
69
92
  As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "struphy"
9
- version = "3.0.2"
9
+ version = "3.0.4"
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.10"
12
12
  authors = [
@@ -21,24 +21,25 @@ keywords = [
21
21
  ]
22
22
  classifiers = [
23
23
  "Programming Language :: Python :: 3",
24
- ]
24
+ ]
25
25
  dependencies = [
26
- 'numpy',
27
- 'cunumpy',
28
- 'pyccel>=2.1',
29
- 'feectools',
30
- 'scipy',
31
- 'h5py',
32
- 'matplotlib',
33
- 'pyyaml',
34
- 'vtk',
35
- 'tqdm',
36
- 'argcomplete',
37
- 'pytest',
38
- 'pytest-mpi',
39
- 'pytest-testmon',
40
- 'line_profiler',
41
- 'scope-profiler>=0.1.7',
26
+ "numpy<=2.2.6",
27
+ "cunumpy<=0.1",
28
+ "pyccel<=2.2.0, >=2.2.0",
29
+ "feectools<=0.1.3",
30
+ "scipy<=1.15.3",
31
+ "h5py<=3.15.1",
32
+ "matplotlib<=3.10.7",
33
+ "pyyaml<=6.0.3",
34
+ "vtk<=9.6.0",
35
+ "tqdm<=4.67.3",
36
+ "argcomplete<=3.6.3",
37
+ "plotly<=6.4.0",
38
+ "pytest<=9.0.2",
39
+ "pytest-mpi<=0.6",
40
+ "pytest-testmon<=2.2.0",
41
+ "line_profiler<=5.0.2",
42
+ "scope-profiler<=0.1.7, >=0.1.7",
42
43
  ]
43
44
 
44
45
  [project.license]
@@ -46,47 +47,46 @@ file = "LICENSE"
46
47
 
47
48
  [project.optional-dependencies]
48
49
  phys = [
49
- 'gvec>=1.1.0',
50
- 'desc-opt',
50
+ "gvec<=1.3.1, >=1.1.0",
51
+ "desc-opt<=0.16.0",
51
52
  ]
52
53
  dev = [
53
54
  "struphy[mpi]",
54
- "notebook",
55
- "autopep8",
56
- "isort",
57
- "flake8",
58
- "pylint",
59
- "ssort",
60
- "add-trailing-comma",
61
- "ruff>=0.15.0",
62
- "pre-commit",
63
- "nbstripout",
64
- "tabulate",
65
- "tomli-w",
66
- "kaleido",
67
- "pandas",
68
- "plotly",
55
+ "notebook<=7.5.4",
56
+ "autopep8<=2.3.2",
57
+ "isort<=8.0.0",
58
+ "flake8<=7.3.0",
59
+ "pylint<=4.0.5",
60
+ "ssort<=0.16.0",
61
+ "add-trailing-comma<=4.0.0",
62
+ "ruff<=0.15.4, >=0.15.0",
63
+ "pre-commit<=4.5.1",
64
+ "nbstripout<=0.9.1",
65
+ "tabulate<=0.9.0",
66
+ "tomli-w<=1.2.0",
67
+ "kaleido<=1.2.0",
68
+ "pandas<=3.0.1",
69
69
  ]
70
70
  mpi = [
71
- 'mpi4py',
71
+ "mpi4py<=4.1.1",
72
72
  ]
73
73
  doc = [
74
74
  "struphy[phys]",
75
- "jupyter",
76
- "nbconvert",
77
- "ipykernel",
78
- "sphinx",
79
- "sphinx-design",
80
- "lxml_html_clean",
81
- "sphinxcontrib-napoleon",
82
- "sphinx-copybutton",
83
- "pydata-sphinx-theme",
84
- "nbsphinx",
85
- "m2r2",
86
- "myst-parser",
87
- "mistune",
88
- "docutils",
89
- "ipyparallel",
75
+ "jupyter<=1.1.1",
76
+ "nbconvert<=6.5.4",
77
+ "ipykernel<=7.2.0",
78
+ "sphinx<=9.1.0",
79
+ "sphinx-design<=0.7.0",
80
+ "lxml_html_clean<=0.4.4",
81
+ "sphinxcontrib-napoleon<=0.7",
82
+ "sphinx-copybutton<=0.5.2",
83
+ "pydata-sphinx-theme<=0.16.1",
84
+ "nbsphinx<=0.9.8",
85
+ "m2r2<=0.3.4",
86
+ "myst-parser<=5.0.0",
87
+ "mistune<=0.8.4",
88
+ "docutils<=0.22.4",
89
+ "ipyparallel<=9.0.2",
90
90
  ]
91
91
  likwid = [
92
92
  "struphy[dev]",
@@ -137,17 +137,12 @@ ignore = [
137
137
  [tool.isort]
138
138
  profile = "black"
139
139
  line_length = 120
140
- # multi_line_output = 3
141
- # include_trailing_comma = true
142
- # force_grid_wrap = 0
143
- # combine_as_imports = true
144
140
 
145
141
  [tool.pylint]
146
142
  max-line-length = 120
147
143
 
148
144
  [tool.ruff]
149
145
  line-length = 120
150
- # exclude = ["__pyccel__"]
151
146
 
152
147
  [tool.ruff.lint]
153
148
  ignore = [
@@ -165,7 +160,7 @@ ignore = [
165
160
  "F405",
166
161
  "D211",
167
162
  "D213",
168
- "F841", # Ignore unused variables
163
+ "F841",
169
164
  ]
170
165
 
171
166
  [tool.pytest.ini_options]
@@ -18,6 +18,8 @@ from struphy.api.particles import (
18
18
  WeightsParameters,
19
19
  )
20
20
  from struphy.api.perturbations import perturbations
21
+ from struphy.api.post_processing import PlottingData, PostProcessor
22
+ from struphy.api.simulation import Simulation
21
23
 
22
24
  __all__ = [
23
25
  "domains",
@@ -36,4 +38,7 @@ __all__ = [
36
38
  "DerhamOptions",
37
39
  "FieldsBackground",
38
40
  "ButcherTableau",
41
+ "PostProcessor",
42
+ "PlottingData",
43
+ "Simulation",
39
44
  ]
@@ -6,7 +6,6 @@ from struphy.models.deterministic_particle_diffusion import (
6
6
  from struphy.models.drift_kinetic_electrostatic_adiabatic import (
7
7
  DriftKineticElectrostaticAdiabatic,
8
8
  )
9
- from struphy.models.euler_sph import EulerSPH
10
9
  from struphy.models.guiding_center import GuidingCenter
11
10
  from struphy.models.hasegawa_wakatani import HasegawaWakatani
12
11
  from struphy.models.linear_extended_mh_duniform import LinearExtendedMHDuniform
@@ -49,7 +48,6 @@ __all__ = [
49
48
  "ColdPlasmaVlasov",
50
49
  "DeterministicParticleDiffusion",
51
50
  "DriftKineticElectrostaticAdiabatic",
52
- "EulerSPH",
53
51
  "GuidingCenter",
54
52
  "HasegawaWakatani",
55
53
  "LinearExtendedMHDuniform",
@@ -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",]
@@ -890,7 +890,7 @@ class Derham:
890
890
  perturbations: Perturbation | list = None,
891
891
  domain: Domain = None,
892
892
  equil: FluidEquilibrium = None,
893
- verbose: bool = True,
893
+ verbose: bool = False,
894
894
  ):
895
895
  """Creat a callable spline function.
896
896
 
@@ -1442,7 +1442,7 @@ class SplineFunction:
1442
1442
  perturbations: Perturbation | list = None,
1443
1443
  domain: Domain = None,
1444
1444
  equil: FluidEquilibrium = None,
1445
- verbose: bool = True,
1445
+ verbose: bool = False,
1446
1446
  ):
1447
1447
  self._name = name
1448
1448
  self._space_id = space_id
@@ -1494,7 +1494,7 @@ class SplineFunction:
1494
1494
  print(f"\nAllocated SplineFuntion '{self.name}' in space '{self.space_id}'.")
1495
1495
 
1496
1496
  if self.backgrounds is not None or self.perturbations is not None:
1497
- self.initialize_coeffs(domain=self.domain, equil=self.equil)
1497
+ self.initialize_coeffs(domain=self.domain, equil=self.equil, verbose=verbose)
1498
1498
 
1499
1499
  @property
1500
1500
  def name(self):
@@ -1675,6 +1675,7 @@ class SplineFunction:
1675
1675
  perturbations: Perturbation | list = None,
1676
1676
  domain: Domain = None,
1677
1677
  equil: FluidEquilibrium = None,
1678
+ verbose: bool = False,
1678
1679
  ):
1679
1680
  """
1680
1681
  Set the initial conditions for self.vector.
@@ -1707,14 +1708,14 @@ class SplineFunction:
1707
1708
  # start from zero coeffs
1708
1709
  self._vector *= 0.0
1709
1710
 
1710
- if MPI.COMM_WORLD.Get_rank() == 0:
1711
+ if verbose and MPI.COMM_WORLD.Get_rank() == 0:
1711
1712
  print(f"Initializing {self.name} ...")
1712
1713
 
1713
1714
  # add backgrounds to initial vector
1714
1715
  if self.backgrounds is not None:
1715
1716
  for fb in self.backgrounds:
1716
1717
  assert isinstance(fb, FieldsBackground)
1717
- if MPI.COMM_WORLD.Get_rank() == 0:
1718
+ if verbose and MPI.COMM_WORLD.Get_rank() == 0:
1718
1719
  print(f"Adding background {fb} ...")
1719
1720
 
1720
1721
  # special case of const
@@ -1769,7 +1770,7 @@ class SplineFunction:
1769
1770
  # add perturbations to coefficient vector
1770
1771
  if self.perturbations is not None:
1771
1772
  for ptb in self.perturbations:
1772
- if MPI.COMM_WORLD.Get_rank() == 0:
1773
+ if verbose and MPI.COMM_WORLD.Get_rank() == 0:
1773
1774
  print(f"Adding perturbation {ptb} ...")
1774
1775
 
1775
1776
  # special case of white noise in logical space for different components