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