struphy 2.5.0__tar.gz → 2.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.
- struphy-2.6.0/PKG-INFO +208 -0
- struphy-2.6.0/README.md +114 -0
- {struphy-2.5.0 → struphy-2.6.0}/pyproject.toml +34 -20
- struphy-2.6.0/src/struphy/__init__.py +77 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/bsplines.py +31 -31
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/bsplines_kernels.py +14 -2
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/evaluation_kernels_1d.py +6 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/evaluation_kernels_3d.py +267 -22
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/tests/test_bsplines_kernels.py +25 -26
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +86 -84
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/compile_struphy.mk +1 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/conftest.py +6 -10
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/compile.py +13 -57
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/format.py +15 -13
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/main.py +41 -548
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/params.py +12 -16
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/profile.py +7 -7
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/test.py +40 -81
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/tests/test_console.py +19 -243
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/diagnostics/console_diagn.py +3 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/diagnostics/continuous_spectra.py +24 -19
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/diagnostics/diagn_tools.py +147 -89
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/diagnostics/paraview/mesh_creator.py +39 -35
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/dispersion_relations/analytic.py +54 -46
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/dispersion_relations/base.py +5 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/dispersion_relations/utilities.py +2 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/derivatives.py +4 -5
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/kernels_projectors_global.py +52 -10
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/MHD_eigenvalues_cylinder_1D.py +214 -203
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/control_variate.py +21 -21
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_control_variate.py +2 -2
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fB_massless_kernels_control_variate.py +39 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_control_variate.py +3 -4
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_kernels_control_variate.py +52 -4
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_control_variate.py +3 -4
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_kernels_control_variate.py +114 -15
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/emw_operators.py +8 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_1d.py +5 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_2d.py +19 -19
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/inner_products_3d.py +19 -19
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_1d.py +5 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_2d.py +25 -25
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/l2_error_3d.py +25 -25
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/mass_matrices_3d_pre.py +49 -43
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_arrays.py +105 -105
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bv_kernel.py +18 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_massless_linear_operators.py +62 -57
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_vv_kernel.py +5 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/mhd_operators_MF.py +113 -113
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/mhd_operators_3d_local.py +319 -299
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/projectors_local.py +356 -330
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_L2_projector_kernel.py +36 -18
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_L2.py +86 -79
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_function_projectors_local.py +140 -131
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local/shape_local_projector_kernel.py +94 -47
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mass_matrices_1d.py +13 -13
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mass_matrices_2d.py +46 -46
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mass_matrices_3d.py +52 -49
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_main.py +20 -14
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mhd_axisymmetric_pproc.py +9 -7
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mhd_operators.py +49 -36
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/mhd_operators_core.py +375 -283
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/projectors_global.py +201 -168
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/spline_space.py +247 -205
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/examples/_draw_parallel.py +6 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/examples/restelli2018/callables.py +33 -33
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/basis_projection_ops.py +29 -29
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/linear_operators.py +24 -24
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/local_projectors_kernels.py +40 -26
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/mass.py +166 -54
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/mass_kernels.py +9 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/preconditioner.py +22 -30
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/projectors.py +85 -80
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/psydac_derham.py +375 -312
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_basis_ops.py +44 -37
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_derham.py +33 -17
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_eval_field.py +101 -126
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_field_init.py +189 -196
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_l2_projectors.py +33 -29
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_local_projectors.py +173 -220
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +35 -35
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_mass_matrices.py +111 -74
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_toarray_struphy.py +16 -15
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/test_tosparse_struphy.py +26 -13
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/tests/xx_test_preconds.py +7 -7
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/utilities.py +27 -22
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/utilities_local_projectors.py +71 -57
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/variational_utilities.py +78 -65
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/base.py +70 -61
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/coil_fields/base.py +8 -5
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/coil_fields/coil_fields.py +15 -13
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/equils.py +137 -125
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/generic.py +8 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +5 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/projected_equils.py +5 -2
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/tests/test_desc_equil.py +40 -41
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/tests/test_generic_equils.py +14 -14
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/tests/test_mhd_equils.py +41 -42
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +36 -36
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/base.py +118 -118
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/domains.py +23 -36
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/evaluation_kernels.py +12 -12
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/mappings_kernels.py +171 -21
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/tests/test_domain.py +65 -60
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/transform_kernels.py +21 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/utilities.py +54 -40
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/geometry/utilities_kernels.py +4 -4
- struphy-2.6.0/src/struphy/initial/base.py +47 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/initial/eigenfunctions.py +26 -23
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/initial/perturbations.py +572 -363
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/initial/tests/test_init_perturbations.py +106 -80
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/initial/utilities.py +2 -2
- struphy-2.6.0/src/struphy/io/inp/params_Maxwell.py +63 -0
- struphy-2.6.0/src/struphy/io/inp/params_Maxwell_lw.py +66 -0
- struphy-2.6.0/src/struphy/io/inp/verification/Maxwell_coaxial.py +60 -0
- struphy-2.6.0/src/struphy/io/options.py +363 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/output_handling.py +9 -6
- struphy-2.6.0/src/struphy/io/setup.py +333 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kinetic_background/base.py +101 -314
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kinetic_background/maxwellians.py +259 -127
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kinetic_background/moment_functions.py +3 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kinetic_background/tests/test_base.py +21 -21
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kinetic_background/tests/test_maxwellians.py +449 -385
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/linalg_kron.py +13 -11
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/saddle_point.py +68 -65
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/schur_solver.py +18 -4
- struphy-2.6.0/src/struphy/linear_algebra/solver.py +37 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +82 -53
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +35 -36
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/tests/test_stencil_dot_kernels.py +18 -18
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/tests/test_stencil_transpose_kernels.py +15 -15
- struphy-2.6.0/src/struphy/main.py +987 -0
- struphy-2.6.0/src/struphy/models/__init__.py +74 -0
- struphy-2.6.0/src/struphy/models/base.py +1799 -0
- struphy-2.6.0/src/struphy/models/fluid.py +2434 -0
- struphy-2.6.0/src/struphy/models/hybrid.py +1012 -0
- struphy-2.6.0/src/struphy/models/kinetic.py +1096 -0
- struphy-2.6.0/src/struphy/models/species.py +212 -0
- struphy-2.6.0/src/struphy/models/tests/test_models.py +176 -0
- struphy-2.6.0/src/struphy/models/tests/test_verif_EulerSPH.py +166 -0
- struphy-2.6.0/src/struphy/models/tests/test_verif_LinearMHD.py +154 -0
- struphy-2.6.0/src/struphy/models/tests/test_verif_Maxwell.py +275 -0
- struphy-2.6.0/src/struphy/models/tests/test_verif_Poisson.py +149 -0
- struphy-2.6.0/src/struphy/models/tests/test_verif_VlasovAmpereOneSpecies.py +167 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/models/tests/test_xxpproc.py +1 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/models/tests/verification.py +63 -59
- struphy-2.6.0/src/struphy/models/toy.py +1227 -0
- struphy-2.6.0/src/struphy/models/variables.py +425 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/ode/solvers.py +3 -9
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/ode/tests/test_ode_feec.py +25 -21
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/ode/utils.py +29 -26
- struphy-2.6.0/src/struphy/physics/physics.py +11 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/accum_kernels.py +8 -71
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/accum_kernels_gc.py +652 -196
- struphy-2.6.0/src/struphy/pic/accumulation/filter.py +185 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/filter_kernels.py +18 -4
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +36 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/particles_to_grid.py +34 -113
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/base.py +588 -535
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/particles.py +96 -125
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/pusher.py +20 -23
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/pusher_kernels.py +62 -467
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/pusher_kernels_gc.py +404 -99
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/sampling_kernels.py +3 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/sobol_seq.py +34 -35
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/sph_eval_kernels.py +13 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_accum_vec_H1.py +23 -22
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_accumulation.py +25 -23
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_binning.py +237 -276
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_draw_parallel.py +13 -13
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_mat_vec_filler.py +67 -50
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/accumulation.py +22 -20
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/accumulation_kernels_3d.py +174 -18
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d.py +194 -18
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/mappings_3d_fast.py +279 -26
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher.py +2 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_pos.py +1170 -87
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_2d.py +180 -20
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/pusher_vel_3d.py +273 -21
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_2d.py +1 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/spline_evaluation_3d.py +248 -20
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pushers.py +73 -69
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_sorting.py +50 -10
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_sph.py +233 -254
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_tesselation.py +35 -42
- struphy-2.6.0/src/struphy/pic/utilities.py +310 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/utilities_kernels.py +131 -154
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/basic.py +9 -10
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/extraction_operators.py +123 -122
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/linear_operators.py +13 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/tests/test_legacy_polar_splines.py +10 -10
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/tests/test_polar.py +22 -22
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/plot_likwidproject.py +6 -6
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/plot_time_traces.py +33 -35
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/roofline_plotter.py +6 -7
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/orbits/orbits_tools.py +24 -25
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/post_processing_tools.py +378 -274
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/pproc_struphy.py +48 -77
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/profile_struphy.py +5 -5
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/profiling/profiling.py +11 -12
- struphy-2.6.0/src/struphy/propagators/__init__.py +98 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/propagators/base.py +113 -106
- struphy-2.6.0/src/struphy/propagators/propagators_coupling.py +2181 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/propagators/propagators_fields.py +2713 -2276
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/propagators/propagators_markers.py +797 -400
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +220 -139
- struphy-2.6.0/src/struphy/propagators/tests/test_poisson.py +681 -0
- struphy-2.5.0/src/struphy/psydac-2.5.0.dev0-py3-none-any.whl → struphy-2.6.0/src/struphy/psydac-2.6.0.dev0-py3-none-any.whl +0 -0
- struphy-2.6.0/src/struphy/topology/grids.py +21 -0
- struphy-2.6.0/src/struphy/utils/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/utils/clone_config.py +8 -9
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/utils/cupy_vs_numpy.py +1 -1
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/utils/test_clone_config.py +3 -3
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/utils/utils.py +14 -14
- struphy-2.6.0/src/struphy.egg-info/PKG-INFO +208 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy.egg-info/SOURCES.txt +20 -12
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy.egg-info/requires.txt +15 -8
- struphy-2.5.0/PKG-INFO +0 -142
- struphy-2.5.0/README.md +0 -55
- struphy-2.5.0/src/struphy/console/pproc.py +0 -132
- struphy-2.5.0/src/struphy/console/run.py +0 -312
- struphy-2.5.0/src/struphy/console/units.py +0 -48
- struphy-2.5.0/src/struphy/io/setup.py +0 -638
- struphy-2.5.0/src/struphy/main.py +0 -491
- struphy-2.5.0/src/struphy/models/__init__.py +0 -76
- struphy-2.5.0/src/struphy/models/base.py +0 -2278
- struphy-2.5.0/src/struphy/models/fluid.py +0 -2558
- struphy-2.5.0/src/struphy/models/hybrid.py +0 -1191
- struphy-2.5.0/src/struphy/models/kinetic.py +0 -1198
- struphy-2.5.0/src/struphy/models/tests/test_fluid_models.py +0 -28
- struphy-2.5.0/src/struphy/models/tests/test_hybrid_models.py +0 -28
- struphy-2.5.0/src/struphy/models/tests/test_kinetic_models.py +0 -28
- struphy-2.5.0/src/struphy/models/tests/test_toy_models.py +0 -28
- struphy-2.5.0/src/struphy/models/toy.py +0 -1290
- struphy-2.5.0/src/struphy/pic/utilities.py +0 -76
- struphy-2.5.0/src/struphy/propagators/__init__.py +0 -95
- struphy-2.5.0/src/struphy/propagators/propagators_coupling.py +0 -1892
- struphy-2.5.0/src/struphy/propagators/tests/test_poisson.py +0 -427
- struphy-2.5.0/src/struphy/tutorials/tests/test_tutorials.py +0 -172
- struphy-2.5.0/src/struphy/utils/arrays.py +0 -59
- struphy-2.5.0/src/struphy/utils/mpi.py +0 -102
- struphy-2.5.0/src/struphy/utils/set_release_dependencies.py +0 -76
- struphy-2.5.0/src/struphy.egg-info/PKG-INFO +0 -142
- {struphy-2.5.0 → struphy-2.6.0}/LICENSE +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/setup.cfg +0 -0
- {struphy-2.5.0/src/struphy → struphy-2.6.0/src/struphy/bsplines}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
- {struphy-2.5.0/src/struphy/bsplines → struphy-2.6.0/src/struphy/bsplines/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/bsplines/tests → struphy-2.6.0/src/struphy/console}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/likwid.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/console/parsers.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/dependencies.py +0 -0
- {struphy-2.5.0/src/struphy/console → struphy-2.6.0/src/struphy/diagnostics}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/diagnostics → struphy-2.6.0/src/struphy/diagnostics/paraview}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
- {struphy-2.5.0/src/struphy/diagnostics/paraview → struphy-2.6.0/src/struphy/dispersion_relations}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/dispersion_relations → struphy-2.6.0/src/struphy/eigenvalue_solvers}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/kernels_2d.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/kernels_3d.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/kernels_projectors_global_mhd.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/control_variates}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kernels_control_variate.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/control_variates → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/fnB_massless_cv_kernel_2.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended/massless_cvker.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/control_variates/kinetic_extended → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/massless_operators}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/massless_operators/fB_bb_kernel.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/massless_operators → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/projectors_local}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/projectors_local → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local/kernels_projectors_local_mhd.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/projectors_local/pro_local → struphy-2.6.0/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/legacy/projectors_local/shape_pro_local → struphy-2.6.0/src/struphy/eigenvalue_solvers/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/eigenvalue_solvers/tests → struphy-2.6.0/src/struphy/examples/restelli2018}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/examples/restelli2018 → struphy-2.6.0/src/struphy/feec}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/basis_projection_kernels.py +0 -0
- {struphy-2.5.0/src/struphy/feec → struphy-2.6.0/src/struphy/feec/tests}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/feec/utilities_kernels.py +0 -0
- {struphy-2.5.0/src/struphy/feec/tests → struphy-2.6.0/src/struphy/fields_background}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background → struphy-2.6.0/src/struphy/fields_background/coil_fields}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/coil_fields → struphy-2.6.0/src/struphy/fields_background/mhd_equil}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil → struphy-2.6.0/src/struphy/fields_background/mhd_equil/eqdsk}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/eqdsk → struphy-2.6.0/src/struphy/fields_background/mhd_equil/eqdsk/data}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/eqdsk/data → struphy-2.6.0/src/struphy/fields_background/mhd_equil/gvec}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/gvec → struphy-2.6.0/src/struphy/fields_background/mhd_equil/gvec/output}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/gvec/output → struphy-2.6.0/src/struphy/fields_background/mhd_equil/gvec/output/vtk}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/gvec/output/vtk → struphy-2.6.0/src/struphy/fields_background/mhd_equil/vmec}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/mhd_equil/vmec → struphy-2.6.0/src/struphy/fields_background/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/fields_background/tests → struphy-2.6.0/src/struphy/geometry}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/geometry → struphy-2.6.0/src/struphy/geometry/map_coef}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/geometry/map_coef → struphy-2.6.0/src/struphy/geometry/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/geometry/tests → struphy-2.6.0/src/struphy/initial}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/initial → struphy-2.6.0/src/struphy/initial/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/initial/tests → struphy-2.6.0/src/struphy/io}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/batch_cobra.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_016.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_032.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_064.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_128.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_256.sh +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/batch/p_512.sh +0 -0
- {struphy-2.5.0/src/struphy/io → struphy-2.6.0/src/struphy/io/inp}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_TAE_tokamak.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovcc.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_hybridmhdvlasovpc.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_linearextendedmhd.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_landau.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_streaming_weibel.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/longer_examples/params_linvlasovmaxwell_weibel.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/parameters.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_02.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_03.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_04a.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_04b.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_04c.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05a.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05b.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05c.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05d.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05e.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_05f.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_12a.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/tutorials/params_12b.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/verification/IsothermalEulerSPH_soundwave.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/verification/LinearVlasovAmpereOneSpecies_weakLandau.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/verification/Maxwell_coaxial.yml +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/io/inp/verification/VlasovAmpereOneSpecies_weakLandau.yml +0 -0
- {struphy-2.5.0/src/struphy/io/inp → struphy-2.6.0/src/struphy/io/inp/verification}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/io/inp/verification → struphy-2.6.0/src/struphy/io/out}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/io/out → struphy-2.6.0/src/struphy/kernel_arguments}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
- {struphy-2.5.0/src/struphy/kernel_arguments → struphy-2.6.0/src/struphy/kinetic_background}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/kinetic_background → struphy-2.6.0/src/struphy/kinetic_background/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/kinetic_background/tests → struphy-2.6.0/src/struphy/linear_algebra}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
- {struphy-2.5.0/src/struphy/linear_algebra → struphy-2.6.0/src/struphy/linear_algebra/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/linear_algebra → struphy-2.6.0/src/struphy/models}/tests/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/models/tests/util.py +0 -0
- {struphy-2.5.0/src/struphy/models/tests → struphy-2.6.0/src/struphy/ode}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/ode → struphy-2.6.0/src/struphy/ode/tests}/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/ode/tests → struphy-2.6.0/src/struphy/physics}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/eval_kernels_gc.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/sorting_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/sph_smoothing_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/pic/tests/test_pic_legacy_files/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/polar/tests/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/cprofile_analyser.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/orbits/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/post_processing/tests/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/profiling/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/propagators/tests/__init__.py +0 -0
- {struphy-2.5.0/src/struphy/utils → struphy-2.6.0/src/struphy/topology}/__init__.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy/utils/pyccel.py +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy.egg-info/dependency_links.txt +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy.egg-info/entry_points.txt +0 -0
- {struphy-2.5.0 → struphy-2.6.0}/src/struphy.egg-info/top_level.txt +0 -0
struphy-2.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: struphy
|
|
3
|
+
Version: 2.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-2025, 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.2.6
|
|
34
|
+
Requires-Dist: cunumpy<=0.1
|
|
35
|
+
Requires-Dist: pyccel<=2.0.1,>=2.0
|
|
36
|
+
Requires-Dist: scipy<=1.15.3
|
|
37
|
+
Requires-Dist: h5py<=3.14.0
|
|
38
|
+
Requires-Dist: matplotlib<=3.10.5
|
|
39
|
+
Requires-Dist: pyyaml<=6.0.3
|
|
40
|
+
Requires-Dist: vtk<=9.5.2
|
|
41
|
+
Requires-Dist: tqdm<=4.67.1
|
|
42
|
+
Requires-Dist: argcomplete<=3.6.3
|
|
43
|
+
Requires-Dist: pytest<=9.0.1
|
|
44
|
+
Requires-Dist: pytest-mpi<=0.6
|
|
45
|
+
Requires-Dist: line_profiler<=5.0.0
|
|
46
|
+
Provides-Extra: phys
|
|
47
|
+
Requires-Dist: gvec<=1.2.0,>=1.1.0; extra == "phys"
|
|
48
|
+
Requires-Dist: desc-opt<=0.15.0; extra == "phys"
|
|
49
|
+
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: struphy[mpi]; extra == "dev"
|
|
51
|
+
Requires-Dist: notebook<=7.4.7; extra == "dev"
|
|
52
|
+
Requires-Dist: autopep8<=2.3.2; extra == "dev"
|
|
53
|
+
Requires-Dist: isort<=7.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: flake8<=7.3.0; extra == "dev"
|
|
55
|
+
Requires-Dist: pylint<=4.0.2; extra == "dev"
|
|
56
|
+
Requires-Dist: ssort<=0.15.0; extra == "dev"
|
|
57
|
+
Requires-Dist: add-trailing-comma<=4.0.0; extra == "dev"
|
|
58
|
+
Requires-Dist: ruff<=0.14.4,>=0.9.1; extra == "dev"
|
|
59
|
+
Requires-Dist: pre-commit<=4.4.0; extra == "dev"
|
|
60
|
+
Requires-Dist: nbstripout<=0.8.1; extra == "dev"
|
|
61
|
+
Requires-Dist: tabulate<=0.9.0; extra == "dev"
|
|
62
|
+
Requires-Dist: tomli-w<=1.2.0; extra == "dev"
|
|
63
|
+
Requires-Dist: kaleido<=1.2.0; extra == "dev"
|
|
64
|
+
Requires-Dist: pandas<=2.3.3; extra == "dev"
|
|
65
|
+
Requires-Dist: plotly<=6.3.0; extra == "dev"
|
|
66
|
+
Provides-Extra: mpi
|
|
67
|
+
Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
|
|
68
|
+
Provides-Extra: doc
|
|
69
|
+
Requires-Dist: struphy[phys]; extra == "doc"
|
|
70
|
+
Requires-Dist: jupyter<=1.1.1; extra == "doc"
|
|
71
|
+
Requires-Dist: nbconvert<=6.5.4; extra == "doc"
|
|
72
|
+
Requires-Dist: ipykernel<=7.1.0; extra == "doc"
|
|
73
|
+
Requires-Dist: sphinx<=8.1.3; extra == "doc"
|
|
74
|
+
Requires-Dist: sphinx-design<=0.6.1; extra == "doc"
|
|
75
|
+
Requires-Dist: lxml_html_clean<=0.4.3; extra == "doc"
|
|
76
|
+
Requires-Dist: sphinxcontrib-napoleon<=0.7; extra == "doc"
|
|
77
|
+
Requires-Dist: sphinx-copybutton<=0.5.2; extra == "doc"
|
|
78
|
+
Requires-Dist: pydata-sphinx-theme<=0.16.1; extra == "doc"
|
|
79
|
+
Requires-Dist: nbsphinx<=0.9.7; extra == "doc"
|
|
80
|
+
Requires-Dist: m2r2<=0.3.4; extra == "doc"
|
|
81
|
+
Requires-Dist: myst-parser<=4.0.1; extra == "doc"
|
|
82
|
+
Requires-Dist: mistune<=0.8.4; extra == "doc"
|
|
83
|
+
Requires-Dist: docutils<=0.21.2; extra == "doc"
|
|
84
|
+
Requires-Dist: ipyparallel<=9.0.2; extra == "doc"
|
|
85
|
+
Provides-Extra: likwid
|
|
86
|
+
Requires-Dist: struphy[dev]; extra == "likwid"
|
|
87
|
+
Requires-Dist: pylikwid; extra == "likwid"
|
|
88
|
+
Provides-Extra: all
|
|
89
|
+
Requires-Dist: struphy[phys]; extra == "all"
|
|
90
|
+
Requires-Dist: struphy[dev]; extra == "all"
|
|
91
|
+
Requires-Dist: struphy[mpi]; extra == "all"
|
|
92
|
+
Requires-Dist: struphy[doc]; extra == "all"
|
|
93
|
+
Dynamic: license-file
|
|
94
|
+
|
|
95
|
+
<h1 align="center">
|
|
96
|
+
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/struphy_header_with_subs.png">
|
|
97
|
+
</h1><br>
|
|
98
|
+
|
|
99
|
+
[](https://github.com/struphy-hub/struphy/releases)
|
|
100
|
+
[](https://github.com/struphy-hub/struphy/blob/devel/LICENSE)
|
|
101
|
+
[](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main)
|
|
102
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml)
|
|
103
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml)
|
|
104
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml)
|
|
105
|
+
[](https://pypi.org/project/struphy/)
|
|
106
|
+
[](
|
|
107
|
+
https://pypi.org/project/struphy/)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
# Welcome!
|
|
112
|
+
|
|
113
|
+
**This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
|
|
114
|
+
|
|
115
|
+
**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
|
|
116
|
+
|
|
117
|
+
* Maxwell's equations
|
|
118
|
+
* Magneto-hydrodynamics (MHD)
|
|
119
|
+
* Vlasov-Poisson and Vlasov-Maxwell kinetic models
|
|
120
|
+
* Drift-kinetic models for strongly magnetized plasma
|
|
121
|
+
* MHD-kinetic hybrid models
|
|
122
|
+
|
|
123
|
+
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.
|
|
124
|
+
|
|
125
|
+
Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eigenmode <br> (model "LinearMHDDriftKineticCC")
|
|
126
|
+
:-------------------------:|:-------------------------:
|
|
127
|
+
 | 
|
|
128
|
+
**Strong Landau damping <br>(model "VlasovAmpereOneSpecies")** | **Anisotropic diffusion <br> (propagator "ImplicitDiffusion")**
|
|
129
|
+
 | 
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
133
|
+
|
|
134
|
+
<h1 align="center">
|
|
135
|
+
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
|
|
136
|
+
</h1>
|
|
137
|
+
|
|
138
|
+
## Tutorials
|
|
139
|
+
|
|
140
|
+
Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## Quick install
|
|
144
|
+
|
|
145
|
+
Quick install on your computer (using a virtual environment):
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
python -m venv struphy_env
|
|
149
|
+
source struphy_env/bin/activate
|
|
150
|
+
pip install -U pip
|
|
151
|
+
pip install -U struphy
|
|
152
|
+
struphy compile
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
In case you face troubles with install/compile:
|
|
156
|
+
|
|
157
|
+
1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
|
|
158
|
+
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## Quick run
|
|
162
|
+
|
|
163
|
+
As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
struphy params Maxwell
|
|
167
|
+
```
|
|
168
|
+
Hit yes when prompted - this will create the file `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters, then run
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
python params_Maxwell.py
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
|
|
175
|
+
|
|
176
|
+
Parallel simulations are run for example with
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
pip install -U mpi4py
|
|
180
|
+
mpirun -n 4 python params_Maxwell.py
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
You can also put the run command in a batch script.
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
## Documentation
|
|
187
|
+
|
|
188
|
+
The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
|
|
189
|
+
|
|
190
|
+
* [Install](https://struphy-hub.github.io/struphy/sections/install.html)
|
|
191
|
+
* [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
|
|
192
|
+
* [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
|
|
193
|
+
* [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
## Get in touch
|
|
197
|
+
|
|
198
|
+
* [Issues](https://github.com/struphy-hub/struphy/issues)
|
|
199
|
+
* [Discussions](https://github.com/struphy-hub/struphy/discussions)
|
|
200
|
+
* [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
|
|
201
|
+
* [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
|
|
202
|
+
* [LinkedIn profile](https://www.linkedin.com/company/struphy/)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## Citing Struphy
|
|
206
|
+
|
|
207
|
+
* 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 2023, 263-271, Springer Nature Switzerland.
|
|
208
|
+
|
struphy-2.6.0/README.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<h1 align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/struphy_header_with_subs.png">
|
|
3
|
+
</h1><br>
|
|
4
|
+
|
|
5
|
+
[](https://github.com/struphy-hub/struphy/releases)
|
|
6
|
+
[](https://github.com/struphy-hub/struphy/blob/devel/LICENSE)
|
|
7
|
+
[](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main)
|
|
8
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/ubuntu-latest.yml)
|
|
9
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/macos-latest.yml)
|
|
10
|
+
[](https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml)
|
|
11
|
+
[](https://pypi.org/project/struphy/)
|
|
12
|
+
[](
|
|
13
|
+
https://pypi.org/project/struphy/)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Welcome!
|
|
18
|
+
|
|
19
|
+
**This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
|
|
20
|
+
|
|
21
|
+
**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
|
|
22
|
+
|
|
23
|
+
* Maxwell's equations
|
|
24
|
+
* Magneto-hydrodynamics (MHD)
|
|
25
|
+
* Vlasov-Poisson and Vlasov-Maxwell kinetic models
|
|
26
|
+
* Drift-kinetic models for strongly magnetized plasma
|
|
27
|
+
* MHD-kinetic hybrid models
|
|
28
|
+
|
|
29
|
+
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.
|
|
30
|
+
|
|
31
|
+
Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eigenmode <br> (model "LinearMHDDriftKineticCC")
|
|
32
|
+
:-------------------------:|:-------------------------:
|
|
33
|
+
 | 
|
|
34
|
+
**Strong Landau damping <br>(model "VlasovAmpereOneSpecies")** | **Anisotropic diffusion <br> (propagator "ImplicitDiffusion")**
|
|
35
|
+
 | 
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2025, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
39
|
+
|
|
40
|
+
<h1 align="center">
|
|
41
|
+
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
|
|
42
|
+
</h1>
|
|
43
|
+
|
|
44
|
+
## Tutorials
|
|
45
|
+
|
|
46
|
+
Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Quick install
|
|
50
|
+
|
|
51
|
+
Quick install on your computer (using a virtual environment):
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
python -m venv struphy_env
|
|
55
|
+
source struphy_env/bin/activate
|
|
56
|
+
pip install -U pip
|
|
57
|
+
pip install -U struphy
|
|
58
|
+
struphy compile
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
In case you face troubles with install/compile:
|
|
62
|
+
|
|
63
|
+
1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
|
|
64
|
+
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Quick run
|
|
68
|
+
|
|
69
|
+
As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
struphy params Maxwell
|
|
73
|
+
```
|
|
74
|
+
Hit yes when prompted - this will create the file `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters, then run
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
python params_Maxwell.py
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
|
|
81
|
+
|
|
82
|
+
Parallel simulations are run for example with
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
pip install -U mpi4py
|
|
86
|
+
mpirun -n 4 python params_Maxwell.py
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
You can also put the run command in a batch script.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## Documentation
|
|
93
|
+
|
|
94
|
+
The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
|
|
95
|
+
|
|
96
|
+
* [Install](https://struphy-hub.github.io/struphy/sections/install.html)
|
|
97
|
+
* [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
|
|
98
|
+
* [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
|
|
99
|
+
* [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## Get in touch
|
|
103
|
+
|
|
104
|
+
* [Issues](https://github.com/struphy-hub/struphy/issues)
|
|
105
|
+
* [Discussions](https://github.com/struphy-hub/struphy/discussions)
|
|
106
|
+
* [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
|
|
107
|
+
* [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
|
|
108
|
+
* [LinkedIn profile](https://www.linkedin.com/company/struphy/)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## Citing Struphy
|
|
112
|
+
|
|
113
|
+
* 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 2023, 263-271, Springer Nature Switzerland.
|
|
114
|
+
|
|
@@ -6,12 +6,13 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "struphy"
|
|
9
|
-
version = "2.
|
|
9
|
+
version = "2.6.0"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
authors = [
|
|
13
13
|
{ name = "Max Planck Institute for Plasma Physics" },
|
|
14
14
|
{ email = "stefan.possanner@ipp.mpg.de" },
|
|
15
|
+
{ email = "max.lindqvist@ipp.mpg.de" },
|
|
15
16
|
{ email = "eric.sonnendruecker@ipp.mpg.de" },
|
|
16
17
|
]
|
|
17
18
|
description = "Multi-model plasma physics package"
|
|
@@ -23,6 +24,7 @@ classifiers = [
|
|
|
23
24
|
]
|
|
24
25
|
dependencies = [
|
|
25
26
|
"numpy<=2.2.6",
|
|
27
|
+
"cunumpy<=0.1",
|
|
26
28
|
"pyccel<=2.0.1, >=2.0",
|
|
27
29
|
"scipy<=1.15.3",
|
|
28
30
|
"h5py<=3.14.0",
|
|
@@ -30,9 +32,10 @@ dependencies = [
|
|
|
30
32
|
"pyyaml<=6.0.3",
|
|
31
33
|
"vtk<=9.5.2",
|
|
32
34
|
"tqdm<=4.67.1",
|
|
33
|
-
"argcomplete<=3.6.
|
|
34
|
-
"pytest<=
|
|
35
|
+
"argcomplete<=3.6.3",
|
|
36
|
+
"pytest<=9.0.1",
|
|
35
37
|
"pytest-mpi<=0.6",
|
|
38
|
+
"line_profiler<=5.0.0",
|
|
36
39
|
]
|
|
37
40
|
|
|
38
41
|
[project.license]
|
|
@@ -44,19 +47,20 @@ phys = [
|
|
|
44
47
|
"desc-opt<=0.15.0",
|
|
45
48
|
]
|
|
46
49
|
dev = [
|
|
50
|
+
"struphy[mpi]",
|
|
47
51
|
"notebook<=7.4.7",
|
|
48
52
|
"autopep8<=2.3.2",
|
|
49
|
-
"isort<=
|
|
53
|
+
"isort<=7.0.0",
|
|
50
54
|
"flake8<=7.3.0",
|
|
51
|
-
"pylint<=
|
|
55
|
+
"pylint<=4.0.2",
|
|
52
56
|
"ssort<=0.15.0",
|
|
53
|
-
"add-trailing-comma<=
|
|
54
|
-
"ruff<=0.
|
|
55
|
-
"pre-commit<=4.
|
|
57
|
+
"add-trailing-comma<=4.0.0",
|
|
58
|
+
"ruff<=0.14.4, >=0.9.1",
|
|
59
|
+
"pre-commit<=4.4.0",
|
|
56
60
|
"nbstripout<=0.8.1",
|
|
57
61
|
"tabulate<=0.9.0",
|
|
58
62
|
"tomli-w<=1.2.0",
|
|
59
|
-
"kaleido<=1.
|
|
63
|
+
"kaleido<=1.2.0",
|
|
60
64
|
"pandas<=2.3.3",
|
|
61
65
|
"plotly<=6.3.0",
|
|
62
66
|
]
|
|
@@ -65,10 +69,14 @@ mpi = [
|
|
|
65
69
|
]
|
|
66
70
|
doc = [
|
|
67
71
|
"struphy[phys]",
|
|
72
|
+
"jupyter<=1.1.1",
|
|
73
|
+
"nbconvert<=6.5.4",
|
|
74
|
+
"ipykernel<=7.1.0",
|
|
68
75
|
"sphinx<=8.1.3",
|
|
69
76
|
"sphinx-design<=0.6.1",
|
|
70
77
|
"lxml_html_clean<=0.4.3",
|
|
71
78
|
"sphinxcontrib-napoleon<=0.7",
|
|
79
|
+
"sphinx-copybutton<=0.5.2",
|
|
72
80
|
"pydata-sphinx-theme<=0.16.1",
|
|
73
81
|
"nbsphinx<=0.9.7",
|
|
74
82
|
"m2r2<=0.3.4",
|
|
@@ -89,11 +97,11 @@ all = [
|
|
|
89
97
|
]
|
|
90
98
|
|
|
91
99
|
[project.urls]
|
|
92
|
-
homepage = "https://struphy.
|
|
93
|
-
documentation = "https://struphy.
|
|
94
|
-
repository = "https://
|
|
95
|
-
changelog = "https://
|
|
96
|
-
"Bug Tracker" = "https://
|
|
100
|
+
homepage = "https://struphy-hub.github.io/struphy/index.html"
|
|
101
|
+
documentation = "https://struphy-hub.github.io/struphy/index.html"
|
|
102
|
+
repository = "https://github.com/struphy-hub/struphy"
|
|
103
|
+
changelog = "https://github.com/struphy-hub/struphy/blob/devel/CHANGELOG.md"
|
|
104
|
+
"Bug Tracker" = "https://github.com/struphy-hub/struphy/issues"
|
|
97
105
|
|
|
98
106
|
[project.scripts]
|
|
99
107
|
struphy = "struphy.console.main:struphy"
|
|
@@ -124,7 +132,7 @@ kinetic-diagnostics = "struphy.diagnostics.console_diagn:main"
|
|
|
124
132
|
]
|
|
125
133
|
struphy = [
|
|
126
134
|
"compile_struphy.mk",
|
|
127
|
-
"psydac-2.
|
|
135
|
+
"psydac-2.6.0.dev0-py3-none-any.whl",
|
|
128
136
|
]
|
|
129
137
|
|
|
130
138
|
[tool.autopep8]
|
|
@@ -136,14 +144,9 @@ ignore = [
|
|
|
136
144
|
[tool.isort]
|
|
137
145
|
profile = "black"
|
|
138
146
|
line_length = 120
|
|
139
|
-
multi_line_output = 3
|
|
140
|
-
include_trailing_comma = true
|
|
141
|
-
force_grid_wrap = 0
|
|
142
|
-
combine_as_imports = true
|
|
143
147
|
|
|
144
148
|
[tool.pylint]
|
|
145
149
|
max-line-length = 120
|
|
146
|
-
quote-style = "single"
|
|
147
150
|
|
|
148
151
|
[tool.ruff]
|
|
149
152
|
line-length = 120
|
|
@@ -164,4 +167,15 @@ ignore = [
|
|
|
164
167
|
"F405",
|
|
165
168
|
"D211",
|
|
166
169
|
"D213",
|
|
170
|
+
"F841",
|
|
171
|
+
]
|
|
172
|
+
|
|
173
|
+
[tool.pytest.ini_options]
|
|
174
|
+
markers = [
|
|
175
|
+
"models",
|
|
176
|
+
"toy",
|
|
177
|
+
"fluid",
|
|
178
|
+
"kinetic",
|
|
179
|
+
"hybrid",
|
|
180
|
+
"single",
|
|
167
181
|
]
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import importlib
|
|
2
|
+
import importlib.metadata
|
|
3
|
+
import os
|
|
4
|
+
import re
|
|
5
|
+
import subprocess
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _install_psydac_if_needed():
|
|
10
|
+
# Current directory is libpathe root of the project
|
|
11
|
+
libpath = os.path.dirname(__file__)
|
|
12
|
+
|
|
13
|
+
# install psydac from wheel if not there
|
|
14
|
+
source_install = False
|
|
15
|
+
for req in importlib.metadata.distribution("struphy").requires:
|
|
16
|
+
if "psydac" in req:
|
|
17
|
+
source_install = True
|
|
18
|
+
|
|
19
|
+
# Get struphy version
|
|
20
|
+
struphy_ver = importlib.metadata.version("struphy")
|
|
21
|
+
|
|
22
|
+
# Check if psydac is installed
|
|
23
|
+
try:
|
|
24
|
+
import psydac
|
|
25
|
+
|
|
26
|
+
psydac_ver = importlib.metadata.version("psydac")
|
|
27
|
+
psydac_installed = True
|
|
28
|
+
except ModuleNotFoundError:
|
|
29
|
+
psydac_ver = None
|
|
30
|
+
psydac_installed = False
|
|
31
|
+
|
|
32
|
+
if source_install:
|
|
33
|
+
# If we are installing psydac from Github
|
|
34
|
+
if psydac_installed:
|
|
35
|
+
# only install (from .whl) if psydac not up-to-date
|
|
36
|
+
if psydac_ver < struphy_ver:
|
|
37
|
+
print(
|
|
38
|
+
f"You have psydac version {psydac_ver}, but version {struphy_ver} is available. Please re-install struphy (e.g. pip install .)\n",
|
|
39
|
+
)
|
|
40
|
+
sys.exit(1)
|
|
41
|
+
else:
|
|
42
|
+
print("Psydac is not installed. To install it, please re-install struphy (e.g. pip install .)\n")
|
|
43
|
+
sys.exit(1)
|
|
44
|
+
else:
|
|
45
|
+
# If we are installing psydac from a wheel
|
|
46
|
+
install_psydac = False
|
|
47
|
+
if psydac_installed:
|
|
48
|
+
# only install (from .whl) if psydac not up-to-date
|
|
49
|
+
if ".".join(psydac_ver.split(".")[:3]) != ".".join(struphy_ver.split(".")[:3]):
|
|
50
|
+
print(f"You have psydac version {psydac_ver}, but version {struphy_ver} is required.\n")
|
|
51
|
+
install_psydac = True
|
|
52
|
+
else:
|
|
53
|
+
install_psydac = True
|
|
54
|
+
|
|
55
|
+
if install_psydac:
|
|
56
|
+
psydac_file = None
|
|
57
|
+
for filename in os.listdir(libpath):
|
|
58
|
+
if re.match("psydac-", filename):
|
|
59
|
+
psydac_file = filename
|
|
60
|
+
if psydac_file is None:
|
|
61
|
+
raise FileNotFoundError("No psydac wheel file found.")
|
|
62
|
+
|
|
63
|
+
# Uninstall psydac
|
|
64
|
+
subprocess.run(["pip", "uninstall", "-y", "psydac"], check=True)
|
|
65
|
+
|
|
66
|
+
# Install psydac
|
|
67
|
+
print("\nInstalling Psydac ...")
|
|
68
|
+
cmd = [
|
|
69
|
+
"pip",
|
|
70
|
+
"install",
|
|
71
|
+
os.path.join(libpath, psydac_file),
|
|
72
|
+
]
|
|
73
|
+
subprocess.run(cmd, check=True)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
# Run on import
|
|
77
|
+
_install_psydac_if_needed()
|