struphy 2.3.0__tar.gz → 2.3.1__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 (306) hide show
  1. {struphy-2.3.0/src/struphy.egg-info → struphy-2.3.1}/PKG-INFO +21 -19
  2. {struphy-2.3.0 → struphy-2.3.1}/pyproject.toml +22 -20
  3. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/compile.py +1 -1
  4. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/test.py +0 -2
  5. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/console_diagn.py +93 -32
  6. struphy-2.3.1/src/struphy/diagnostics/diagn_tools.py +706 -0
  7. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/dispersion_relations/analytic.py +227 -163
  8. struphy-2.3.1/src/struphy/dispersion_relations/base.py +176 -0
  9. struphy-2.3.1/src/struphy/dispersion_relations/utilities.py +29 -0
  10. struphy-2.3.1/src/struphy/feec/basis_projection_kernels.py +1967 -0
  11. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/basis_projection_ops.py +101 -183
  12. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/mass.py +91 -57
  13. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/preconditioner.py +9 -2
  14. struphy-2.3.1/src/struphy/feec/projectors.py +1780 -0
  15. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/psydac_derham.py +536 -49
  16. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_field_init.py +71 -50
  17. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_l2_projectors.py +2 -2
  18. struphy-2.3.1/src/struphy/feec/tests/test_local_projectors.py +259 -0
  19. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/variational_utilities.py +63 -44
  20. struphy-2.3.1/src/struphy/fields_background/braginskii_equil/base.py +546 -0
  21. struphy-2.3.1/src/struphy/fields_background/braginskii_equil/equils.py +120 -0
  22. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/base.py +278 -125
  23. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/equils.py +856 -35
  24. struphy-2.3.1/src/struphy/fields_background/tests/test_desc_equil.py +219 -0
  25. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/tests/test_gvec_equil.py +23 -17
  26. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +4 -4
  27. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/base.py +35 -15
  28. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/domains.py +96 -17
  29. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/initial/perturbations.py +20 -12
  30. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovcc.yml +2 -2
  31. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovpc.yml +2 -2
  32. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_landau.yml +2 -2
  33. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_streaming_weibel.yml +2 -2
  34. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_weibel.yml +2 -2
  35. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/parameters.yml +9 -4
  36. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_02.yml +2 -2
  37. struphy-2.3.1/src/struphy/io/inp/tutorials/params_04c.yml +112 -0
  38. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_05a.yml +2 -2
  39. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_05b.yml +10 -8
  40. struphy-2.3.1/src/struphy/io/inp/tutorials/params_12a.yml +59 -0
  41. struphy-2.3.1/src/struphy/io/inp/tutorials/params_12b.yml +65 -0
  42. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/setup.py +74 -45
  43. struphy-2.3.1/src/struphy/kinetic_background/base.py +625 -0
  44. struphy-2.3.1/src/struphy/kinetic_background/maxwellians.py +1385 -0
  45. struphy-2.3.1/src/struphy/kinetic_background/tests/test_base.py +93 -0
  46. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/kinetic_background/tests/test_maxwellians.py +385 -118
  47. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/schur_solver.py +114 -4
  48. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/main.py +57 -7
  49. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/base.py +297 -112
  50. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/fluid.py +473 -7
  51. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/hybrid.py +17 -54
  52. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/kinetic.py +483 -71
  53. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/test_fluid_models.py +3 -3
  54. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/test_kinetic_models.py +2 -1
  55. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/test_toy_models.py +3 -3
  56. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/test_xxpproc.py +1 -1
  57. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/util.py +0 -13
  58. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/toy.py +227 -123
  59. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/accumulation/accum_kernels.py +125 -14
  60. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/accumulation/accum_kernels_gc.py +65 -85
  61. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/accumulation/particles_to_grid.py +0 -3
  62. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/base.py +233 -97
  63. struphy-2.3.1/src/struphy/pic/particles.py +508 -0
  64. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/pushing/eval_kernels_gc.py +74 -74
  65. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/pushing/pusher.py +11 -9
  66. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/pushing/pusher_kernels.py +253 -0
  67. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/pushing/pusher_kernels_gc.py +788 -137
  68. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_accum_vec_H1.py +1 -1
  69. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_binning.py +42 -42
  70. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/utilities_kernels.py +252 -46
  71. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/polar/basic.py +24 -2
  72. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/post_processing/post_processing_tools.py +101 -56
  73. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/post_processing/pproc_struphy.py +12 -5
  74. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/propagators_coupling.py +605 -96
  75. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/propagators_fields.py +2095 -629
  76. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/propagators_markers.py +754 -61
  77. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +6 -5
  78. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/tests/test_poisson.py +11 -11
  79. struphy-2.3.0/src/struphy/psydac-0.1.12-py3-none-any.whl → struphy-2.3.1/src/struphy/psydac-0.1.13-py3-none-any.whl +0 -0
  80. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/longer_examples/linearextendedmhd.py +5 -5
  81. struphy-2.3.1/src/struphy/tutorials/tests/__init__.py +0 -0
  82. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/tests/test_tutorials.py +31 -0
  83. {struphy-2.3.0 → struphy-2.3.1/src/struphy.egg-info}/PKG-INFO +21 -19
  84. {struphy-2.3.0 → struphy-2.3.1}/src/struphy.egg-info/SOURCES.txt +11 -1
  85. struphy-2.3.1/src/struphy.egg-info/requires.txt +28 -0
  86. struphy-2.3.0/src/struphy/diagnostics/diagn_tools.py +0 -363
  87. struphy-2.3.0/src/struphy/dispersion_relations/base.py +0 -153
  88. struphy-2.3.0/src/struphy/feec/basis_projection_kernels.py +0 -557
  89. struphy-2.3.0/src/struphy/feec/projectors.py +0 -662
  90. struphy-2.3.0/src/struphy/kinetic_background/base.py +0 -186
  91. struphy-2.3.0/src/struphy/kinetic_background/maxwellians.py +0 -646
  92. struphy-2.3.0/src/struphy/pic/particles.py +0 -352
  93. struphy-2.3.0/src/struphy.egg-info/requires.txt +0 -26
  94. {struphy-2.3.0 → struphy-2.3.1}/LICENSE +0 -0
  95. {struphy-2.3.0 → struphy-2.3.1}/README.md +0 -0
  96. {struphy-2.3.0 → struphy-2.3.1}/setup.cfg +0 -0
  97. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/__init__.py +0 -0
  98. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/__init__.py +0 -0
  99. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/bsplines.py +0 -0
  100. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  101. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  102. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  103. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  104. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  105. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/tests/__init__.py +0 -0
  106. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/tests/test_bsplines_kernels.py +0 -0
  107. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  108. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/compile_struphy.mk +0 -0
  109. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/conftest.py +0 -0
  110. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/__init__.py +0 -0
  111. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/main.py +0 -0
  112. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/params.py +0 -0
  113. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/pproc.py +0 -0
  114. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/profile.py +0 -0
  115. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/run.py +0 -0
  116. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/console/units.py +0 -0
  117. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/dependencies.py +0 -0
  118. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/__init__.py +0 -0
  119. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/continuous_spectra.py +0 -0
  120. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/paraview/__init__.py +0 -0
  121. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
  122. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
  123. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/dispersion_relations/__init__.py +0 -0
  124. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/__init__.py +0 -0
  125. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  126. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/kernels_2d.py +0 -0
  127. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/kernels_3d.py +0 -0
  128. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/kernels_projectors_global.py +0 -0
  129. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/kernels_projectors_global_mhd.py +0 -0
  130. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/MHD_eigenvalues_cylinder_1D.py +0 -0
  131. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/__init__.py +0 -0
  132. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/__init__.py +0 -0
  133. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/control_variate.py +0 -0
  134. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kernels_control_variate.py +0 -0
  135. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/__init__.py +0 -0
  136. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_control_variate.py +0 -0
  137. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_kernels_control_variate.py +0 -0
  138. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_control_variate.py +0 -0
  139. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_cv_kernel_2.py +0 -0
  140. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_kernels_control_variate.py +0 -0
  141. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_control_variate.py +0 -0
  142. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_cvker.py +0 -0
  143. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_kernels_control_variate.py +0 -0
  144. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/emw_operators.py +0 -0
  145. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/inner_products_1d.py +0 -0
  146. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/inner_products_2d.py +0 -0
  147. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/inner_products_3d.py +0 -0
  148. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/l2_error_1d.py +0 -0
  149. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/l2_error_2d.py +0 -0
  150. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/l2_error_3d.py +0 -0
  151. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/mass_matrices_3d_pre.py +0 -0
  152. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/__init__.py +0 -0
  153. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_arrays.py +0 -0
  154. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bb_kernel.py +0 -0
  155. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bv_kernel.py +0 -0
  156. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_massless_linear_operators.py +0 -0
  157. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_vv_kernel.py +0 -0
  158. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/mhd_operators_MF.py +0 -0
  159. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/__init__.py +0 -0
  160. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/__init__.py +0 -0
  161. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local.py +0 -0
  162. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local_mhd.py +0 -0
  163. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/mhd_operators_3d_local.py +0 -0
  164. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/projectors_local.py +0 -0
  165. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/__init__.py +0 -0
  166. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_L2_projector_kernel.py +0 -0
  167. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_L2.py +0 -0
  168. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_local.py +0 -0
  169. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_local_projector_kernel.py +0 -0
  170. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mass_matrices_1d.py +0 -0
  171. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mass_matrices_2d.py +0 -0
  172. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mass_matrices_3d.py +0 -0
  173. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_main.py +0 -0
  174. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_pproc.py +0 -0
  175. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mhd_operators.py +0 -0
  176. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/mhd_operators_core.py +0 -0
  177. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/projectors_global.py +0 -0
  178. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/spline_space.py +0 -0
  179. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/tests/__init__.py +0 -0
  180. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/eigenvalue_solvers/tests/test_legacy_mhd_projectors.py +0 -0
  181. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/examples/_draw_parallel.py +0 -0
  182. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/__init__.py +0 -0
  183. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  184. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/linear_operators.py +0 -0
  185. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/mass_kernels.py +0 -0
  186. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/__init__.py +0 -0
  187. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_basis_operators.py +0 -0
  188. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_basis_ops.py +0 -0
  189. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_derham.py +0 -0
  190. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_eval_field.py +0 -0
  191. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  192. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_mass_matrices.py +0 -0
  193. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
  194. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
  195. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
  196. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/utilities.py +0 -0
  197. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/feec/utilities_kernels.py +0 -0
  198. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/__init__.py +0 -0
  199. {struphy-2.3.0/src/struphy/fields_background/mhd_equil → struphy-2.3.1/src/struphy/fields_background/braginskii_equil}/__init__.py +0 -0
  200. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/eqdsk → struphy-2.3.1/src/struphy/fields_background/mhd_equil}/__init__.py +0 -0
  201. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/eqdsk/data → struphy-2.3.1/src/struphy/fields_background/mhd_equil/eqdsk}/__init__.py +0 -0
  202. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  203. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/gvec → struphy-2.3.1/src/struphy/fields_background/mhd_equil/eqdsk/data}/__init__.py +0 -0
  204. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
  205. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/gvec/output → struphy-2.3.1/src/struphy/fields_background/mhd_equil/gvec}/__init__.py +0 -0
  206. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E1D6_M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  207. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E1D6_M6N6/parameter.ini +0 -0
  208. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E4D6_M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  209. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/newBC_E4D6_M6N6/parameter.ini +0 -0
  210. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/oldBC_E40D5M6N6/GVEC_ELLIPSTELL_V2_State_0000_00200000.dat +0 -0
  211. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/mhd_equil/gvec/ellipstell_v2/oldBC_E40D5M6N6/parameter.ini +0 -0
  212. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/gvec/output/vtk → struphy-2.3.1/src/struphy/fields_background/mhd_equil/gvec/output}/__init__.py +0 -0
  213. {struphy-2.3.0/src/struphy/fields_background/mhd_equil/vmec → struphy-2.3.1/src/struphy/fields_background/mhd_equil/gvec/output/vtk}/__init__.py +0 -0
  214. {struphy-2.3.0/src/struphy/fields_background/tests → struphy-2.3.1/src/struphy/fields_background/mhd_equil/vmec}/__init__.py +0 -0
  215. {struphy-2.3.0/src/struphy/geometry → struphy-2.3.1/src/struphy/fields_background/tests}/__init__.py +0 -0
  216. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
  217. {struphy-2.3.0/src/struphy/geometry/map_coef → struphy-2.3.1/src/struphy/geometry}/__init__.py +0 -0
  218. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/evaluation_kernels.py +0 -0
  219. {struphy-2.3.0/src/struphy/geometry/tests → struphy-2.3.1/src/struphy/geometry/map_coef}/__init__.py +0 -0
  220. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/mappings_kernels.py +0 -0
  221. {struphy-2.3.0/src/struphy/initial → struphy-2.3.1/src/struphy/geometry/tests}/__init__.py +0 -0
  222. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/tests/test_domain.py +0 -0
  223. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/transform_kernels.py +0 -0
  224. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/utilities.py +0 -0
  225. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/geometry/utilities_kernels.py +0 -0
  226. {struphy-2.3.0/src/struphy/initial/tests → struphy-2.3.1/src/struphy/initial}/__init__.py +0 -0
  227. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/initial/eigenfunctions.py +0 -0
  228. {struphy-2.3.0/src/struphy/io → struphy-2.3.1/src/struphy/initial/tests}/__init__.py +0 -0
  229. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/initial/tests/test_init_perturbations.py +0 -0
  230. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/initial/utilities.py +0 -0
  231. {struphy-2.3.0/src/struphy/io/inp → struphy-2.3.1/src/struphy/io}/__init__.py +0 -0
  232. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/batch_cobra.sh +0 -0
  233. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_016.sh +0 -0
  234. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_032.sh +0 -0
  235. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_064.sh +0 -0
  236. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_128.sh +0 -0
  237. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_256.sh +0 -0
  238. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/batch/p_512.sh +0 -0
  239. {struphy-2.3.0/src/struphy/io/out → struphy-2.3.1/src/struphy/io/inp}/__init__.py +0 -0
  240. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_TAE_tokamak.yml +0 -0
  241. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/longer_examples/params_linearextendedmhd.yml +0 -0
  242. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_03.yml +0 -0
  243. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_04a.yml +0 -0
  244. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/inp/tutorials/params_04b.yml +0 -0
  245. {struphy-2.3.0/src/struphy/kinetic_background → struphy-2.3.1/src/struphy/io/out}/__init__.py +0 -0
  246. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/io/output_handling.py +0 -0
  247. {struphy-2.3.0/src/struphy/kinetic_background/tests → struphy-2.3.1/src/struphy/kinetic_background}/__init__.py +0 -0
  248. {struphy-2.3.0/src/struphy/linear_algebra → struphy-2.3.1/src/struphy/kinetic_background/tests}/__init__.py +0 -0
  249. {struphy-2.3.0/src/struphy/linear_algebra/tests → struphy-2.3.1/src/struphy/linear_algebra}/__init__.py +0 -0
  250. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  251. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  252. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  253. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  254. {struphy-2.3.0/src/struphy/models → struphy-2.3.1/src/struphy/linear_algebra/tests}/__init__.py +0 -0
  255. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/tests/test_stencil_dot_kernels.py +0 -0
  256. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/linear_algebra/tests/test_stencil_transpose_kernels.py +0 -0
  257. {struphy-2.3.0/src/struphy/models/tests → struphy-2.3.1/src/struphy/models}/__init__.py +0 -0
  258. {struphy-2.3.0/src/struphy/pic → struphy-2.3.1/src/struphy/models/tests}/__init__.py +0 -0
  259. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/models/tests/test_hybrid_models.py +0 -0
  260. {struphy-2.3.0/src/struphy/pic/accumulation → struphy-2.3.1/src/struphy/pic}/__init__.py +0 -0
  261. {struphy-2.3.0/src/struphy/pic/pushing → struphy-2.3.1/src/struphy/pic/accumulation}/__init__.py +0 -0
  262. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  263. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  264. {struphy-2.3.0/src/struphy/pic/tests → struphy-2.3.1/src/struphy/pic/pushing}/__init__.py +0 -0
  265. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  266. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/sampling_kernels.py +0 -0
  267. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/sobol_seq.py +0 -0
  268. {struphy-2.3.0/src/struphy/pic/tests/test_pic_legacy_files → struphy-2.3.1/src/struphy/pic/tests}/__init__.py +0 -0
  269. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_accumulation.py +0 -0
  270. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
  271. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
  272. {struphy-2.3.0/src/struphy/polar → struphy-2.3.1/src/struphy/pic/tests/test_pic_legacy_files}/__init__.py +0 -0
  273. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/accumulation.py +0 -0
  274. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/accumulation_kernels_3d.py +0 -0
  275. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d.py +0 -0
  276. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d_fast.py +0 -0
  277. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/pusher.py +0 -0
  278. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/pusher_pos.py +0 -0
  279. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_2d.py +0 -0
  280. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_3d.py +0 -0
  281. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_2d.py +0 -0
  282. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_3d.py +0 -0
  283. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/tests/test_pushers.py +0 -0
  284. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/pic/utilities.py +0 -0
  285. {struphy-2.3.0/src/struphy/polar/tests → struphy-2.3.1/src/struphy/polar}/__init__.py +0 -0
  286. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/polar/extraction_operators.py +0 -0
  287. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/polar/linear_operators.py +0 -0
  288. {struphy-2.3.0/src/struphy/post_processing → struphy-2.3.1/src/struphy/polar/tests}/__init__.py +0 -0
  289. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/polar/tests/test_legacy_polar_splines.py +0 -0
  290. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/polar/tests/test_polar.py +0 -0
  291. {struphy-2.3.0/src/struphy/post_processing/tests → struphy-2.3.1/src/struphy/post_processing}/__init__.py +0 -0
  292. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/post_processing/cprofile_analyser.py +0 -0
  293. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/post_processing/profile_struphy.py +0 -0
  294. {struphy-2.3.0/src/struphy/propagators → struphy-2.3.1/src/struphy/post_processing/tests}/__init__.py +0 -0
  295. {struphy-2.3.0/src/struphy/propagators/tests → struphy-2.3.1/src/struphy/propagators}/__init__.py +0 -0
  296. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/propagators/base.py +0 -0
  297. {struphy-2.3.0/src/struphy/tutorials → struphy-2.3.1/src/struphy/propagators/tests}/__init__.py +0 -0
  298. {struphy-2.3.0/src/struphy/tutorials/longer_examples → struphy-2.3.1/src/struphy/tutorials}/__init__.py +0 -0
  299. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/longer_examples/TAE_tokamak.py +0 -0
  300. {struphy-2.3.0/src/struphy/tutorials/tests → struphy-2.3.1/src/struphy/tutorials/longer_examples}/__init__.py +0 -0
  301. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/longer_examples/linearmhdvlasov_cc.py +0 -0
  302. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/longer_examples/linearmhdvlasov_pc.py +0 -0
  303. {struphy-2.3.0 → struphy-2.3.1}/src/struphy/tutorials/utilities.py +0 -0
  304. {struphy-2.3.0 → struphy-2.3.1}/src/struphy.egg-info/dependency_links.txt +0 -0
  305. {struphy-2.3.0 → struphy-2.3.1}/src/struphy.egg-info/entry_points.txt +0 -0
  306. {struphy-2.3.0 → struphy-2.3.1}/src/struphy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: struphy
3
- Version: 2.3.0
3
+ Version: 2.3.1
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
@@ -27,33 +27,35 @@ 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.7
30
+ Requires-Python: <3.12,>=3.10
31
31
  Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
33
  Requires-Dist: PyYAML==6.0.1
34
- Requires-Dist: argcomplete==3.2.3
35
- Requires-Dist: docutils==0.20.1
36
- Requires-Dist: gvec-to-python==1.2.1
37
- Requires-Dist: h5py==3.10.0
38
- Requires-Dist: ipyparallel==8.7.0
39
- Requires-Dist: lxml_html_clean==0.1.0
34
+ Requires-Dist: argcomplete==3.4.0
35
+ Requires-Dist: desc-opt==0.11.1
36
+ Requires-Dist: docutils==0.21.2
37
+ Requires-Dist: gvec-to-python==1.2.2
38
+ Requires-Dist: h5py==3.11.0
39
+ Requires-Dist: ipyparallel==8.8.0
40
+ Requires-Dist: lxml_html_clean==0.1.1
40
41
  Requires-Dist: m2r2==0.3.3.post2
41
- Requires-Dist: matplotlib==3.8.3
42
+ Requires-Dist: matplotlib==3.9.0
42
43
  Requires-Dist: mistune==0.8.4
43
- Requires-Dist: mpi4py==3.1.5
44
- Requires-Dist: myst-parser==2.0.0
45
- Requires-Dist: nbsphinx==0.9.3
46
- Requires-Dist: notebook==7.1.2
44
+ Requires-Dist: mpi4py==3.1.6
45
+ Requires-Dist: myst-parser==3.0.1
46
+ Requires-Dist: nbsphinx==0.9.4
47
+ Requires-Dist: netCDF4==1.6.5
48
+ Requires-Dist: notebook==7.2.1
47
49
  Requires-Dist: numpy==1.24.4
48
- Requires-Dist: pyccel==1.11.2
49
- Requires-Dist: pydata-sphinx-theme==0.15.2
50
- Requires-Dist: pytest==8.1.1
50
+ Requires-Dist: pyccel==1.12.0
51
+ Requires-Dist: pydata-sphinx-theme==0.15.3
52
+ Requires-Dist: pytest==8.2.2
51
53
  Requires-Dist: pytest-monitor==1.6.6
52
54
  Requires-Dist: pytest-mpi==0.6
53
- Requires-Dist: scipy==1.12.0
54
- Requires-Dist: Sphinx==7.2.6
55
+ Requires-Dist: scipy==1.13.1
56
+ Requires-Dist: Sphinx==7.3.7
55
57
  Requires-Dist: sphinxcontrib-napoleon==0.7
56
- Requires-Dist: tqdm==4.66.2
58
+ Requires-Dist: tqdm==4.66.4
57
59
  Requires-Dist: vtk==9.3.0
58
60
  Requires-Dist: wheel==0.43.0
59
61
 
@@ -4,9 +4,9 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "struphy"
7
- version = "2.3.0"
7
+ version = "2.3.1"
8
8
  readme = "README.md"
9
- requires-python = ">=3.7, <3.12"
9
+ requires-python = ">=3.10, <3.12"
10
10
  license = {file = "LICENSE"}
11
11
  authors = [
12
12
  { name = "Max Planck Institute for Plasma Physics"},
@@ -20,29 +20,31 @@ classifiers = [
20
20
  ]
21
21
  dependencies = [
22
22
  'PyYAML==6.0.1',
23
- 'argcomplete==3.2.3',
24
- 'docutils==0.20.1',
25
- 'gvec-to-python==1.2.1',
26
- 'h5py==3.10.0',
27
- 'ipyparallel==8.7.0',
28
- 'lxml_html_clean==0.1.0',
23
+ 'argcomplete==3.4.0',
24
+ 'desc-opt==0.11.1',
25
+ 'docutils==0.21.2',
26
+ 'gvec-to-python==1.2.2',
27
+ 'h5py==3.11.0',
28
+ 'ipyparallel==8.8.0',
29
+ 'lxml_html_clean==0.1.1',
29
30
  'm2r2==0.3.3.post2',
30
- 'matplotlib==3.8.3',
31
+ 'matplotlib==3.9.0',
31
32
  'mistune==0.8.4',
32
- 'mpi4py==3.1.5',
33
- 'myst-parser==2.0.0',
34
- 'nbsphinx==0.9.3',
35
- 'notebook==7.1.2',
33
+ 'mpi4py==3.1.6',
34
+ 'myst-parser==3.0.1',
35
+ 'nbsphinx==0.9.4',
36
+ 'netCDF4==1.6.5',
37
+ 'notebook==7.2.1',
36
38
  'numpy==1.24.4',
37
- 'pyccel==1.11.2',
38
- 'pydata-sphinx-theme==0.15.2',
39
- 'pytest==8.1.1',
39
+ 'pyccel==1.12.0',
40
+ 'pydata-sphinx-theme==0.15.3',
41
+ 'pytest==8.2.2',
40
42
  'pytest-monitor==1.6.6',
41
43
  'pytest-mpi==0.6',
42
- 'scipy==1.12.0',
43
- 'Sphinx==7.2.6',
44
+ 'scipy==1.13.1',
45
+ 'Sphinx==7.3.7',
44
46
  'sphinxcontrib-napoleon==0.7',
45
- 'tqdm==4.66.2',
47
+ 'tqdm==4.66.4',
46
48
  'vtk==9.3.0',
47
49
  'wheel==0.43.0',
48
50
  ]
@@ -80,5 +82,5 @@ struphy = "struphy.console.main:struphy"
80
82
  ]
81
83
 
82
84
  struphy = ['compile_struphy.mk',
83
- 'psydac-0.1.12-py3-none-any.whl',
85
+ 'psydac-0.1.13-py3-none-any.whl',
84
86
  ]
@@ -208,7 +208,7 @@ def struphy_compile(language, compiler, omp_pic, omp_feec, delete, status, verbo
208
208
  flags += ' --verbose'
209
209
 
210
210
  # install psydac from wheel if not there
211
- current_ver = '0.1.12'
211
+ current_ver = '0.1.13'
212
212
  psydac_file = 'psydac-' + current_ver + '-py3-none-any.whl'
213
213
 
214
214
  try:
@@ -31,8 +31,6 @@ def struphy_test(group, mpi=2, fast=False, verbose=False, monitor=False, n=None,
31
31
  If group is a model name, simulation end time in units of the model (default=0.015 with dt=0.005). Data is only saved at Tend if set.
32
32
  """
33
33
 
34
- assert mpi >= 2, 'Tests require at least 2 MPI processes.'
35
-
36
34
  libpath = struphy.__path__[0]
37
35
 
38
36
  pymon_abs = os.path.join(libpath, '_pymon/')
@@ -8,7 +8,7 @@ import h5py
8
8
  import yaml
9
9
 
10
10
  import struphy
11
- from struphy.diagnostics.diagn_tools import plot_scalars, plot_distr_fun
11
+ from struphy.diagnostics.diagn_tools import plot_scalars, plot_distr_fun, phase_space_video
12
12
 
13
13
 
14
14
  def main():
@@ -19,13 +19,31 @@ def main():
19
19
  help='''which actions to perform:\
20
20
  \n - plot_scalars : plots the scalar quantities that were saved during the simulation\
21
21
  \n - plot_distr : plots the distribution function and delta-f (if available)\
22
- \n set points for slicing with options below (default is middle of the space)''')
22
+ \n set points for slicing with options below (default is middle of the space)\
23
+ \n - phase_space : make a video of the distribution function (minus the background) in a 2D slice of phase space
24
+ ''')
23
25
  parser.add_argument('-f', nargs=1, type=str, default=['sim_1'],
24
- help='in which folder the simulation data has been stored')
26
+ help='name of the folder for the simulation data (in io/out)')
25
27
  parser.add_argument('-scalars', nargs='+', action='append', default=[],
26
28
  help='(for plot_scalars) which quantities to plot')
27
29
  parser.add_argument('--log', action='store_true',
28
30
  help='(for plot_scalars) if logarithmic y-axis should be used')
31
+ parser.add_argument('--show', action='store_true',
32
+ help='(for plot_scalars) if the plot should be shown')
33
+ parser.add_argument('--nosave', action='store_true',
34
+ help='(for plot_scalars) if the plot should not be displayed')
35
+ parser.add_argument('--fit', action='store_true',
36
+ help='(for plot_scalars) if a fit should be done (using maxima)')
37
+ parser.add_argument('--minfit', action='store_true',
38
+ help='(for plot_scalars) if a fit should be done using minima')
39
+ parser.add_argument('-degree', nargs=1, type=int, default=[1],
40
+ help='(for plot_scalars --fit) the degree of the fit curve')
41
+ parser.add_argument('-extrema', nargs=1, type=int, default=[4],
42
+ help='(for plot_scalars --fit) how many extrema should be used for the fit')
43
+ parser.add_argument('-startextr', nargs=1, type=int, default=[0],
44
+ help='(for plot_scalars --fit) which extremum should be used first for the fit (0 = first)')
45
+ parser.add_argument('-order', nargs=1, type=int, default=[4],
46
+ help='(for plot_scalars --fit) how many neighbouring points should be used for determining the extrema')
29
47
  parser.add_argument('-t', nargs=1, type=float, default=[0.],
30
48
  help='(for plot_distr) at which time to plot the distribution function')
31
49
  parser.add_argument('-e1', nargs=1, type=float, default=[0.5],
@@ -41,16 +59,29 @@ def main():
41
59
  parser.add_argument('-v3', nargs=1, type=float, default=[None],
42
60
  help='(for plot_distr) at which point in v3 direction to plot')
43
61
 
62
+ # Parse the arguments
44
63
  args = parser.parse_args()
45
64
  actions = args.actions
46
65
  foldername = args.f[0]
47
66
  time = args.t[0]
48
67
  do_log = args.log
68
+ show = args.show
69
+ nosave = args.nosave
49
70
  if len(args.scalars) != 0:
50
71
  scalars_plot = args.scalars[0]
51
72
  else:
52
73
  scalars_plot = args.scalars
53
74
 
75
+ # Arguments for fitting
76
+ do_fit = args.fit
77
+ fit_minima = args.minfit
78
+ if fit_minima and do_fit:
79
+ do_fit = False
80
+ no_extrema = args.extrema[0]
81
+ order = args.order[0]
82
+ degree = args.degree[0]
83
+ start_extremum = args.startextr[0]
84
+
54
85
  libpath = struphy.__path__[0]
55
86
  with open(os.path.join(libpath, 'state.yml')) as f:
56
87
  state = yaml.load(f, Loader=yaml.FullLoader)
@@ -59,8 +90,10 @@ def main():
59
90
 
60
91
  path = os.path.join(o_path, foldername)
61
92
 
62
- grid_slices = {'e1': args.e1[0], 'e2': args.e2[0], 'e3': args.e3[0],
63
- 'v1': args.v1[0], 'v2': args.v2[0], 'v3': args.v3[0]}
93
+ grid_slices = {
94
+ 'e1': args.e1[0], 'e2': args.e2[0], 'e3': args.e3[0],
95
+ 'v1': args.v1[0], 'v2': args.v2[0], 'v3': args.v3[0]
96
+ }
64
97
 
65
98
  # Get fields
66
99
  file = h5py.File(os.path.join(path, 'data/', 'data_proc0.hdf5'), 'r')
@@ -78,14 +111,14 @@ def main():
78
111
  model_name = line.split(':')[1].strip()
79
112
 
80
113
  if 'plot_scalars' in actions:
81
- plot_scalars(saved_time,
82
- saved_scalars,
83
- scalars_plot=scalars_plot,
84
- do_log=do_log,
85
- save_plot=True,
86
- savedir=path)
87
-
88
- if 'plot_distr' in actions:
114
+ plot_scalars(
115
+ time=saved_time, scalar_quantities=saved_scalars, scalars_plot=scalars_plot,
116
+ do_log=do_log, do_fit=do_fit, fit_minima=fit_minima, order=order,
117
+ no_extrema=no_extrema, degree=degree, show_plot=show, start_extremum=start_extremum,
118
+ save_plot=not nosave, savedir=path
119
+ )
120
+
121
+ if 'plot_distr' or 'phase_space' in actions:
89
122
  for species in params['kinetic'].keys():
90
123
  # Get model class
91
124
  from struphy.models import fluid, kinetic, hybrid, toy
@@ -102,15 +135,19 @@ def main():
102
135
 
103
136
  # Get default background of particles class
104
137
  from struphy.pic import particles
105
- default_bckgr_type = getattr(particles, particles_class_name).default_bckgr_params()['type']
138
+ default_bckgr_type = getattr(
139
+ particles, particles_class_name).default_bckgr_params()['type']
106
140
 
107
141
  # Get default background parameters
108
142
  from struphy.kinetic_background import maxwellians
109
- default_bckgr_params = getattr(maxwellians, default_bckgr_type).default_bckgr_params()
143
+ default_bckgr_params = getattr(
144
+ maxwellians, default_bckgr_type).default_maxw_params()
110
145
 
146
+ marker_type = params['kinetic'][species]['markers']['type']
111
147
  # Set velocity point of evaluation to v_shift of background params if not given by input
112
- if params['kinetic'][species]['markers']['type'] == 'full_f':
148
+ if marker_type == 'full_f':
113
149
  for k in range(1, 4):
150
+
114
151
  if grid_slices['v' + str(k)] is None:
115
152
  key = 'u' + str(k)
116
153
  bckgr_type = params['kinetic'][species]['background']['type']
@@ -119,35 +156,59 @@ def main():
119
156
  bckgr_param = default_bckgr_params[key]
120
157
  else:
121
158
  bckgr_param = params['kinetic'][species]['background'][bckgr_type][key]
159
+
122
160
  if isinstance(bckgr_param, dict):
123
161
  grid_slices['v' + str(k)] = \
124
162
  bckgr_param['u0' + str(k)]
125
163
  else:
126
164
  grid_slices['v' + str(k)] = bckgr_param
127
- elif params['kinetic'][species]['markers']['type'] == 'delta_f' \
128
- or params['kinetic'][species]['markers']['type'] == 'control_variate':
165
+ elif marker_type in ['delta_f', 'control_variate']:
129
166
  for k in range(1, 4):
167
+
130
168
  if grid_slices['v' + str(k)] is None:
169
+ key = 'u' + str(k)
131
170
  bckgr_type = params['kinetic'][species]['background']['type']
132
- bckgr_param = params['kinetic'][species]['background'][bckgr_type]['u' + str(
133
- k)]
171
+
172
+ if key not in params['kinetic'][species]['background'][bckgr_type].keys():
173
+ bckgr_param = default_bckgr_params[key]
174
+ else:
175
+ bckgr_param = params['kinetic'][species]['background'][bckgr_type][key]
176
+
134
177
  if isinstance(bckgr_param, dict):
135
178
  grid_slices['v' + str(k)] = \
136
179
  bckgr_param['u0' + str(k)]
137
180
  else:
138
181
  grid_slices['v' + str(k)] = bckgr_param
139
-
140
- # Get index of where to plot in time
141
- time_idx = np.argmin(np.abs(time - saved_time))
142
-
143
- plot_distr_fun(
144
- path=os.path.join(
145
- path, 'post_processing', 'kinetic_data', species
146
- ),
147
- time_idx=time_idx,
148
- grid_slices=grid_slices,
149
- save_plot=True, savepath=path,
150
- )
182
+ else:
183
+ raise NotImplementedError(
184
+ f"Diagnostics for markers of type {marker_type} are not implemented!")
185
+
186
+ if 'plot_distr' in actions:
187
+ # Get index of where to plot in time
188
+ time_idx = np.argmin(np.abs(time - saved_time))
189
+
190
+ plot_distr_fun(
191
+ path=os.path.join(
192
+ path, 'post_processing', 'kinetic_data', species
193
+ ),
194
+ time_idx=time_idx,
195
+ grid_slices=grid_slices,
196
+ save_plot=True, savepath=path,
197
+ )
198
+
199
+ if 'phase_space' in actions:
200
+ for slice_name in os.listdir(os.path.join(
201
+ path, 'post_processing', 'kinetic_data', species, 'distribution_function'
202
+ )):
203
+ phase_space_video(
204
+ t_grid=saved_time, grid_slices=grid_slices,
205
+ slice_name=slice_name,
206
+ marker_type=params['kinetic'][species]['markers']['type'],
207
+ species=species,
208
+ path=path,
209
+ model_name=model_name,
210
+ background_params=params['kinetic'][species]['background']
211
+ )
151
212
 
152
213
  file.close()
153
214