struphy 3.5.0__tar.gz → 3.6.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 (1072) hide show
  1. struphy-3.6.0/PKG-INFO +300 -0
  2. struphy-3.6.0/README.md +189 -0
  3. struphy-3.6.0/pyproject.toml +192 -0
  4. struphy-3.6.0/src/struphy/agent_guides/skills/postprocess-simulation/SKILL.md +101 -0
  5. struphy-3.6.0/src/struphy/agent_guides/skills/setup-simulation/SKILL.md +159 -0
  6. struphy-3.6.0/src/struphy/api/models/__init__.py +97 -0
  7. struphy-3.6.0/src/struphy/conftest.py +70 -0
  8. struphy-3.6.0/src/struphy/console/params.py +70 -0
  9. struphy-3.6.0/src/struphy/console/test.py +180 -0
  10. struphy-3.6.0/src/struphy/feec/basis_projection_ops.py +2446 -0
  11. struphy-3.6.0/src/struphy/feec/fused_derivatives.py +217 -0
  12. struphy-3.6.0/src/struphy/feec/fused_derivatives_cuda.cu +97 -0
  13. struphy-3.6.0/src/struphy/feec/kernels/kernel_3d_mat/__init__.py +22 -0
  14. struphy-3.6.0/src/struphy/feec/kernels/kernel_3d_mat/kernel_3d_mat_cuda.cu +92 -0
  15. struphy-3.6.0/src/struphy/feec/kron_band_pass_cuda.cu +35 -0
  16. struphy-3.6.0/src/struphy/feec/kronecker_mass.py +249 -0
  17. struphy-3.6.0/src/struphy/feec/linear_operators.py +318 -0
  18. struphy-3.6.0/src/struphy/feec/mass.py +4108 -0
  19. struphy-3.6.0/src/struphy/feec/preconditioner.py +3111 -0
  20. struphy-3.6.0/src/struphy/feec/psydac_derham.py +4185 -0
  21. struphy-3.6.0/src/struphy/feec/tests/test_field_init.py +1462 -0
  22. struphy-3.6.0/src/struphy/feec/tests/test_fused_derivatives.py +145 -0
  23. struphy-3.6.0/src/struphy/feec/tests/test_kinetic_metric.py +74 -0
  24. struphy-3.6.0/src/struphy/feec/tests/test_local_projectors.py +1606 -0
  25. struphy-3.6.0/src/struphy/feec/tests/test_mass_matrices.py +1820 -0
  26. struphy-3.6.0/src/struphy/feec/tests/test_mass_reassembly.py +113 -0
  27. struphy-3.6.0/src/struphy/feec/tests/test_preconditioner_transpose.py +151 -0
  28. struphy-3.6.0/src/struphy/feec/variational_utilities.py +2125 -0
  29. struphy-3.6.0/src/struphy/geometry/domains/colella/__init__.py +23 -0
  30. struphy-3.6.0/src/struphy/geometry/domains/cuboid/__init__.py +23 -0
  31. struphy-3.6.0/src/struphy/geometry/domains/desc_unit/__init__.py +23 -0
  32. struphy-3.6.0/src/struphy/geometry/domains/gvec_unit/__init__.py +23 -0
  33. struphy-3.6.0/src/struphy/geometry/domains/hollow_cylinder/__init__.py +23 -0
  34. struphy-3.6.0/src/struphy/geometry/domains/hollow_torus/__init__.py +23 -0
  35. struphy-3.6.0/src/struphy/geometry/domains/iga_polar_cylinder/__init__.py +23 -0
  36. struphy-3.6.0/src/struphy/geometry/domains/iga_polar_torus/__init__.py +23 -0
  37. struphy-3.6.0/src/struphy/geometry/domains/orthogonal/__init__.py +23 -0
  38. struphy-3.6.0/src/struphy/geometry/domains/powered_elliptic_cylinder/__init__.py +23 -0
  39. struphy-3.6.0/src/struphy/geometry/domains/shafranov_dshaped_cylinder/__init__.py +25 -0
  40. struphy-3.6.0/src/struphy/geometry/domains/shafranov_shift_cylinder/__init__.py +23 -0
  41. struphy-3.6.0/src/struphy/geometry/domains/shafranov_sqrt_cylinder/__init__.py +23 -0
  42. struphy-3.6.0/src/struphy/geometry/domains/tokamak/__init__.py +23 -0
  43. struphy-3.6.0/src/struphy/geometry/tests/test_domain.py +1294 -0
  44. struphy-3.6.0/src/struphy/initial/perturbations.py +2595 -0
  45. struphy-3.6.0/src/struphy/io/options.py +412 -0
  46. struphy-3.6.0/src/struphy/kernel_arguments/pusher_args.cuh +51 -0
  47. struphy-3.6.0/src/struphy/kernel_arguments/pusher_args_cuda.py +152 -0
  48. struphy-3.6.0/src/struphy/kinetic_background/maxwellians.py +872 -0
  49. struphy-3.6.0/src/struphy/kinetic_background/tests/test_maxwellians.py +1829 -0
  50. struphy-3.6.0/src/struphy/linear_algebra/schur_solver.py +443 -0
  51. struphy-3.6.0/src/struphy/models/__init__.py +159 -0
  52. struphy-3.6.0/src/struphy/models/base.py +1502 -0
  53. struphy-3.6.0/src/struphy/models/cold_euler_sph.py +224 -0
  54. struphy-3.6.0/src/struphy/models/cold_plasma.py +232 -0
  55. struphy-3.6.0/src/struphy/models/cold_plasma_vlasov.py +335 -0
  56. struphy-3.6.0/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +320 -0
  57. struphy-3.6.0/src/struphy/models/drift_kinetic_maxwell.py +313 -0
  58. struphy-3.6.0/src/struphy/models/euler_sph.py +193 -0
  59. struphy-3.6.0/src/struphy/models/guiding_center.py +186 -0
  60. struphy-3.6.0/src/struphy/models/incompressible_navier_stokes_sph.py +250 -0
  61. struphy-3.6.0/src/struphy/models/linear_euler.py +269 -0
  62. struphy-3.6.0/src/struphy/models/linear_mhd.py +379 -0
  63. struphy-3.6.0/src/struphy/models/linear_mhd_driftkinetic_cc.py +344 -0
  64. struphy-3.6.0/src/struphy/models/linear_mhd_vlasov_cc.py +281 -0
  65. struphy-3.6.0/src/struphy/models/linear_mhd_vlasov_pc.py +236 -0
  66. struphy-3.6.0/src/struphy/models/linear_vlasov_ampere_one_species.py +286 -0
  67. struphy-3.6.0/src/struphy/models/linear_vlasov_maxwell_one_species.py +196 -0
  68. struphy-3.6.0/src/struphy/models/maxwell.py +165 -0
  69. struphy-3.6.0/src/struphy/models/scalars.py +420 -0
  70. struphy-3.6.0/src/struphy/models/shear_alfven.py +269 -0
  71. struphy-3.6.0/src/struphy/models/species.py +489 -0
  72. struphy-3.6.0/src/struphy/models/tests/gpu_e2e.py +263 -0
  73. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdEulerSPH.json +47 -0
  74. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdPlasma.json +83 -0
  75. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdPlasmaVlasov.json +103 -0
  76. struphy-3.6.0/src/struphy/models/tests/regression/baselines/CurlCurl.json +33 -0
  77. struphy-3.6.0/src/struphy/models/tests/regression/baselines/DeterministicParticleDiffusion.json +35 -0
  78. struphy-3.6.0/src/struphy/models/tests/regression/baselines/DriftKineticElectrostaticAdiabatic.json +71 -0
  79. struphy-3.6.0/src/struphy/models/tests/regression/baselines/DriftKineticMaxwell.json +99 -0
  80. struphy-3.6.0/src/struphy/models/tests/regression/baselines/EulerSPH.json +47 -0
  81. struphy-3.6.0/src/struphy/models/tests/regression/baselines/GuidingCenter.json +83 -0
  82. struphy-3.6.0/src/struphy/models/tests/regression/baselines/GyrokineticPoisson.json +31 -0
  83. struphy-3.6.0/src/struphy/models/tests/regression/baselines/HasegawaWakatani.json +35 -0
  84. struphy-3.6.0/src/struphy/models/tests/regression/baselines/IncompressibleNavierStokesSPH.json +49 -0
  85. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearEuler.json +95 -0
  86. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearExtendedMHDuniform.json +145 -0
  87. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD-b_space=Hcurl-projected=False.json +133 -0
  88. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD-b_space=Hcurl-projected=True.json +133 -0
  89. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD.json +133 -0
  90. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDDriftkineticCC.json +175 -0
  91. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDVlasovCC.json +163 -0
  92. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDVlasovPC.json +163 -0
  93. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearVlasovAmpereOneSpecies.json +75 -0
  94. struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearVlasovMaxwellOneSpecies.json +89 -0
  95. struphy-3.6.0/src/struphy/models/tests/regression/baselines/Maxwell.json +69 -0
  96. struphy-3.6.0/src/struphy/models/tests/regression/baselines/Poisson.json +33 -0
  97. struphy-3.6.0/src/struphy/models/tests/regression/baselines/RandomParticleDiffusion.json +35 -0
  98. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven-b_space=Hcurl-projected=False.json +105 -0
  99. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven-b_space=Hcurl-projected=True.json +105 -0
  100. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven.json +105 -0
  101. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ToyDrift.json +73 -0
  102. struphy-3.6.0/src/struphy/models/tests/regression/baselines/TwoFluidQuasiNeutralToy.json +20 -0
  103. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalBarotropicFluid.json +69 -0
  104. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalCompressibleFluid.json +71 -0
  105. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD.json +121 -0
  106. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD_with_p.json +113 -0
  107. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD_with_q.json +113 -0
  108. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD-linear-crank_nicolson=False.json +141 -0
  109. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD-linear-crank_nicolson=True.json +141 -0
  110. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD.json +141 -0
  111. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q-linear-crank_nicolson=False.json +117 -0
  112. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q-linear-crank_nicolson=True.json +117 -0
  113. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q.json +117 -0
  114. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPressurelessFluid.json +45 -0
  115. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ViscousEulerSPH.json +47 -0
  116. struphy-3.6.0/src/struphy/models/tests/regression/baselines/ViscousFluid.json +95 -0
  117. struphy-3.6.0/src/struphy/models/tests/regression/baselines/Vlasov.json +47 -0
  118. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovAmpereOneSpecies.json +75 -0
  119. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovMaxwellOneSpecies.json +101 -0
  120. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovMaxwellQuasiNeutral.json +101 -0
  121. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPauli.json +83 -0
  122. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPoissonAdiabatic.json +73 -0
  123. struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPoissonAdiabaticPauli.json +97 -0
  124. struphy-3.6.0/src/struphy/models/tests/regression/test_models.py +202 -0
  125. struphy-3.6.0/src/struphy/models/tests/regression/utils_regression.py +279 -0
  126. struphy-3.6.0/src/struphy/models/tests/test_diagnostics_on_device.py +346 -0
  127. struphy-3.6.0/src/struphy/models/tests/test_examples.py +86 -0
  128. struphy-3.6.0/src/struphy/models/tests/test_gpu_LinearVlasovAmpereOneSpecies.py +194 -0
  129. struphy-3.6.0/src/struphy/models/tests/test_gpu_VlasovAmpereOneSpecies.py +217 -0
  130. struphy-3.6.0/src/struphy/models/tests/test_scalars.py +195 -0
  131. struphy-3.6.0/src/struphy/models/tests/test_splitting_order.py +421 -0
  132. struphy-3.6.0/src/struphy/models/tests/test_variational_dissipation.py +51 -0
  133. struphy-3.6.0/src/struphy/models/tests/test_variational_divdiv.py +88 -0
  134. struphy-3.6.0/src/struphy/models/tests/utils_testing.py +207 -0
  135. struphy-3.6.0/src/struphy/models/tests/verification/spectrum_utils.py +36 -0
  136. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_DriftKineticMaxwell.py +144 -0
  137. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_EulerSPH.py +163 -0
  138. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_IncompressibleNavierStokesSPH.py +487 -0
  139. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearEuler.py +257 -0
  140. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearMHD.py +129 -0
  141. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearVlasovAmpereOneSpecies.py +274 -0
  142. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_Maxwell.py +281 -0
  143. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +907 -0
  144. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +385 -0
  145. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellOneSpecies.py +124 -0
  146. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellQuasiNeutral.py +116 -0
  147. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovPauli.py +252 -0
  148. struphy-3.6.0/src/struphy/models/tests/verification/test_verif_variational_linear_cn.py +189 -0
  149. struphy-3.6.0/src/struphy/models/tests/verification/variational_mhd_utils.py +224 -0
  150. struphy-3.6.0/src/struphy/models/utils.py +84 -0
  151. struphy-3.6.0/src/struphy/models/variational_compressible_fluid.py +284 -0
  152. struphy-3.6.0/src/struphy/models/variational_mhd.py +366 -0
  153. struphy-3.6.0/src/struphy/models/variational_mhd_with_p.py +320 -0
  154. struphy-3.6.0/src/struphy/models/variational_mhd_with_q.py +320 -0
  155. struphy-3.6.0/src/struphy/models/variational_perturbative_mhd.py +472 -0
  156. struphy-3.6.0/src/struphy/models/variational_perturbative_mhd_with_q.py +536 -0
  157. struphy-3.6.0/src/struphy/models/viscous_euler_sph.py +165 -0
  158. struphy-3.6.0/src/struphy/models/vlasov.py +327 -0
  159. struphy-3.6.0/src/struphy/models/vlasov_ampere_one_species.py +225 -0
  160. struphy-3.6.0/src/struphy/models/vlasov_maxwell_one_species.py +214 -0
  161. struphy-3.6.0/src/struphy/models/vlasov_maxwell_quasi_neutral.py +284 -0
  162. struphy-3.6.0/src/struphy/models/vlasov_pauli.py +256 -0
  163. struphy-3.6.0/src/struphy/models/vlasov_poisson_adiabatic.py +307 -0
  164. struphy-3.6.0/src/struphy/models/vlasov_poisson_adiabatic_pauli.py +259 -0
  165. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D_mf/__init__.py +10 -0
  166. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D_mf/cc_lin_mhd_5d_D_mf_kernels.py +110 -0
  167. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb_mf/__init__.py +10 -0
  168. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb_mf/cc_lin_mhd_5d_curlb_mf_kernels.py +113 -0
  169. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/__init__.py +10 -0
  170. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/cc_lin_mhd_5d_gradB_kernels.py +212 -0
  171. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1_mf/__init__.py +10 -0
  172. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1_mf/cc_lin_mhd_6d_1_mf_kernels.py +101 -0
  173. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2_mf/__init__.py +10 -0
  174. struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2_mf/cc_lin_mhd_6d_2_mf_kernels.py +168 -0
  175. struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell/__init__.py +10 -0
  176. struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell/dk_maxwell_kernels.py +156 -0
  177. struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell_mf/__init__.py +10 -0
  178. struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell_mf/dk_maxwell_mf_kernels.py +117 -0
  179. struphy-3.6.0/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere_mf/__init__.py +10 -0
  180. struphy-3.6.0/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere_mf/linear_vlasov_ampere_mf_kernels.py +100 -0
  181. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_asym_dot/__init__.py +10 -0
  182. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_asym_dot/marker_operator_asym_dot_kernels.py +79 -0
  183. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_pressure_dot/__init__.py +10 -0
  184. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_pressure_dot/marker_operator_pressure_dot_kernels.py +111 -0
  185. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_rank1_dot/__init__.py +10 -0
  186. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_rank1_dot/marker_operator_rank1_dot_kernels.py +82 -0
  187. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_symm_dot/__init__.py +10 -0
  188. struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_symm_dot/marker_operator_symm_dot_kernels.py +80 -0
  189. struphy-3.6.0/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_mf/__init__.py +10 -0
  190. struphy-3.6.0/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_mf/pc_lin_mhd_6d_mf_kernels.py +125 -0
  191. struphy-3.6.0/src/struphy/pic/accumulation/kernels/vlasov_maxwell_mf/__init__.py +10 -0
  192. struphy-3.6.0/src/struphy/pic/accumulation/kernels/vlasov_maxwell_mf/vlasov_maxwell_mf_kernels.py +83 -0
  193. struphy-3.6.0/src/struphy/pic/accumulation/particles_to_grid.py +910 -0
  194. struphy-3.6.0/src/struphy/pic/base.py +5475 -0
  195. struphy-3.6.0/src/struphy/pic/mpi_sort_cuda.cu +79 -0
  196. struphy-3.6.0/src/struphy/pic/mpi_sort_cuda.py +99 -0
  197. struphy-3.6.0/src/struphy/pic/particles.py +1164 -0
  198. struphy-3.6.0/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_cuda.cu +65 -0
  199. struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vpar_with_efield/__init__.py +10 -0
  200. struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vpar_with_efield/push_vpar_with_efield_kernels.py +90 -0
  201. struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_cuda.cu +89 -0
  202. struphy-3.6.0/src/struphy/pic/pushing/pusher.py +473 -0
  203. struphy-3.6.0/src/struphy/pic/pushing/pusher_utilities_kernels.cuh +126 -0
  204. struphy-3.6.0/src/struphy/pic/tests/cuda_emulation.py +130 -0
  205. struphy-3.6.0/src/struphy/pic/tests/cuda_parity_cases.py +445 -0
  206. struphy-3.6.0/src/struphy/pic/tests/test_accum_gc_gradB.py +77 -0
  207. struphy-3.6.0/src/struphy/pic/tests/test_kernel_backends.py +251 -0
  208. struphy-3.6.0/src/struphy/pic/tests/test_pole.py +372 -0
  209. struphy-3.6.0/src/struphy/pic/tests/test_sorting_device.py +326 -0
  210. struphy-3.6.0/src/struphy/post_processing/output.py +2780 -0
  211. struphy-3.6.0/src/struphy/propagators/__init__.py +192 -0
  212. struphy-3.6.0/src/struphy/propagators/background_current.py +183 -0
  213. struphy-3.6.0/src/struphy/propagators/background_pressure_gradient.py +138 -0
  214. struphy-3.6.0/src/struphy/propagators/curl_curl_solve.py +400 -0
  215. struphy-3.6.0/src/struphy/propagators/current_coupling_5d_curlb.py +368 -0
  216. struphy-3.6.0/src/struphy/propagators/current_coupling_5d_density.py +292 -0
  217. struphy-3.6.0/src/struphy/propagators/current_coupling_5d_gradb.py +871 -0
  218. struphy-3.6.0/src/struphy/propagators/current_coupling_6d_current.py +351 -0
  219. struphy-3.6.0/src/struphy/propagators/current_coupling_6d_density.py +345 -0
  220. struphy-3.6.0/src/struphy/propagators/drift_kinetic_maxwell_coupling.py +707 -0
  221. struphy-3.6.0/src/struphy/propagators/efield_weights_coupling.py +349 -0
  222. struphy-3.6.0/src/struphy/propagators/gyrokinetic_poisson_solve.py +215 -0
  223. struphy-3.6.0/src/struphy/propagators/implicit_diffusion.py +691 -0
  224. struphy-3.6.0/src/struphy/propagators/magnetosonic.py +304 -0
  225. struphy-3.6.0/src/struphy/propagators/maxwell_weak_ampere.py +324 -0
  226. struphy-3.6.0/src/struphy/propagators/poisson_solve.py +204 -0
  227. struphy-3.6.0/src/struphy/propagators/pressure_coupling_6d.py +445 -0
  228. struphy-3.6.0/src/struphy/propagators/push_guiding_center_bx_estar.py +549 -0
  229. struphy-3.6.0/src/struphy/propagators/push_guiding_center_parallel.py +585 -0
  230. struphy-3.6.0/src/struphy/propagators/push_v_in_force_field.py +199 -0
  231. struphy-3.6.0/src/struphy/propagators/push_vxb.py +194 -0
  232. struphy-3.6.0/src/struphy/propagators/shear_alfven_curl_curl_propagator.py +469 -0
  233. struphy-3.6.0/src/struphy/propagators/shear_alfven_current_coupling_5d.py +479 -0
  234. struphy-3.6.0/src/struphy/propagators/shear_alfven_propagator.py +358 -0
  235. struphy-3.6.0/src/struphy/propagators/sound_wave_linear.py +279 -0
  236. struphy-3.6.0/src/struphy/propagators/tests/test_background_current.py +74 -0
  237. struphy-3.6.0/src/struphy/propagators/tests/test_background_pressure_gradient.py +88 -0
  238. struphy-3.6.0/src/struphy/propagators/tests/test_current_coupling_5d.py +332 -0
  239. struphy-3.6.0/src/struphy/propagators/tests/test_drift_kinetic_maxwell_coupling.py +311 -0
  240. struphy-3.6.0/src/struphy/propagators/tests/test_magnetosonic.py +115 -0
  241. struphy-3.6.0/src/struphy/propagators/tests/test_matrix_free_6d.py +302 -0
  242. struphy-3.6.0/src/struphy/propagators/tests/test_maxwell_weak_ampere.py +140 -0
  243. struphy-3.6.0/src/struphy/propagators/tests/test_push_guiding_center_e_field.py +98 -0
  244. struphy-3.6.0/src/struphy/propagators/tests/test_push_guiding_center_full_b.py +106 -0
  245. struphy-3.6.0/src/struphy/propagators/tests/test_shear_alfven.py +132 -0
  246. struphy-3.6.0/src/struphy/propagators/tests/test_shear_alfven_curl_curl.py +231 -0
  247. struphy-3.6.0/src/struphy/propagators/tests/test_sound_wave_linear.py +280 -0
  248. struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_dissipative.py +111 -0
  249. struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_hdiv.py +123 -0
  250. struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_midpoint.py +167 -0
  251. struphy-3.6.0/src/struphy/propagators/tests/test_variational_qb_evolve.py +52 -0
  252. struphy-3.6.0/src/struphy/propagators/tests/test_variational_schur_precond.py +67 -0
  253. struphy-3.6.0/src/struphy/propagators/tests/test_vlasov_maxwell_coupling.py +326 -0
  254. struphy-3.6.0/src/struphy/propagators/variational_alfven_evolve.py +450 -0
  255. struphy-3.6.0/src/struphy/propagators/variational_density_evolve.py +680 -0
  256. struphy-3.6.0/src/struphy/propagators/variational_entropy_evolve.py +489 -0
  257. struphy-3.6.0/src/struphy/propagators/variational_linear_alfven_evolve.py +380 -0
  258. struphy-3.6.0/src/struphy/propagators/variational_linear_base.py +147 -0
  259. struphy-3.6.0/src/struphy/propagators/variational_linear_sound_evolve.py +451 -0
  260. struphy-3.6.0/src/struphy/propagators/variational_mag_field_evolve.py +441 -0
  261. struphy-3.6.0/src/struphy/propagators/variational_momentum_advection.py +321 -0
  262. struphy-3.6.0/src/struphy/propagators/variational_pb_evolve.py +718 -0
  263. struphy-3.6.0/src/struphy/propagators/variational_qb_evolve.py +785 -0
  264. struphy-3.6.0/src/struphy/propagators/variational_resistivity.py +856 -0
  265. struphy-3.6.0/src/struphy/propagators/variational_sound_evolve.py +441 -0
  266. struphy-3.6.0/src/struphy/propagators/variational_viscosity.py +1007 -0
  267. struphy-3.6.0/src/struphy/propagators/vlasov_ampere_coupling.py +325 -0
  268. struphy-3.6.0/src/struphy/propagators/vlasov_maxwell_coupling.py +569 -0
  269. struphy-3.6.0/src/struphy/simulation/sim.py +2454 -0
  270. struphy-3.6.0/src/struphy/simulation/tests/test_compile_cuda_kernels.py +247 -0
  271. struphy-3.6.0/src/struphy/simulation/tests/test_estimate_mem.py +165 -0
  272. struphy-3.6.0/src/struphy/simulation/tests/test_output.py +523 -0
  273. struphy-3.6.0/src/struphy/utils/clone_config.py +278 -0
  274. struphy-3.6.0/src/struphy/utils/docstring_converter.py +1327 -0
  275. struphy-3.6.0/src/struphy/utils/utils.py +261 -0
  276. struphy-3.6.0/src/struphy.egg-info/PKG-INFO +300 -0
  277. struphy-3.6.0/src/struphy.egg-info/SOURCES.txt +915 -0
  278. struphy-3.6.0/src/struphy.egg-info/requires.txt +85 -0
  279. struphy-3.5.0/PKG-INFO +0 -298
  280. struphy-3.5.0/README.md +0 -187
  281. struphy-3.5.0/pyproject.toml +0 -189
  282. struphy-3.5.0/src/struphy/agent_guides/skills/postprocess-simulation/SKILL.md +0 -101
  283. struphy-3.5.0/src/struphy/agent_guides/skills/setup-simulation/SKILL.md +0 -159
  284. struphy-3.5.0/src/struphy/api/models/__init__.py +0 -97
  285. struphy-3.5.0/src/struphy/conftest.py +0 -59
  286. struphy-3.5.0/src/struphy/console/params.py +0 -69
  287. struphy-3.5.0/src/struphy/console/test.py +0 -178
  288. struphy-3.5.0/src/struphy/feec/basis_projection_ops.py +0 -2435
  289. struphy-3.5.0/src/struphy/feec/kernels/kernel_3d_mat/__init__.py +0 -16
  290. struphy-3.5.0/src/struphy/feec/linear_operators.py +0 -210
  291. struphy-3.5.0/src/struphy/feec/mass.py +0 -3938
  292. struphy-3.5.0/src/struphy/feec/preconditioner.py +0 -2871
  293. struphy-3.5.0/src/struphy/feec/psydac_derham.py +0 -4160
  294. struphy-3.5.0/src/struphy/feec/tests/test_field_init.py +0 -1463
  295. struphy-3.5.0/src/struphy/feec/tests/test_local_projectors.py +0 -1618
  296. struphy-3.5.0/src/struphy/feec/tests/test_mass_matrices.py +0 -1817
  297. struphy-3.5.0/src/struphy/feec/tests/test_mass_reassembly.py +0 -73
  298. struphy-3.5.0/src/struphy/feec/tests/test_preconditioner_transpose.py +0 -125
  299. struphy-3.5.0/src/struphy/feec/variational_utilities.py +0 -1551
  300. struphy-3.5.0/src/struphy/geometry/domains/colella/__init__.py +0 -18
  301. struphy-3.5.0/src/struphy/geometry/domains/cuboid/__init__.py +0 -18
  302. struphy-3.5.0/src/struphy/geometry/domains/desc_unit/__init__.py +0 -18
  303. struphy-3.5.0/src/struphy/geometry/domains/gvec_unit/__init__.py +0 -18
  304. struphy-3.5.0/src/struphy/geometry/domains/hollow_cylinder/__init__.py +0 -18
  305. struphy-3.5.0/src/struphy/geometry/domains/hollow_torus/__init__.py +0 -18
  306. struphy-3.5.0/src/struphy/geometry/domains/iga_polar_cylinder/__init__.py +0 -18
  307. struphy-3.5.0/src/struphy/geometry/domains/iga_polar_torus/__init__.py +0 -18
  308. struphy-3.5.0/src/struphy/geometry/domains/orthogonal/__init__.py +0 -18
  309. struphy-3.5.0/src/struphy/geometry/domains/powered_elliptic_cylinder/__init__.py +0 -18
  310. struphy-3.5.0/src/struphy/geometry/domains/shafranov_dshaped_cylinder/__init__.py +0 -20
  311. struphy-3.5.0/src/struphy/geometry/domains/shafranov_shift_cylinder/__init__.py +0 -18
  312. struphy-3.5.0/src/struphy/geometry/domains/shafranov_sqrt_cylinder/__init__.py +0 -18
  313. struphy-3.5.0/src/struphy/geometry/domains/tokamak/__init__.py +0 -18
  314. struphy-3.5.0/src/struphy/geometry/tests/test_domain.py +0 -1268
  315. struphy-3.5.0/src/struphy/initial/perturbations.py +0 -2531
  316. struphy-3.5.0/src/struphy/io/options.py +0 -409
  317. struphy-3.5.0/src/struphy/kernel_arguments/pusher_args.cuh +0 -50
  318. struphy-3.5.0/src/struphy/kernel_arguments/pusher_args_cuda.py +0 -149
  319. struphy-3.5.0/src/struphy/kinetic_background/maxwellians.py +0 -857
  320. struphy-3.5.0/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -1798
  321. struphy-3.5.0/src/struphy/linear_algebra/schur_solver.py +0 -414
  322. struphy-3.5.0/src/struphy/models/__init__.py +0 -156
  323. struphy-3.5.0/src/struphy/models/base.py +0 -1226
  324. struphy-3.5.0/src/struphy/models/cold_plasma.py +0 -241
  325. struphy-3.5.0/src/struphy/models/cold_plasma_vlasov.py +0 -378
  326. struphy-3.5.0/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +0 -345
  327. struphy-3.5.0/src/struphy/models/guiding_center.py +0 -213
  328. struphy-3.5.0/src/struphy/models/incompressible_navier_stokes_sph.py +0 -275
  329. struphy-3.5.0/src/struphy/models/linear_mhd.py +0 -280
  330. struphy-3.5.0/src/struphy/models/linear_mhd_driftkinetic_cc.py +0 -379
  331. struphy-3.5.0/src/struphy/models/linear_mhd_vlasov_cc.py +0 -336
  332. struphy-3.5.0/src/struphy/models/linear_mhd_vlasov_pc.py +0 -308
  333. struphy-3.5.0/src/struphy/models/linear_vlasov_ampere_one_species.py +0 -375
  334. struphy-3.5.0/src/struphy/models/linear_vlasov_maxwell_one_species.py +0 -298
  335. struphy-3.5.0/src/struphy/models/maxwell.py +0 -160
  336. struphy-3.5.0/src/struphy/models/pressure_less_sph.py +0 -209
  337. struphy-3.5.0/src/struphy/models/scalars.py +0 -418
  338. struphy-3.5.0/src/struphy/models/shear_alfven.py +0 -187
  339. struphy-3.5.0/src/struphy/models/shear_alfven_curl_curl.py +0 -208
  340. struphy-3.5.0/src/struphy/models/shear_alfven_curl_curl_with_proj.py +0 -79
  341. struphy-3.5.0/src/struphy/models/species.py +0 -461
  342. struphy-3.5.0/src/struphy/models/tests/default_params/test_models.py +0 -115
  343. struphy-3.5.0/src/struphy/models/tests/gpu_e2e.py +0 -255
  344. struphy-3.5.0/src/struphy/models/tests/test_diagnostics_on_device.py +0 -346
  345. struphy-3.5.0/src/struphy/models/tests/test_examples.py +0 -75
  346. struphy-3.5.0/src/struphy/models/tests/test_gpu_LinearVlasovAmpereOneSpecies.py +0 -194
  347. struphy-3.5.0/src/struphy/models/tests/test_gpu_VlasovAmpereOneSpecies.py +0 -217
  348. struphy-3.5.0/src/struphy/models/tests/test_scalars.py +0 -219
  349. struphy-3.5.0/src/struphy/models/tests/test_variational_dissipation.py +0 -48
  350. struphy-3.5.0/src/struphy/models/tests/utils_testing.py +0 -161
  351. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_IncompressibleNavierStokesSPH.py +0 -483
  352. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_LinearMHD.py +0 -151
  353. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_LinearVlasovAmpereOneSpecies.py +0 -271
  354. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_Maxwell.py +0 -281
  355. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +0 -1039
  356. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +0 -380
  357. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellOneSpecies.py +0 -120
  358. struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovPoissonAdiabaticPauli.py +0 -248
  359. struphy-3.5.0/src/struphy/models/utils.py +0 -75
  360. struphy-3.5.0/src/struphy/models/variational_compressible_fluid.py +0 -259
  361. struphy-3.5.0/src/struphy/models/visco_resistive_deltaf_mhd.py +0 -328
  362. struphy-3.5.0/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +0 -328
  363. struphy-3.5.0/src/struphy/models/visco_resistive_linear_mhd.py +0 -327
  364. struphy-3.5.0/src/struphy/models/visco_resistive_linear_mhd_with_q.py +0 -321
  365. struphy-3.5.0/src/struphy/models/visco_resistive_mhd.py +0 -337
  366. struphy-3.5.0/src/struphy/models/visco_resistive_mhd_with_p.py +0 -325
  367. struphy-3.5.0/src/struphy/models/visco_resistive_mhd_with_q.py +0 -320
  368. struphy-3.5.0/src/struphy/models/viscous_euler_sph.py +0 -252
  369. struphy-3.5.0/src/struphy/models/vlasov.py +0 -172
  370. struphy-3.5.0/src/struphy/models/vlasov_ampere_one_species.py +0 -340
  371. struphy-3.5.0/src/struphy/models/vlasov_maxwell_one_species.py +0 -397
  372. struphy-3.5.0/src/struphy/models/vlasov_poisson_adiabatic.py +0 -352
  373. struphy-3.5.0/src/struphy/models/vlasov_poisson_adiabatic_pauli.py +0 -424
  374. struphy-3.5.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/__init__.py +0 -10
  375. struphy-3.5.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/cc_lin_mhd_5d_gradB_kernels.py +0 -218
  376. struphy-3.5.0/src/struphy/pic/accumulation/particles_to_grid.py +0 -768
  377. struphy-3.5.0/src/struphy/pic/base.py +0 -5280
  378. struphy-3.5.0/src/struphy/pic/particles.py +0 -1158
  379. struphy-3.5.0/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_cuda.cu +0 -62
  380. struphy-3.5.0/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_cuda.cu +0 -85
  381. struphy-3.5.0/src/struphy/pic/pushing/pusher.py +0 -451
  382. struphy-3.5.0/src/struphy/pic/pushing/pusher_utilities_kernels.cuh +0 -112
  383. struphy-3.5.0/src/struphy/pic/tests/cuda_emulation.py +0 -127
  384. struphy-3.5.0/src/struphy/pic/tests/cuda_parity_cases.py +0 -419
  385. struphy-3.5.0/src/struphy/pic/tests/test_accum_gc_gradB.py +0 -79
  386. struphy-3.5.0/src/struphy/pic/tests/test_kernel_backends.py +0 -251
  387. struphy-3.5.0/src/struphy/pic/tests/test_pole.py +0 -372
  388. struphy-3.5.0/src/struphy/pic/tests/test_sorting_device.py +0 -292
  389. struphy-3.5.0/src/struphy/post_processing/output.py +0 -2753
  390. struphy-3.5.0/src/struphy/propagators/__init__.py +0 -167
  391. struphy-3.5.0/src/struphy/propagators/curl_curl_solve.py +0 -400
  392. struphy-3.5.0/src/struphy/propagators/current_coupling_5d_curlb.py +0 -325
  393. struphy-3.5.0/src/struphy/propagators/current_coupling_5d_density.py +0 -244
  394. struphy-3.5.0/src/struphy/propagators/current_coupling_5d_gradb.py +0 -864
  395. struphy-3.5.0/src/struphy/propagators/current_coupling_6d_current.py +0 -310
  396. struphy-3.5.0/src/struphy/propagators/current_coupling_6d_density.py +0 -300
  397. struphy-3.5.0/src/struphy/propagators/efield_weights_coupling.py +0 -313
  398. struphy-3.5.0/src/struphy/propagators/gyrokinetic_poisson_solve.py +0 -215
  399. struphy-3.5.0/src/struphy/propagators/implicit_diffusion.py +0 -655
  400. struphy-3.5.0/src/struphy/propagators/magnetosonic.py +0 -249
  401. struphy-3.5.0/src/struphy/propagators/maxwell_weak_ampere.py +0 -252
  402. struphy-3.5.0/src/struphy/propagators/poisson_solve.py +0 -204
  403. struphy-3.5.0/src/struphy/propagators/pressure_coupling_6d.py +0 -389
  404. struphy-3.5.0/src/struphy/propagators/push_guiding_center_bx_estar.py +0 -526
  405. struphy-3.5.0/src/struphy/propagators/push_guiding_center_parallel.py +0 -552
  406. struphy-3.5.0/src/struphy/propagators/push_v_in_force_field.py +0 -194
  407. struphy-3.5.0/src/struphy/propagators/push_vxb.py +0 -167
  408. struphy-3.5.0/src/struphy/propagators/shear_alfven_curl_curl_propagator.py +0 -443
  409. struphy-3.5.0/src/struphy/propagators/shear_alfven_current_coupling_5d.py +0 -471
  410. struphy-3.5.0/src/struphy/propagators/shear_alfven_propagator.py +0 -349
  411. struphy-3.5.0/src/struphy/propagators/tests/test_current_coupling_5d.py +0 -61
  412. struphy-3.5.0/src/struphy/propagators/tests/test_magnetosonic.py +0 -42
  413. struphy-3.5.0/src/struphy/propagators/tests/test_shear_alfven.py +0 -93
  414. struphy-3.5.0/src/struphy/propagators/tests/test_shear_alfven_curl_curl.py +0 -202
  415. struphy-3.5.0/src/struphy/propagators/tests/test_variational_qb_evolve.py +0 -44
  416. struphy-3.5.0/src/struphy/propagators/variational_density_evolve.py +0 -627
  417. struphy-3.5.0/src/struphy/propagators/variational_entropy_evolve.py +0 -468
  418. struphy-3.5.0/src/struphy/propagators/variational_mag_field_evolve.py +0 -418
  419. struphy-3.5.0/src/struphy/propagators/variational_momentum_advection.py +0 -295
  420. struphy-3.5.0/src/struphy/propagators/variational_pb_evolve.py +0 -675
  421. struphy-3.5.0/src/struphy/propagators/variational_qb_evolve.py +0 -699
  422. struphy-3.5.0/src/struphy/propagators/variational_resistivity.py +0 -820
  423. struphy-3.5.0/src/struphy/propagators/variational_viscosity.py +0 -837
  424. struphy-3.5.0/src/struphy/propagators/vlasov_ampere_coupling.py +0 -243
  425. struphy-3.5.0/src/struphy/simulation/sim.py +0 -2435
  426. struphy-3.5.0/src/struphy/simulation/tests/test_compile_cuda_kernels.py +0 -247
  427. struphy-3.5.0/src/struphy/simulation/tests/test_estimate_mem.py +0 -165
  428. struphy-3.5.0/src/struphy/simulation/tests/test_output.py +0 -478
  429. struphy-3.5.0/src/struphy/utils/clone_config.py +0 -274
  430. struphy-3.5.0/src/struphy/utils/docstring_converter.py +0 -1371
  431. struphy-3.5.0/src/struphy/utils/utils.py +0 -261
  432. struphy-3.5.0/src/struphy.egg-info/PKG-INFO +0 -298
  433. struphy-3.5.0/src/struphy.egg-info/SOURCES.txt +0 -793
  434. struphy-3.5.0/src/struphy.egg-info/requires.txt +0 -85
  435. {struphy-3.5.0 → struphy-3.6.0}/LICENSE +0 -0
  436. {struphy-3.5.0 → struphy-3.6.0}/setup.cfg +0 -0
  437. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/__init__.py +0 -0
  438. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/agent_guides/USAGE.md +0 -0
  439. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/__init__.py +0 -0
  440. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/compiler/__init__.py +0 -0
  441. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/domains/__init__.py +0 -0
  442. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/equils/__init__.py +0 -0
  443. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/grids/__init__.py +0 -0
  444. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/linear_algebra/__init__.py +0 -0
  445. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/maxwellians/__init__.py +0 -0
  446. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/ode/__init__.py +0 -0
  447. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/options/__init__.py +0 -0
  448. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/particles/__init__.py +0 -0
  449. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/perturbations/__init__.py +0 -0
  450. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/post_processing/__init__.py +0 -0
  451. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/simulation/__init__.py +0 -0
  452. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/tests/__init__.py +0 -0
  453. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/tests/test_public_api.py +0 -0
  454. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/__init__.py +0 -0
  455. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines.py +0 -0
  456. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines_kernels.cuh +0 -0
  457. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines_kernels.py +0 -0
  458. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
  459. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_2d.cuh +0 -0
  460. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
  461. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_3d.cuh +0 -0
  462. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
  463. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/__init__.py +0 -0
  464. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/__init__.py +0 -0
  465. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/eval_spline_mpi_markers_cuda.cu +0 -0
  466. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/eval_spline_mpi_markers_kernels.py +0 -0
  467. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/__init__.py +0 -0
  468. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/eval_spline_mpi_matrix_cuda.cu +0 -0
  469. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/eval_spline_mpi_matrix_kernels.py +0 -0
  470. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/__init__.py +0 -0
  471. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/eval_spline_mpi_sparse_meshgrid_cuda.cu +0 -0
  472. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/eval_spline_mpi_sparse_meshgrid_kernels.py +0 -0
  473. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/__init__.py +0 -0
  474. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/eval_spline_mpi_tensor_product_fixed_cuda.cu +0 -0
  475. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/eval_spline_mpi_tensor_product_fixed_kernels.py +0 -0
  476. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
  477. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/__init__.py +0 -0
  478. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
  479. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
  480. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_evaluation_cuda.py +0 -0
  481. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/compile_struphy.mk +0 -0
  482. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/__init__.py +0 -0
  483. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/agents.py +0 -0
  484. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/build_init_files.py +0 -0
  485. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/compile.py +0 -0
  486. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/likwid.py +0 -0
  487. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/main.py +0 -0
  488. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/output.py +0 -0
  489. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/parsers.py +0 -0
  490. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/profile.py +0 -0
  491. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_agents.py +0 -0
  492. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_compile.py +0 -0
  493. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_params_profile.py +0 -0
  494. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_state.py +0 -0
  495. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/xx_test_console.py +0 -0
  496. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dependencies.py +0 -0
  497. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/diagnostics/tests/__init__.py +0 -0
  498. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/__init__.py +0 -0
  499. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/analytic.py +0 -0
  500. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/base.py +0 -0
  501. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/tests/__init__.py +0 -0
  502. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/tests/test_analytic.py +0 -0
  503. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/utilities.py +0 -0
  504. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
  505. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/_draw_parallel.py +0 -0
  506. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/restelli2018/__init__.py +0 -0
  507. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/restelli2018/callables.py +0 -0
  508. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/__init__.py +0 -0
  509. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
  510. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/boundary_mass.py +0 -0
  511. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/__init__.py +0 -0
  512. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_1d/__init__.py +0 -0
  513. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_1d/assemble_dofs_for_weighted_basisfuns_1d_kernels.py +0 -0
  514. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_2d/__init__.py +0 -0
  515. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_2d/assemble_dofs_for_weighted_basisfuns_2d_kernels.py +0 -0
  516. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_3d/__init__.py +0 -0
  517. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_3d/assemble_dofs_for_weighted_basisfuns_3d_kernels.py +0 -0
  518. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/hybrid_weight/__init__.py +0 -0
  519. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/hybrid_weight/hybrid_weight_kernels.py +0 -0
  520. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_eval/__init__.py +0 -0
  521. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_eval/kernel_1d_eval_kernels.py +0 -0
  522. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_mat/__init__.py +0 -0
  523. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_mat/kernel_1d_mat_kernels.py +0 -0
  524. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_vec/__init__.py +0 -0
  525. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_vec/kernel_1d_vec_kernels.py +0 -0
  526. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_eval/__init__.py +0 -0
  527. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_eval/kernel_2d_eval_kernels.py +0 -0
  528. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_mat/__init__.py +0 -0
  529. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_mat/kernel_2d_mat_kernels.py +0 -0
  530. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_vec/__init__.py +0 -0
  531. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_vec/kernel_2d_vec_kernels.py +0 -0
  532. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_diag/__init__.py +0 -0
  533. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_diag/kernel_3d_diag_kernels.py +0 -0
  534. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_eval/__init__.py +0 -0
  535. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_eval/kernel_3d_eval_kernels.py +0 -0
  536. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_mat/kernel_3d_mat_kernels.py +0 -0
  537. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_matrixfree/__init__.py +0 -0
  538. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_matrixfree/kernel_3d_matrixfree_kernels.py +0 -0
  539. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_vec/__init__.py +0 -0
  540. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_vec/kernel_3d_vec_kernels.py +0 -0
  541. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_mat/__init__.py +0 -0
  542. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_mat/surface_kernel_3d_mat_kernels.py +0 -0
  543. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_vec/__init__.py +0 -0
  544. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_vec/surface_kernel_3d_vec_kernels.py +0 -0
  545. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kronecker_block.py +0 -0
  546. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/__init__.py +0 -0
  547. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/__init__.py +0 -0
  548. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component/__init__.py +0 -0
  549. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component/get_dofs_local_1_form_ec_component_kernels.py +0 -0
  550. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component_weighted/__init__.py +0 -0
  551. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component_weighted/get_dofs_local_1_form_ec_component_weighted_kernels.py +0 -0
  552. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component/__init__.py +0 -0
  553. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component/get_dofs_local_2_form_ec_component_kernels.py +0 -0
  554. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component_weighted/__init__.py +0 -0
  555. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component_weighted/get_dofs_local_2_form_ec_component_weighted_kernels.py +0 -0
  556. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form/__init__.py +0 -0
  557. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form/get_dofs_local_3_form_kernels.py +0 -0
  558. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form_weighted/__init__.py +0 -0
  559. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form_weighted/get_dofs_local_3_form_weighted_kernels.py +0 -0
  560. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop/__init__.py +0 -0
  561. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop/solve_local_main_loop_kernels.py +0 -0
  562. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop_weighted/__init__.py +0 -0
  563. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop_weighted/solve_local_main_loop_weighted_kernels.py +0 -0
  564. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors_kernels.py +0 -0
  565. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/memory.py +0 -0
  566. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/projectors.py +0 -0
  567. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/__init__.py +0 -0
  568. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_basis_ops.py +0 -0
  569. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_boundary_integrals.py +0 -0
  570. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_derham.py +0 -0
  571. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_derham_gpu.py +0 -0
  572. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_estimate_mem.py +0 -0
  573. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_eval_field.py +0 -0
  574. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_hiptmair_xu.py +0 -0
  575. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_kronecker_block.py +0 -0
  576. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
  577. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_local_matrix_vector.py +0 -0
  578. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
  579. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_preconditioner_cupy.py +0 -0
  580. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_stiffness_preconditioner.py +0 -0
  581. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
  582. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
  583. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_utilities_kernels.py +0 -0
  584. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_variational_utilities.py +0 -0
  585. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_weighted_average_projection.py +0 -0
  586. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
  587. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities.py +0 -0
  588. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities_kernels.py +0 -0
  589. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities_local_projectors.py +0 -0
  590. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/__init__.py +0 -0
  591. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/base.py +0 -0
  592. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
  593. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/base.py +0 -0
  594. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
  595. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/equils.py +0 -0
  596. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
  597. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
  598. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
  599. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
  600. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
  601. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
  602. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
  603. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
  604. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
  605. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
  606. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
  607. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
  608. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
  609. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
  610. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
  611. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
  612. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
  613. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
  614. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
  615. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/projected_equils.py +0 -0
  616. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/__init__.py +0 -0
  617. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_adhoc_tokamak_equils.py +0 -0
  618. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_axisymm_gradB.py +0 -0
  619. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
  620. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_equils_cupy.py +0 -0
  621. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
  622. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_gvec_equil.py +0 -0
  623. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
  624. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
  625. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/__init__.py +0 -0
  626. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/base.py +0 -0
  627. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/__init__.py +0 -0
  628. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella.py +0 -0
  629. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella_cuda.cuh +0 -0
  630. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella_kernels.py +0 -0
  631. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/constants_cuda.cuh +0 -0
  632. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid.py +0 -0
  633. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid_cuda.cuh +0 -0
  634. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid_kernels.py +0 -0
  635. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/desc_unit/desc_unit.py +0 -0
  636. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/gvec_unit/gvec_unit.py +0 -0
  637. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder.py +0 -0
  638. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder_cuda.cuh +0 -0
  639. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder_kernels.py +0 -0
  640. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus.py +0 -0
  641. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus_cuda.cuh +0 -0
  642. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus_kernels.py +0 -0
  643. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/iga_polar_cylinder/iga_polar_cylinder.py +0 -0
  644. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/iga_polar_torus/iga_polar_torus.py +0 -0
  645. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal.py +0 -0
  646. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal_cuda.cuh +0 -0
  647. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal_kernels.py +0 -0
  648. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder.py +0 -0
  649. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder_cuda.cuh +0 -0
  650. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder_kernels.py +0 -0
  651. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder.py +0 -0
  652. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder_cuda.cuh +0 -0
  653. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder_kernels.py +0 -0
  654. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder.py +0 -0
  655. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder_cuda.cuh +0 -0
  656. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder_kernels.py +0 -0
  657. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder.py +0 -0
  658. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder_cuda.cuh +0 -0
  659. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder_kernels.py +0 -0
  660. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/tokamak/tokamak.py +0 -0
  661. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/evaluation_kernels.cuh +0 -0
  662. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/evaluation_kernels.py +0 -0
  663. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/__init__.py +0 -0
  664. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/__init__.py +0 -0
  665. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/kernel_evaluate_cuda.cu +0 -0
  666. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/kernel_evaluate_kernels.py +0 -0
  667. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/__init__.py +0 -0
  668. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/kernel_evaluate_pic_cuda.cu +0 -0
  669. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/kernel_evaluate_pic_kernels.py +0 -0
  670. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/__init__.py +0 -0
  671. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/kernel_pullpush_cuda.cu +0 -0
  672. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/kernel_pullpush_kernels.py +0 -0
  673. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/__init__.py +0 -0
  674. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/kernel_pullpush_pic_cuda.cu +0 -0
  675. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/kernel_pullpush_pic_kernels.py +0 -0
  676. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/map_coef/__init__.py +0 -0
  677. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/spline_mappings_kernels.cuh +0 -0
  678. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/spline_mappings_kernels.py +0 -0
  679. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/tests/__init__.py +0 -0
  680. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/tests/spline_mapping_cases.py +0 -0
  681. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/transform_kernels.cuh +0 -0
  682. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/transform_kernels.py +0 -0
  683. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/utilities.py +0 -0
  684. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/utilities_kernels.py +0 -0
  685. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/__init__.py +0 -0
  686. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/base.py +0 -0
  687. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/eigenfunctions.py +0 -0
  688. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/tests/__init__.py +0 -0
  689. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/tests/test_init_perturbations.py +0 -0
  690. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/utilities.py +0 -0
  691. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/__init__.py +0 -0
  692. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/output_handling.py +0 -0
  693. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/setup.py +0 -0
  694. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/tests/__init__.py +0 -0
  695. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/tests/test_output_handling.py +0 -0
  696. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/__init__.py +0 -0
  697. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/array_view.cuh +0 -0
  698. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args.cuh +0 -0
  699. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args_cuda.py +0 -0
  700. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
  701. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
  702. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args.cuh +0 -0
  703. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args_cuda.py +0 -0
  704. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args_kernels.py +0 -0
  705. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/__init__.py +0 -0
  706. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/base.py +0 -0
  707. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/moment_functions.py +0 -0
  708. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/tests/__init__.py +0 -0
  709. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/tests/test_base.py +0 -0
  710. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/__init__.py +0 -0
  711. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kernels.cuh +0 -0
  712. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
  713. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kron.py +0 -0
  714. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/__init__.py +0 -0
  715. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/coarsen.py +0 -0
  716. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/hierarchy.py +0 -0
  717. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/preconditioner.py +0 -0
  718. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/smoothers.py +0 -0
  719. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/transfer.py +0 -0
  720. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/saddle_point.py +0 -0
  721. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/solver.py +0 -0
  722. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
  723. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
  724. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/__init__.py +0 -0
  725. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_coarsen.py +0 -0
  726. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_solver.py +0 -0
  727. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_transfer.py +0 -0
  728. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +0 -0
  729. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -0
  730. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
  731. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
  732. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/curl_curl.py +0 -0
  733. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/deterministic_particle_diffusion.py +0 -0
  734. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/gyrokinetic_poisson.py +0 -0
  735. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/hasegawa_wakatani.py +0 -0
  736. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/linear_extended_mh_duniform.py +0 -0
  737. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/poisson.py +0 -0
  738. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/random_particle_diffusion.py +0 -0
  739. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/__init__.py +0 -0
  740. {struphy-3.5.0/src/struphy/models/tests/default_params → struphy-3.6.0/src/struphy/models/tests/regression}/__init__.py +0 -0
  741. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/test_estimate_mem.py +0 -0
  742. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/test_hasegawa_wakatani.py +0 -0
  743. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/__init__.py +0 -0
  744. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_CurlCurl.py +0 -0
  745. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_Poisson.py +0 -0
  746. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_VlasovPoissonAdiabatic.py +0 -0
  747. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/toy_drift.py +0 -0
  748. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/two_fluid_quasi_neutral_toy.py +0 -0
  749. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variables.py +0 -0
  750. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variational_barotropic_fluid.py +0 -0
  751. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variational_pressureless_fluid.py +0 -0
  752. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/viscous_fluid.py +0 -0
  753. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/__init__.py +0 -0
  754. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/solvers.py +0 -0
  755. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/__init__.py +0 -0
  756. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/test_butcher.py +0 -0
  757. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/test_ode_feec.py +0 -0
  758. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/utils.py +0 -0
  759. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/particles/__init__.py +0 -0
  760. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/particles/parameters.py +0 -0
  761. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/physics/__init__.py +0 -0
  762. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/physics/physics.py +0 -0
  763. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/__init__.py +0 -0
  764. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/__init__.py +0 -0
  765. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filler_kernels.cuh +0 -0
  766. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
  767. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filter.py +0 -0
  768. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
  769. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/__init__.py +0 -0
  770. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D/__init__.py +0 -0
  771. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D/cc_lin_mhd_5d_D_kernels.py +0 -0
  772. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_M/__init__.py +0 -0
  773. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_M/cc_lin_mhd_5d_M_kernels.py +0 -0
  774. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb/__init__.py +0 -0
  775. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb/cc_lin_mhd_5d_curlb_kernels.py +0 -0
  776. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg/__init__.py +0 -0
  777. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg/cc_lin_mhd_5d_gradB_dg_kernels.py +0 -0
  778. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg_init/__init__.py +0 -0
  779. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg_init/cc_lin_mhd_5d_gradB_dg_init_kernels.py +0 -0
  780. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1/__init__.py +0 -0
  781. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1/cc_lin_mhd_6d_1_kernels.py +0 -0
  782. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2/__init__.py +0 -0
  783. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2/cc_lin_mhd_6d_2_kernels.py +0 -0
  784. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/__init__.py +0 -0
  785. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/charge_density_0form_cuda.cu +0 -0
  786. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/charge_density_0form_kernels.py +0 -0
  787. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/div_u_weak_1form/__init__.py +0 -0
  788. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/div_u_weak_1form/div_u_weak_1form_kernels.py +0 -0
  789. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_density_0form/__init__.py +0 -0
  790. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_density_0form/gc_density_0form_kernels.py +0 -0
  791. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_mag_density_0form/__init__.py +0 -0
  792. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_mag_density_0form/gc_mag_density_0form_kernels.py +0 -0
  793. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/__init__.py +0 -0
  794. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/linear_vlasov_ampere_cuda.cu +0 -0
  795. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/linear_vlasov_ampere_kernels.py +0 -0
  796. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d/__init__.py +0 -0
  797. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d/pc_lin_mhd_6d_kernels.py +0 -0
  798. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_full/__init__.py +0 -0
  799. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_full/pc_lin_mhd_6d_full_kernels.py +0 -0
  800. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/__init__.py +0 -0
  801. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/vlasov_maxwell_cuda.cu +0 -0
  802. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/vlasov_maxwell_kernels.py +0 -0
  803. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.cuh +0 -0
  804. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
  805. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/__init__.py +0 -0
  806. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/__init__.py +0 -0
  807. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/canonical_kinetic_particles/__init__.py +0 -0
  808. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/canonical_kinetic_particles/canonical_kinetic_particles_kernels.py +0 -0
  809. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_5d/__init__.py +0 -0
  810. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_5d/eval_canonical_toroidal_moment_5d_kernels.py +0 -0
  811. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_6d/__init__.py +0 -0
  812. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_6d/eval_canonical_toroidal_moment_6d_kernels.py +0 -0
  813. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_energy_5d/__init__.py +0 -0
  814. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_energy_5d/eval_energy_5d_kernels.py +0 -0
  815. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_gradB_ediff/__init__.py +0 -0
  816. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_gradB_ediff/eval_gradB_ediff_kernels.py +0 -0
  817. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_guiding_center_from_6d/__init__.py +0 -0
  818. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_guiding_center_from_6d/eval_guiding_center_from_6d_kernels.py +0 -0
  819. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_background_energy/__init__.py +0 -0
  820. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_background_energy/eval_magnetic_background_energy_kernels.py +0 -0
  821. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_energy_PBb/__init__.py +0 -0
  822. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_energy_PBb/eval_magnetic_energy_PBb_kernels.py +0 -0
  823. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_moment_5d/__init__.py +0 -0
  824. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_moment_5d/eval_magnetic_moment_5d_kernels.py +0 -0
  825. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/thermal_energy/__init__.py +0 -0
  826. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/thermal_energy/thermal_energy_kernels.py +0 -0
  827. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/__init__.py +0 -0
  828. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_and_sort_particles/__init__.py +0 -0
  829. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_and_sort_particles/box_and_sort_particles_kernels.py +0 -0
  830. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_particles/__init__.py +0 -0
  831. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_particles/box_particles_kernels.py +0 -0
  832. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/fill_boxes/__init__.py +0 -0
  833. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/fill_boxes/fill_boxes_kernels.py +0 -0
  834. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/sort_and_fill_boxes/__init__.py +0 -0
  835. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/sort_and_fill_boxes/sort_and_fill_boxes_kernels.py +0 -0
  836. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/marker_layout.py +0 -0
  837. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/__init__.py +0 -0
  838. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernel_setup.py +0 -0
  839. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/__init__.py +0 -0
  840. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_2form/__init__.py +0 -0
  841. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_2form/bstar_2form_kernels.py +0 -0
  842. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/__init__.py +0 -0
  843. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/bstar_parallel_3form_cuda.cu +0 -0
  844. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/bstar_parallel_3form_kernels.py +0 -0
  845. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/driftkinetic_hamiltonian/__init__.py +0 -0
  846. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/driftkinetic_hamiltonian/driftkinetic_hamiltonian_kernels.py +0 -0
  847. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/grad_driftkinetic_hamiltonian/__init__.py +0 -0
  848. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/grad_driftkinetic_hamiltonian/grad_driftkinetic_hamiltonian_kernels.py +0 -0
  849. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_H1vec/__init__.py +0 -0
  850. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_H1vec/push_bxu_H1vec_kernels.py +0 -0
  851. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hcurl/__init__.py +0 -0
  852. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hcurl/push_bxu_Hcurl_kernels.py +0 -0
  853. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv/__init__.py +0 -0
  854. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv/push_bxu_Hdiv_kernels.py +0 -0
  855. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv_pauli/__init__.py +0 -0
  856. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv_pauli/push_bxu_Hdiv_pauli_kernels.py +0 -0
  857. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_deterministic_diffusion_stage/__init__.py +0 -0
  858. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_deterministic_diffusion_stage/push_deterministic_diffusion_stage_kernels.py +0 -0
  859. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_eta_stage/__init__.py +0 -0
  860. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_kernels.py +0 -0
  861. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order/__init__.py +0 -0
  862. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order/push_gc_Bstar_discrete_gradient_1st_order_kernels.py +0 -0
  863. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order_newton/__init__.py +0 -0
  864. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order_newton/push_gc_Bstar_discrete_gradient_1st_order_newton_kernels.py +0 -0
  865. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_2nd_order/__init__.py +0 -0
  866. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_2nd_order/push_gc_Bstar_discrete_gradient_2nd_order_kernels.py +0 -0
  867. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_explicit_multistage/__init__.py +0 -0
  868. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_explicit_multistage/push_gc_Bstar_explicit_multistage_kernels.py +0 -0
  869. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_dg_1st_order_newton/__init__.py +0 -0
  870. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_dg_1st_order_newton/push_gc_bxEstar_dg_1st_order_newton_kernels.py +0 -0
  871. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_1st_order/__init__.py +0 -0
  872. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_1st_order/push_gc_bxEstar_discrete_gradient_1st_order_kernels.py +0 -0
  873. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_2nd_order/__init__.py +0 -0
  874. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_2nd_order/push_gc_bxEstar_discrete_gradient_2nd_order_kernels.py +0 -0
  875. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_explicit_multistage/__init__.py +0 -0
  876. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_explicit_multistage/push_gc_bxEstar_explicit_multistage_kernels.py +0 -0
  877. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_H1vec/__init__.py +0 -0
  878. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_H1vec/push_gc_cc_J1_H1vec_kernels.py +0 -0
  879. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hcurl/__init__.py +0 -0
  880. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hcurl/push_gc_cc_J1_Hcurl_kernels.py +0 -0
  881. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hdiv/__init__.py +0 -0
  882. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hdiv/push_gc_cc_J1_Hdiv_kernels.py +0 -0
  883. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_Hdiv/__init__.py +0 -0
  884. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_Hdiv/push_gc_cc_J2_dg_Hdiv_kernels.py +0 -0
  885. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_init_Hdiv/__init__.py +0 -0
  886. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_init_Hdiv/push_gc_cc_J2_dg_init_Hdiv_kernels.py +0 -0
  887. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_H1vec/__init__.py +0 -0
  888. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_H1vec/push_gc_cc_J2_stage_H1vec_kernels.py +0 -0
  889. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_Hdiv/__init__.py +0 -0
  890. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_Hdiv/push_gc_cc_J2_stage_Hdiv_kernels.py +0 -0
  891. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu/__init__.py +0 -0
  892. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu/push_pc_GXu_kernels.py +0 -0
  893. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu_full/__init__.py +0 -0
  894. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu_full/push_pc_GXu_full_kernels.py +0 -0
  895. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_H1vec/__init__.py +0 -0
  896. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_H1vec/push_pc_eta_stage_H1vec_kernels.py +0 -0
  897. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hcurl/__init__.py +0 -0
  898. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hcurl/push_pc_eta_stage_Hcurl_kernels.py +0 -0
  899. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hdiv/__init__.py +0 -0
  900. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hdiv/push_pc_eta_stage_Hdiv_kernels.py +0 -0
  901. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_random_diffusion_stage/__init__.py +0 -0
  902. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_random_diffusion_stage/push_random_diffusion_stage_kernels.py +0 -0
  903. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure/__init__.py +0 -0
  904. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure/push_v_sph_pressure_kernels.py +0 -0
  905. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure_ideal_gas/__init__.py +0 -0
  906. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure_ideal_gas/push_v_sph_pressure_ideal_gas_kernels.py +0 -0
  907. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_viscosity/__init__.py +0 -0
  908. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_viscosity/push_v_viscosity_kernels.py +0 -0
  909. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/__init__.py +0 -0
  910. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/push_v_with_efield_cuda.cu +0 -0
  911. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/push_v_with_efield_kernels.py +0 -0
  912. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield_mu/__init__.py +0 -0
  913. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield_mu/push_v_with_efield_mu_kernels.py +0 -0
  914. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_analytic/__init__.py +0 -0
  915. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_kernels.py +0 -0
  916. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/__init__.py +0 -0
  917. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/push_vxb_implicit_cuda.cu +0 -0
  918. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/push_vxb_implicit_kernels.py +0 -0
  919. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/__init__.py +0 -0
  920. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/push_weights_with_efield_lin_va_cuda.cu +0 -0
  921. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/push_weights_with_efield_lin_va_kernels.py +0 -0
  922. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/__init__.py +0 -0
  923. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/reflect_cuda.cu +0 -0
  924. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/reflect_kernels.py +0 -0
  925. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_isotherm_kappa/__init__.py +0 -0
  926. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_isotherm_kappa/sph_isotherm_kappa_kernels.py +0 -0
  927. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_mean_velocity_coeffs/__init__.py +0 -0
  928. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_mean_velocity_coeffs/sph_mean_velocity_coeffs_kernels.py +0 -0
  929. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_pressure_coeffs/__init__.py +0 -0
  930. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_pressure_coeffs/sph_pressure_coeffs_kernels.py +0 -0
  931. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_viscosity_tensor/__init__.py +0 -0
  932. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_viscosity_tensor/sph_viscosity_tensor_kernels.py +0 -0
  933. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/unit_b_1form/__init__.py +0 -0
  934. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/unit_b_1form/unit_b_1form_kernels.py +0 -0
  935. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/prepare_push_cuda.cu +0 -0
  936. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
  937. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sampling_kernels.py +0 -0
  938. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sobol_seq.py +0 -0
  939. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sorting.py +0 -0
  940. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sorting_kernels.py +0 -0
  941. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/__init__.py +0 -0
  942. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/__init__.py +0 -0
  943. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_flat/__init__.py +0 -0
  944. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_flat/box_based_evaluation_flat_kernels.py +0 -0
  945. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_meshgrid/__init__.py +0 -0
  946. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_meshgrid/box_based_evaluation_meshgrid_kernels.py +0 -0
  947. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_flat/__init__.py +0 -0
  948. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_flat/naive_evaluation_flat_kernels.py +0 -0
  949. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_meshgrid/__init__.py +0 -0
  950. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_meshgrid/naive_evaluation_meshgrid_kernels.py +0 -0
  951. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph_eval_kernels.py +0 -0
  952. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph_smoothing_kernels.py +0 -0
  953. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/__init__.py +0 -0
  954. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/_bench_push_vxb_analytic.py +0 -0
  955. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/bench_marker_layout.py +0 -0
  956. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/bench_openmp_speedup.py +0 -0
  957. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/kernel_test_args.py +0 -0
  958. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_matrix_cupy.py +0 -0
  959. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_pressure_coupling.py +0 -0
  960. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
  961. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_binning.py +0 -0
  962. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_cuda_emulation.py +0 -0
  963. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_cuda_parity.py +0 -0
  964. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_device_helpers.py +0 -0
  965. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
  966. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_estimate_mem.py +0 -0
  967. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_gc_epsilon.py +0 -0
  968. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_kernel_setup.py +0 -0
  969. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_load_external.py +0 -0
  970. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_marker_layout.py +0 -0
  971. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
  972. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_neighbor_ranks.py +0 -0
  973. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_openmp.py +0 -0
  974. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pauli_particles.py +0 -0
  975. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pusher_openmp_speedup.py +0 -0
  976. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pushers.py +0 -0
  977. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_reflect.py +0 -0
  978. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_set_zero_velocity.py +0 -0
  979. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_show_distribution.py +0 -0
  980. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_sorting.py +0 -0
  981. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_sph.py +0 -0
  982. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_tesselation.py +0 -0
  983. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_utilities.py +0 -0
  984. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/utilities.py +0 -0
  985. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/utilities_kernels.py +0 -0
  986. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/__init__.py +0 -0
  987. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/basic.py +0 -0
  988. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/extraction_operators.py +0 -0
  989. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/kron_2dx1d.py +0 -0
  990. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/linear_operators.py +0 -0
  991. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/__init__.py +0 -0
  992. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_factorization_cache.py +0 -0
  993. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_polar.py +0 -0
  994. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_polar_cupy.py +0 -0
  995. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/__init__.py +0 -0
  996. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/arrays.py +0 -0
  997. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/__init__.py +0 -0
  998. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
  999. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
  1000. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
  1001. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
  1002. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
  1003. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/manifest.py +0 -0
  1004. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/__init__.py +0 -0
  1005. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
  1006. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
  1007. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/particle_diagnostics.py +0 -0
  1008. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/plot_3d.py +0 -0
  1009. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/profiling.py +0 -0
  1010. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/si.py +0 -0
  1011. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/slices.py +0 -0
  1012. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/store.py +0 -0
  1013. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/__init__.py +0 -0
  1014. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_arrays.py +0 -0
  1015. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_eval_grids.py +0 -0
  1016. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_eval_grids_mpi.py +0 -0
  1017. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_orbits_tools.py +0 -0
  1018. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_output.py +0 -0
  1019. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_particle_diagnostics.py +0 -0
  1020. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_plot_3d.py +0 -0
  1021. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_pproc.py +0 -0
  1022. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_slices.py +0 -0
  1023. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/adiabatic_phi.py +0 -0
  1024. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/adiabatic_poisson_solve.py +0 -0
  1025. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/base.py +0 -0
  1026. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/faraday_extended.py +0 -0
  1027. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/hall.py +0 -0
  1028. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/hasegawa_wakatani_step.py +0 -0
  1029. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/jxb_cold.py +0 -0
  1030. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/magnetosonic_uniform.py +0 -0
  1031. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/ohm_cold.py +0 -0
  1032. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_deterministic_diffusion.py +0 -0
  1033. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_eta.py +0 -0
  1034. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_eta_pc.py +0 -0
  1035. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_random_diffusion.py +0 -0
  1036. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_v_in_sph_pressure.py +0 -0
  1037. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_v_in_viscous_potential.py +0 -0
  1038. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/shear_alfven_b1.py +0 -0
  1039. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/__init__.py +0 -0
  1040. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_adiabatic_poisson.py +0 -0
  1041. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_curl_curl.py +0 -0
  1042. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_current_coupling_5d_options.py +0 -0
  1043. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
  1044. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_poisson.py +0 -0
  1045. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_pressure_coupling_6d.py +0 -0
  1046. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_push_random_diffusion.py +0 -0
  1047. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_time_dependent_source.py +0 -0
  1048. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_two_fluid_quasi_neutral_full.py +0 -0
  1049. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_density_evolve.py +0 -0
  1050. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_mag_field_evolve.py +0 -0
  1051. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_solver_option.py +0 -0
  1052. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/time_dependent_source.py +0 -0
  1053. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/two_fluid_quasi_neutral_full.py +0 -0
  1054. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/__init__.py +0 -0
  1055. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/base.py +0 -0
  1056. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/tests/__init__.py +0 -0
  1057. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/tests/test_sim_comm_mpi.py +0 -0
  1058. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/struphy_model_test/ColdPlasma/parameters.py +0 -0
  1059. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/topology/__init__.py +0 -0
  1060. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/topology/grids.py +0 -0
  1061. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/__init__.py +0 -0
  1062. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/compiler.py +0 -0
  1063. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/cuda_arguments.py +0 -0
  1064. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/cupy_vs_numpy.py +0 -0
  1065. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/ipython_compat.py +0 -0
  1066. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/kernel_compilation.py +0 -0
  1067. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/progress.py +0 -0
  1068. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/test_clone_config.py +0 -0
  1069. {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/test_utils.py +0 -0
  1070. {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/dependency_links.txt +0 -0
  1071. {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/entry_points.txt +0 -0
  1072. {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/top_level.txt +0 -0
struphy-3.6.0/PKG-INFO ADDED
@@ -0,0 +1,300 @@
1
+ Metadata-Version: 2.4
2
+ Name: struphy
3
+ Version: 3.6.0
4
+ Summary: Multi-model plasma physics package
5
+ Author: Max Planck Institute for Plasma Physics
6
+ Author-email: stefan.possanner@ipp.mpg.de, max.lindqvist@ipp.mpg.de, eric.sonnendruecker@ipp.mpg.de
7
+ License: Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
10
+ associated documentation files (the "Software"), to deal in the Software without restriction,
11
+ including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
12
+ and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
13
+ subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in all copies or substantial
16
+ portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
19
+ NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ Project-URL: homepage, https://struphy-hub.github.io/struphy/index.html
24
+ Project-URL: documentation, https://struphy-hub.github.io/struphy/index.html
25
+ Project-URL: repository, https://github.com/struphy-hub/struphy
26
+ Project-URL: changelog, https://github.com/struphy-hub/struphy/blob/devel/CHANGELOG.md
27
+ Project-URL: Bug Tracker, https://github.com/struphy-hub/struphy/issues
28
+ Keywords: plasma physics, fusion, numerical modeling, partial differential equations, energetic particles
29
+ Classifier: Programming Language :: Python :: 3
30
+ Requires-Python: >=3.10
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE
33
+ Requires-Dist: numpy<=2.5.0
34
+ Requires-Dist: cunumpy<=0.7.0,>=0.6.3
35
+ Requires-Dist: pyccel<=2.2.3,>=2.2.0
36
+ Requires-Dist: maybempi>=0.1.2
37
+ Requires-Dist: feectools<=0.10.0,>=0.10.0
38
+ Requires-Dist: scipy<=1.18.0
39
+ Requires-Dist: h5py<=3.16.0
40
+ Requires-Dist: h5netcdf<=1.8.1
41
+ Requires-Dist: xarray<=2026.9.0
42
+ Requires-Dist: matplotlib<=3.11.0
43
+ Requires-Dist: pyyaml<=6.0.3
44
+ Requires-Dist: vtk<=9.7.0
45
+ Requires-Dist: tqdm<=4.70.0
46
+ Requires-Dist: argcomplete<=3.7.0
47
+ Requires-Dist: ipywidgets<=8.1.8
48
+ Requires-Dist: plotly<=7.1.0
49
+ Requires-Dist: pyvista<=0.49.0
50
+ Requires-Dist: trame<=4.0.0
51
+ Requires-Dist: trame-vtk<=2.11.8
52
+ Requires-Dist: trame-vuetify<=3.3.0
53
+ Requires-Dist: nest_asyncio2<=1.7.2
54
+ Requires-Dist: vtk<=9.7.0
55
+ Requires-Dist: pytest<=9.1.0
56
+ Requires-Dist: pytest-mpi<=0.6
57
+ Requires-Dist: pytest-testmon<=2.2.0
58
+ Requires-Dist: ruff==0.16.10
59
+ Requires-Dist: line_profiler<=5.0.2
60
+ Requires-Dist: scope-profiler<=0.7.3,>=0.5.0
61
+ Provides-Extra: mpi
62
+ Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
63
+ Provides-Extra: gpu
64
+ Requires-Dist: cupy-cuda12x; extra == "gpu"
65
+ Provides-Extra: phys
66
+ Requires-Dist: gvec<=1.5.0,>=1.1.0; extra == "phys"
67
+ Requires-Dist: desc-opt<=0.17.1; extra == "phys"
68
+ Provides-Extra: pproc
69
+ Requires-Dist: plasma-plots>=0.1.0; extra == "pproc"
70
+ Provides-Extra: dev
71
+ Requires-Dist: struphy[mpi]; extra == "dev"
72
+ Requires-Dist: struphy[pproc]; extra == "dev"
73
+ Requires-Dist: notebook; extra == "dev"
74
+ Requires-Dist: pre-commit; extra == "dev"
75
+ Requires-Dist: nbstripout; extra == "dev"
76
+ Requires-Dist: tomli-w; extra == "dev"
77
+ Requires-Dist: kaleido; extra == "dev"
78
+ Requires-Dist: pandas; extra == "dev"
79
+ Requires-Dist: scope-profiler[pproc]; extra == "dev"
80
+ Requires-Dist: slurm-script-generator>=0.3.6; extra == "dev"
81
+ Provides-Extra: doc
82
+ Requires-Dist: struphy[phys]; extra == "doc"
83
+ Requires-Dist: struphy[pproc]; extra == "doc"
84
+ Requires-Dist: jupyter; extra == "doc"
85
+ Requires-Dist: nbconvert; extra == "doc"
86
+ Requires-Dist: ipykernel; extra == "doc"
87
+ Requires-Dist: sphinx; extra == "doc"
88
+ Requires-Dist: sphinx-design; extra == "doc"
89
+ Requires-Dist: lxml_html_clean; extra == "doc"
90
+ Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
91
+ Requires-Dist: sphinx-copybutton; extra == "doc"
92
+ Requires-Dist: sphinx-collections; extra == "doc"
93
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
94
+ Requires-Dist: nbsphinx; extra == "doc"
95
+ Requires-Dist: m2r2; extra == "doc"
96
+ Requires-Dist: myst-parser; extra == "doc"
97
+ Requires-Dist: docutils; extra == "doc"
98
+ Requires-Dist: ipyparallel; extra == "doc"
99
+ Requires-Dist: scope-profiler[pproc]; extra == "doc"
100
+ Provides-Extra: likwid
101
+ Requires-Dist: struphy[dev]; extra == "likwid"
102
+ Requires-Dist: pylikwid; extra == "likwid"
103
+ Provides-Extra: all
104
+ Requires-Dist: struphy[phys]; extra == "all"
105
+ Requires-Dist: struphy[pproc]; extra == "all"
106
+ Requires-Dist: struphy[dev]; extra == "all"
107
+ Requires-Dist: struphy[mpi]; extra == "all"
108
+ Requires-Dist: struphy[doc]; extra == "all"
109
+ Requires-Dist: struphy[likwid]; extra == "all"
110
+ Dynamic: license-file
111
+
112
+
113
+
114
+ ![STRUPHY Header](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/struphy_header_with_subs.png)
115
+
116
+ <p>
117
+
118
+ <a href="https://github.com/struphy-hub/struphy/releases"><img src="https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release" alt="Release"></a> <a href="https://github.com/struphy-hub/struphy/blob/devel/LICENSE"><img src="https://img.shields.io/badge/License-MIT-violet" alt="License"></a> <a href="https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main"><img src="https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC" alt="badge"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg" alt="Ubuntu latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg" alt="MacOS latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg" alt="ruff"></a> <a href="https://pypi.org/project/struphy/"><img src="https://img.shields.io/pypi/v/struphy?label=PyPI" alt="PyPI"></a> <a href="https://pepy.tech/projects/struphy"><img src="https://img.shields.io/pepy/dt/struphy?label=PyPI%20downloads" alt="PyPI Downloads"></a>
119
+ </p>
120
+
121
+ # Welcome!
122
+
123
+ **This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
124
+
125
+ **STRUPHY** stands for **STRU**cture-**P**reserving **HY**brid code (or **STRU**cture-preserving **PHY**sics code). The package provides off-the-shelf models for plasma physics problems, such as
126
+
127
+ - Maxwell’s equations
128
+ - Magneto-hydrodynamics (MHD)
129
+ - Multi-fluid models
130
+ - Vlasov-Poisson and Vlasov-Maxwell kinetic models
131
+ - Drift-kinetic models for strongly magnetized plasma
132
+ - MHD-kinetic hybrid models
133
+
134
+ All models can be run on multiple cores through MPI (distributed memory) and OpenMP (shared memory). The compute-intensive parts of the code are translated and compiled (“transpiled”) using [pyccel](https://github.com/pyccel/pyccel), giving you the speed of Fortran or C while working within the familiar Python environment.
135
+
136
+ Explore Struphy on its website **[struphy-hub.github.io](https://struphy-hub.github.io/)**: the models and their equations, the numerical methods, domains, equilibria and a gallery of examples.
137
+
138
+ 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.
139
+
140
+ ![Max Planck Institute Logo](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb_centered.png)
141
+
142
+ ## Quick install
143
+
144
+ Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
145
+
146
+ pip install -U struphy
147
+ struphy compile -j 4
148
+
149
+ `-j 4` compiles the kernels in parallel on four cores. In case you face troubles with install/compile:
150
+
151
+ 1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
152
+ 2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
153
+
154
+ ## Examples
155
+
156
+ Ready-to-run simulations, each with a parameter file and a post-processing script, are in the repository [struphy-examples](https://github.com/struphy-hub/struphy-examples), one folder per model and case. Its tags match the Struphy releases, so clone the tag of your installed version (`struphy --version`), for example
157
+
158
+ ```
159
+ git clone --branch vX.Y.Z https://github.com/struphy-hub/struphy-examples.git
160
+ cd struphy-examples/VlasovAmpereOneSpecies/two_stream
161
+ python params_two_stream.py
162
+ python pproc_two_stream.py
163
+ ```
164
+
165
+ ![Two-stream instability: phase space of the electrons at t = 0, 25 and 50](https://raw.githubusercontent.com/struphy-hub/struphy/main/doc/pics/readme_two_stream.png)
166
+
167
+ *Two-stream instability: the electron distribution function f(x, v) at t = 0, 25 and 50, computed with the model [VlasovAmpereOneSpecies](https://struphy-hub.github.io/models/vlasov-ampere-one-species/) in a FEEC-PIC discretization (particle-in-cell markers for the electrons, finite element exterior calculus splines for the electric field). Two counter-streaming beams roll up into a phase-space vortex.*
168
+
169
+ To look at finished examples and their results without running anything, browse the [examples gallery](https://struphy-hub.github.io/examples/) on the Struphy website.
170
+
171
+ ## AI coding agents
172
+
173
+ Struphy ships a usage guide for AI coding agents (Claude Code, Codex, Copilot, Cursor, ...) that matches your installed version. It explains how to set up, run and post-process simulations. Print it with
174
+
175
+ ```
176
+ struphy agents
177
+ ```
178
+
179
+ To make it available in your own project, run this in the project folder:
180
+
181
+ ```
182
+ struphy agents --install
183
+ ```
184
+
185
+ This copies the Struphy skills (`setup-simulation`, `postprocess-simulation`) to `.claude/skills/` and adds a short pointer to the guide to `AGENTS.md` and `CLAUDE.md`, so your agent finds it automatically. Run it again after upgrading Struphy. Developers changing Struphy itself find the coding guidelines in [AGENTS.md](https://github.com/struphy-hub/struphy/blob/devel/AGENTS.md).
186
+
187
+ ## Available models
188
+
189
+ Check the list of currently [available models](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
190
+
191
+ ## Documentation
192
+
193
+ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
194
+
195
+ - [Website](https://struphy-hub.github.io/) (overview of models, numerics and examples)
196
+ - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
197
+ - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
198
+ - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
199
+ - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
200
+
201
+ The same doc is also on [Read the Docs](https://struphy.readthedocs.io/en/latest/), which also has the doc pages of older Struphy versions, starting from 3.1.0 (version menu of Read the Docs). The Read the Docs build does not execute the notebooks in the doc (e.g. the tutorials): they appear there without any outputs. The GitHub pages build executes them.
202
+
203
+ ## Example: solve Maxwell’s equations
204
+
205
+ Use the command line to generate a default launch file:
206
+
207
+ struphy params Maxwell
208
+
209
+ This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
210
+
211
+ python params_Maxwell.py
212
+
213
+ The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
214
+
215
+ For plots and diagnostics of the output, install [plasma-plots](https://struphy-hub.github.io/plasma-plots) with `pip install "struphy[pproc]"`; `Output` loads it automatically, adding `out.plot`, `out.analysis` and `.plasma.plot` on every product.
216
+
217
+ Parallel simulations are run for example with
218
+
219
+ pip install -U mpi4py
220
+ mpirun -n 4 python params_Maxwell.py
221
+
222
+ You can also put the run command in a batch script.
223
+
224
+ ## Python API
225
+
226
+ Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
227
+
228
+ ``` python
229
+ from struphy import (
230
+ Simulation,
231
+ domains,
232
+ equils,
233
+ )
234
+ from struphy.models import LinearMHD
235
+
236
+ model = LinearMHD()
237
+
238
+ domain = domains.DESCunit()
239
+ equil = equils.DESCequilibrium(use_nfp=False)
240
+
241
+ sim = Simulation(
242
+ model=model,
243
+ domain=domain,
244
+ equil=equil,
245
+ )
246
+
247
+ sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
248
+ ```
249
+
250
+ ![](https://raw.githubusercontent.com/struphy-hub/struphy/main/README_files/figure-commonmark/cell-2-output-1.png)
251
+
252
+ This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
253
+
254
+ ## Tutorials on Binder
255
+
256
+ Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
257
+
258
+ ## Docker
259
+
260
+ 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:
261
+
262
+ docker pull spossann/struphy:main
263
+ docker run -it --rm spossann/struphy:main
264
+ ls struphy_*
265
+
266
+ This will show three available Struphy environments, which you can activate for example via
267
+
268
+ source struphy_fortran_/env_fortran_/bin/activate
269
+
270
+ 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:
271
+
272
+ docker pull spossann/ubuntu-for-struphy:main
273
+ docker run -it --rm spossann/ubuntu-for-struphy:main
274
+
275
+ ## Get in touch
276
+
277
+ - [Issues](https://github.com/struphy-hub/struphy/issues)
278
+ - [Discussions](https://github.com/struphy-hub/struphy/discussions)
279
+ - [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
280
+ - [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
281
+ - [LinkedIn profile](https://www.linkedin.com/company/struphy/)
282
+
283
+ ## Publications
284
+
285
+ - D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
286
+ [**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
287
+ Journal of Computational Physics, Volume 555, 114765 (2026).
288
+
289
+ - V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
290
+ Journal of Computational Physics, Volume 523, 113647 (2025).
291
+
292
+ - Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
293
+
294
+ - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
295
+
296
+ - F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
297
+
298
+ - F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
299
+
300
+ - F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).
@@ -0,0 +1,189 @@
1
+
2
+
3
+ ![STRUPHY Header](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/struphy_header_with_subs.png)
4
+
5
+ <p>
6
+
7
+ <a href="https://github.com/struphy-hub/struphy/releases"><img src="https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release" alt="Release"></a> <a href="https://github.com/struphy-hub/struphy/blob/devel/LICENSE"><img src="https://img.shields.io/badge/License-MIT-violet" alt="License"></a> <a href="https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main"><img src="https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC" alt="badge"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg" alt="Ubuntu latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg" alt="MacOS latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg" alt="ruff"></a> <a href="https://pypi.org/project/struphy/"><img src="https://img.shields.io/pypi/v/struphy?label=PyPI" alt="PyPI"></a> <a href="https://pepy.tech/projects/struphy"><img src="https://img.shields.io/pepy/dt/struphy?label=PyPI%20downloads" alt="PyPI Downloads"></a>
8
+ </p>
9
+
10
+ # Welcome!
11
+
12
+ **This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
13
+
14
+ **STRUPHY** stands for **STRU**cture-**P**reserving **HY**brid code (or **STRU**cture-preserving **PHY**sics code). The package provides off-the-shelf models for plasma physics problems, such as
15
+
16
+ - Maxwell’s equations
17
+ - Magneto-hydrodynamics (MHD)
18
+ - Multi-fluid models
19
+ - Vlasov-Poisson and Vlasov-Maxwell kinetic models
20
+ - Drift-kinetic models for strongly magnetized plasma
21
+ - MHD-kinetic hybrid models
22
+
23
+ All models can be run on multiple cores through MPI (distributed memory) and OpenMP (shared memory). The compute-intensive parts of the code are translated and compiled (“transpiled”) using [pyccel](https://github.com/pyccel/pyccel), giving you the speed of Fortran or C while working within the familiar Python environment.
24
+
25
+ Explore Struphy on its website **[struphy-hub.github.io](https://struphy-hub.github.io/)**: the models and their equations, the numerical methods, domains, equilibria and a gallery of examples.
26
+
27
+ 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.
28
+
29
+ ![Max Planck Institute Logo](https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb_centered.png)
30
+
31
+ ## Quick install
32
+
33
+ Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
34
+
35
+ pip install -U struphy
36
+ struphy compile -j 4
37
+
38
+ `-j 4` compiles the kernels in parallel on four cores. In case you face troubles with install/compile:
39
+
40
+ 1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
41
+ 2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
42
+
43
+ ## Examples
44
+
45
+ Ready-to-run simulations, each with a parameter file and a post-processing script, are in the repository [struphy-examples](https://github.com/struphy-hub/struphy-examples), one folder per model and case. Its tags match the Struphy releases, so clone the tag of your installed version (`struphy --version`), for example
46
+
47
+ ```
48
+ git clone --branch vX.Y.Z https://github.com/struphy-hub/struphy-examples.git
49
+ cd struphy-examples/VlasovAmpereOneSpecies/two_stream
50
+ python params_two_stream.py
51
+ python pproc_two_stream.py
52
+ ```
53
+
54
+ ![Two-stream instability: phase space of the electrons at t = 0, 25 and 50](https://raw.githubusercontent.com/struphy-hub/struphy/main/doc/pics/readme_two_stream.png)
55
+
56
+ *Two-stream instability: the electron distribution function f(x, v) at t = 0, 25 and 50, computed with the model [VlasovAmpereOneSpecies](https://struphy-hub.github.io/models/vlasov-ampere-one-species/) in a FEEC-PIC discretization (particle-in-cell markers for the electrons, finite element exterior calculus splines for the electric field). Two counter-streaming beams roll up into a phase-space vortex.*
57
+
58
+ To look at finished examples and their results without running anything, browse the [examples gallery](https://struphy-hub.github.io/examples/) on the Struphy website.
59
+
60
+ ## AI coding agents
61
+
62
+ Struphy ships a usage guide for AI coding agents (Claude Code, Codex, Copilot, Cursor, ...) that matches your installed version. It explains how to set up, run and post-process simulations. Print it with
63
+
64
+ ```
65
+ struphy agents
66
+ ```
67
+
68
+ To make it available in your own project, run this in the project folder:
69
+
70
+ ```
71
+ struphy agents --install
72
+ ```
73
+
74
+ This copies the Struphy skills (`setup-simulation`, `postprocess-simulation`) to `.claude/skills/` and adds a short pointer to the guide to `AGENTS.md` and `CLAUDE.md`, so your agent finds it automatically. Run it again after upgrading Struphy. Developers changing Struphy itself find the coding guidelines in [AGENTS.md](https://github.com/struphy-hub/struphy/blob/devel/AGENTS.md).
75
+
76
+ ## Available models
77
+
78
+ Check the list of currently [available models](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
79
+
80
+ ## Documentation
81
+
82
+ The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
83
+
84
+ - [Website](https://struphy-hub.github.io/) (overview of models, numerics and examples)
85
+ - [Install](https://struphy-hub.github.io/struphy/sections/install.html)
86
+ - [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
87
+ - [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
88
+ - [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
89
+
90
+ The same doc is also on [Read the Docs](https://struphy.readthedocs.io/en/latest/), which also has the doc pages of older Struphy versions, starting from 3.1.0 (version menu of Read the Docs). The Read the Docs build does not execute the notebooks in the doc (e.g. the tutorials): they appear there without any outputs. The GitHub pages build executes them.
91
+
92
+ ## Example: solve Maxwell’s equations
93
+
94
+ Use the command line to generate a default launch file:
95
+
96
+ struphy params Maxwell
97
+
98
+ This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
99
+
100
+ python params_Maxwell.py
101
+
102
+ The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
103
+
104
+ For plots and diagnostics of the output, install [plasma-plots](https://struphy-hub.github.io/plasma-plots) with `pip install "struphy[pproc]"`; `Output` loads it automatically, adding `out.plot`, `out.analysis` and `.plasma.plot` on every product.
105
+
106
+ Parallel simulations are run for example with
107
+
108
+ pip install -U mpi4py
109
+ mpirun -n 4 python params_Maxwell.py
110
+
111
+ You can also put the run command in a batch script.
112
+
113
+ ## Python API
114
+
115
+ Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
116
+
117
+ ``` python
118
+ from struphy import (
119
+ Simulation,
120
+ domains,
121
+ equils,
122
+ )
123
+ from struphy.models import LinearMHD
124
+
125
+ model = LinearMHD()
126
+
127
+ domain = domains.DESCunit()
128
+ equil = equils.DESCequilibrium(use_nfp=False)
129
+
130
+ sim = Simulation(
131
+ model=model,
132
+ domain=domain,
133
+ equil=equil,
134
+ )
135
+
136
+ sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
137
+ ```
138
+
139
+ ![](https://raw.githubusercontent.com/struphy-hub/struphy/main/README_files/figure-commonmark/cell-2-output-1.png)
140
+
141
+ This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
142
+
143
+ ## Tutorials on Binder
144
+
145
+ Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
146
+
147
+ ## Docker
148
+
149
+ 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:
150
+
151
+ docker pull spossann/struphy:main
152
+ docker run -it --rm spossann/struphy:main
153
+ ls struphy_*
154
+
155
+ This will show three available Struphy environments, which you can activate for example via
156
+
157
+ source struphy_fortran_/env_fortran_/bin/activate
158
+
159
+ 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:
160
+
161
+ docker pull spossann/ubuntu-for-struphy:main
162
+ docker run -it --rm spossann/ubuntu-for-struphy:main
163
+
164
+ ## Get in touch
165
+
166
+ - [Issues](https://github.com/struphy-hub/struphy/issues)
167
+ - [Discussions](https://github.com/struphy-hub/struphy/discussions)
168
+ - [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
169
+ - [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
170
+ - [LinkedIn profile](https://www.linkedin.com/company/struphy/)
171
+
172
+ ## Publications
173
+
174
+ - D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
175
+ [**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
176
+ Journal of Computational Physics, Volume 555, 114765 (2026).
177
+
178
+ - V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
179
+ Journal of Computational Physics, Volume 523, 113647 (2025).
180
+
181
+ - Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
182
+
183
+ - S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
184
+
185
+ - F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
186
+
187
+ - F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
188
+
189
+ - F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).