struphy 3.0.2__tar.gz → 3.0.3__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-3.0.2/src/struphy.egg-info → struphy-3.0.3}/PKG-INFO +50 -50
- {struphy-3.0.2 → struphy-3.0.3}/pyproject.toml +52 -57
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/__init__.py +5 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/models/__init__.py +0 -2
- struphy-3.0.3/src/struphy/api/post_processing/__init__.py +3 -0
- struphy-3.0.3/src/struphy/api/simulation/__init__.py +3 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/psydac_derham.py +7 -6
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/base.py +110 -32
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/equils.py +87 -14
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/projected_equils.py +13 -5
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/base.py +86 -4
- struphy-3.0.3/src/struphy/initial/base.py +105 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/perturbations.py +23 -25
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/tests/test_init_perturbations.py +12 -12
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/io/options.py +22 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/io/setup.py +0 -60
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/base.py +7 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/__init__.py +0 -2
- struphy-3.0.3/src/struphy/models/base.py +804 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/cold_plasma.py +5 -6
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/cold_plasma_vlasov.py +33 -38
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/deterministic_particle_diffusion.py +1 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +12 -18
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/guiding_center.py +6 -4
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/hasegawa_wakatani.py +5 -10
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_extended_mh_duniform.py +12 -13
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_mhd.py +12 -13
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_mhd_driftkinetic_cc.py +8 -9
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_mhd_vlasov_cc.py +6 -7
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_mhd_vlasov_pc.py +7 -8
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_vlasov_ampere_one_species.py +47 -53
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/linear_vlasov_maxwell_one_species.py +2 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/maxwell.py +4 -5
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/poisson.py +7 -15
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/pressure_less_sph.py +1 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/random_particle_diffusion.py +1 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/shear_alfven.py +9 -16
- struphy-3.0.3/src/struphy/models/species.py +424 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/utils_testing.py +13 -32
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_LinearMHD.py +31 -27
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_Maxwell.py +43 -48
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_Poisson.py +29 -33
- struphy-3.0.2/src/struphy/models/tests/verification/test_verif_EulerSPH.py → struphy-3.0.3/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +15 -18
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +12 -20
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/two_fluid_quasi_neutral_toy.py +1 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/variables.py +273 -42
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/variational_barotropic_fluid.py +4 -5
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/variational_compressible_fluid.py +5 -6
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/variational_pressureless_fluid.py +3 -4
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_deltaf_mhd.py +13 -14
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_linear_mhd.py +13 -14
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_linear_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_mhd.py +10 -11
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_mhd_with_p.py +10 -11
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/visco_resistive_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/viscous_euler_sph.py +29 -21
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/viscous_fluid.py +6 -7
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/vlasov.py +1 -3
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/vlasov_ampere_one_species.py +32 -38
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/vlasov_maxwell_one_species.py +37 -43
- struphy-3.0.3/src/struphy/particles/parameters.py +285 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/base.py +172 -31
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/particles.py +27 -71
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/eval_kernels_gc.py +27 -23
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_kernels.py +1 -1
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/sph_smoothing_kernels.py +18 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_binning.py +35 -35
- struphy-3.0.3/src/struphy/pic/tests/test_set_zero_velocity.py +264 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_sph.py +381 -2
- struphy-3.0.3/src/struphy/post_processing/post_processing_tools.py +1345 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/base.py +16 -9
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/propagators_coupling.py +6 -30
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/propagators_fields.py +23 -120
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/propagators_markers.py +39 -79
- struphy-3.0.3/src/struphy/simulation/base.py +40 -0
- struphy-3.0.3/src/struphy/simulation/sim.py +1377 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/topology/grids.py +5 -0
- struphy-3.0.3/src/struphy/utils/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3/src/struphy.egg-info}/PKG-INFO +50 -50
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy.egg-info/SOURCES.txt +7 -3
- struphy-3.0.3/src/struphy.egg-info/requires.txt +70 -0
- struphy-3.0.2/src/struphy/initial/base.py +0 -48
- struphy-3.0.2/src/struphy/main.py +0 -847
- struphy-3.0.2/src/struphy/models/base.py +0 -1809
- struphy-3.0.2/src/struphy/models/euler_sph.py +0 -140
- struphy-3.0.2/src/struphy/models/species.py +0 -250
- struphy-3.0.2/src/struphy/particles/parameters.py +0 -238
- struphy-3.0.2/src/struphy/post_processing/post_processing_tools.py +0 -835
- struphy-3.0.2/src/struphy.egg-info/requires.txt +0 -70
- {struphy-3.0.2 → struphy-3.0.3}/LICENSE +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/README.md +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/setup.cfg +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/domains/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/equils/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/grids/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/maxwellians/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/ode/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/options/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/particles/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/api/perturbations/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/bsplines.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/bsplines_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/compile_struphy.mk +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/conftest.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/compile.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/format.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/likwid.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/main.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/params.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/parsers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/profile.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/test.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/console/tests/test_console.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/dependencies.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/console_diagn.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/diagn_tools.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/paraview/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/dispersion_relations/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/dispersion_relations/analytic.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/dispersion_relations/base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/dispersion_relations/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/examples/_draw_parallel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/examples/restelli2018/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/examples/restelli2018/callables.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/basis_projection_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/basis_projection_ops.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/linear_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/local_projectors_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/mass.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/mass_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/preconditioner.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_basis_ops.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_derham.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_eval_field.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_field_init.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_local_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_mass_matrices.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/utilities_local_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/feec/variational_utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/domains.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/evaluation_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/map_coef/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/mappings_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/tests/test_domain.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/transform_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/geometry/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/eigenfunctions.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/initial/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/io/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/io/output_handling.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kernel_arguments/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/maxwellians.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/moment_functions.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/tests/test_base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/linalg_kron.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/saddle_point.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/schur_solver.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/solver.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/default_params/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/default_params/test_models.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/tests/verification/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/models/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/ode/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/ode/solvers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/ode/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/ode/tests/test_ode_feec.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/ode/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/particles/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/physics/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/physics/physics.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/filter.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/accumulation/particles_to_grid.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/pusher.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/sampling_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/sobol_seq.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/sorting_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/sph_eval_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_pushers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_sorting.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/tests/test_tesselation.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/pic/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/basic.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/extraction_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/linear_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/polar/tests/test_polar.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/cprofile_analyser.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/plot_time_traces.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/orbits/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/profile_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/post_processing/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/propagators/tests/test_poisson.py +0 -0
- {struphy-3.0.2/src/struphy/topology → struphy-3.0.3/src/struphy/simulation}/__init__.py +0 -0
- {struphy-3.0.2/src/struphy/utils → struphy-3.0.3/src/struphy/topology}/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/utils/clone_config.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/utils/cupy_vs_numpy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/utils/pyccel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/utils/test_clone_config.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy/utils/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy.egg-info/dependency_links.txt +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy.egg-info/entry_points.txt +0 -0
- {struphy-3.0.2 → struphy-3.0.3}/src/struphy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: struphy
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.3
|
|
4
4
|
Summary: Multi-model plasma physics package
|
|
5
5
|
Author: Max Planck Institute for Plasma Physics
|
|
6
6
|
Author-email: stefan.possanner@ipp.mpg.de, max.lindqvist@ipp.mpg.de, eric.sonnendruecker@ipp.mpg.de
|
|
@@ -30,61 +30,61 @@ Classifier: Programming Language :: Python :: 3
|
|
|
30
30
|
Requires-Python: >=3.10
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: numpy
|
|
34
|
-
Requires-Dist: cunumpy
|
|
35
|
-
Requires-Dist: pyccel
|
|
36
|
-
Requires-Dist: feectools
|
|
37
|
-
Requires-Dist: scipy
|
|
38
|
-
Requires-Dist: h5py
|
|
39
|
-
Requires-Dist: matplotlib
|
|
40
|
-
Requires-Dist: pyyaml
|
|
41
|
-
Requires-Dist: vtk
|
|
42
|
-
Requires-Dist: tqdm
|
|
43
|
-
Requires-Dist: argcomplete
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist: pytest
|
|
46
|
-
Requires-Dist: pytest-
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
33
|
+
Requires-Dist: numpy<=2.2.6
|
|
34
|
+
Requires-Dist: cunumpy<=0.1
|
|
35
|
+
Requires-Dist: pyccel<=2.1.0,>=2.1
|
|
36
|
+
Requires-Dist: feectools<=0.1.3
|
|
37
|
+
Requires-Dist: scipy<=1.15.3
|
|
38
|
+
Requires-Dist: h5py<=3.15.1
|
|
39
|
+
Requires-Dist: matplotlib<=3.10.7
|
|
40
|
+
Requires-Dist: pyyaml<=6.0.3
|
|
41
|
+
Requires-Dist: vtk<=9.6.0
|
|
42
|
+
Requires-Dist: tqdm<=4.67.3
|
|
43
|
+
Requires-Dist: argcomplete<=3.6.3
|
|
44
|
+
Requires-Dist: plotly<=6.4.0
|
|
45
|
+
Requires-Dist: pytest<=9.0.2
|
|
46
|
+
Requires-Dist: pytest-mpi<=0.6
|
|
47
|
+
Requires-Dist: pytest-testmon<=2.2.0
|
|
48
|
+
Requires-Dist: line_profiler<=5.0.1
|
|
49
|
+
Requires-Dist: scope-profiler<=0.1.7,>=0.1.7
|
|
49
50
|
Provides-Extra: phys
|
|
50
|
-
Requires-Dist: gvec
|
|
51
|
-
Requires-Dist: desc-opt; extra == "phys"
|
|
51
|
+
Requires-Dist: gvec<=1.3.1,>=1.1.0; extra == "phys"
|
|
52
|
+
Requires-Dist: desc-opt<=0.16.0; extra == "phys"
|
|
52
53
|
Provides-Extra: dev
|
|
53
54
|
Requires-Dist: struphy[mpi]; extra == "dev"
|
|
54
|
-
Requires-Dist: notebook; extra == "dev"
|
|
55
|
-
Requires-Dist: autopep8; extra == "dev"
|
|
56
|
-
Requires-Dist: isort; extra == "dev"
|
|
57
|
-
Requires-Dist: flake8; extra == "dev"
|
|
58
|
-
Requires-Dist: pylint; extra == "dev"
|
|
59
|
-
Requires-Dist: ssort; extra == "dev"
|
|
60
|
-
Requires-Dist: add-trailing-comma; extra == "dev"
|
|
61
|
-
Requires-Dist: ruff
|
|
62
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
63
|
-
Requires-Dist: nbstripout; extra == "dev"
|
|
64
|
-
Requires-Dist: tabulate; extra == "dev"
|
|
65
|
-
Requires-Dist: tomli-w; extra == "dev"
|
|
66
|
-
Requires-Dist: kaleido; extra == "dev"
|
|
67
|
-
Requires-Dist: pandas; extra == "dev"
|
|
68
|
-
Requires-Dist: plotly; extra == "dev"
|
|
55
|
+
Requires-Dist: notebook<=7.5.3; extra == "dev"
|
|
56
|
+
Requires-Dist: autopep8<=2.3.2; extra == "dev"
|
|
57
|
+
Requires-Dist: isort<=8.0.0; extra == "dev"
|
|
58
|
+
Requires-Dist: flake8<=7.3.0; extra == "dev"
|
|
59
|
+
Requires-Dist: pylint<=4.0.5; extra == "dev"
|
|
60
|
+
Requires-Dist: ssort<=0.16.0; extra == "dev"
|
|
61
|
+
Requires-Dist: add-trailing-comma<=4.0.0; extra == "dev"
|
|
62
|
+
Requires-Dist: ruff<=0.15.2,>=0.15.0; extra == "dev"
|
|
63
|
+
Requires-Dist: pre-commit<=4.5.1; extra == "dev"
|
|
64
|
+
Requires-Dist: nbstripout<=0.9.1; extra == "dev"
|
|
65
|
+
Requires-Dist: tabulate<=0.9.0; extra == "dev"
|
|
66
|
+
Requires-Dist: tomli-w<=1.2.0; extra == "dev"
|
|
67
|
+
Requires-Dist: kaleido<=1.2.0; extra == "dev"
|
|
68
|
+
Requires-Dist: pandas<=3.0.1; extra == "dev"
|
|
69
69
|
Provides-Extra: mpi
|
|
70
|
-
Requires-Dist: mpi4py; extra == "mpi"
|
|
70
|
+
Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
|
|
71
71
|
Provides-Extra: doc
|
|
72
72
|
Requires-Dist: struphy[phys]; extra == "doc"
|
|
73
|
-
Requires-Dist: jupyter; extra == "doc"
|
|
74
|
-
Requires-Dist: nbconvert; extra == "doc"
|
|
75
|
-
Requires-Dist: ipykernel; extra == "doc"
|
|
76
|
-
Requires-Dist: sphinx; extra == "doc"
|
|
77
|
-
Requires-Dist: sphinx-design; extra == "doc"
|
|
78
|
-
Requires-Dist: lxml_html_clean; extra == "doc"
|
|
79
|
-
Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
|
|
80
|
-
Requires-Dist: sphinx-copybutton; extra == "doc"
|
|
81
|
-
Requires-Dist: pydata-sphinx-theme; extra == "doc"
|
|
82
|
-
Requires-Dist: nbsphinx; extra == "doc"
|
|
83
|
-
Requires-Dist: m2r2; extra == "doc"
|
|
84
|
-
Requires-Dist: myst-parser; extra == "doc"
|
|
85
|
-
Requires-Dist: mistune; extra == "doc"
|
|
86
|
-
Requires-Dist: docutils; extra == "doc"
|
|
87
|
-
Requires-Dist: ipyparallel; extra == "doc"
|
|
73
|
+
Requires-Dist: jupyter<=1.1.1; extra == "doc"
|
|
74
|
+
Requires-Dist: nbconvert<=6.5.4; extra == "doc"
|
|
75
|
+
Requires-Dist: ipykernel<=7.1.0; extra == "doc"
|
|
76
|
+
Requires-Dist: sphinx<=9.1.0; extra == "doc"
|
|
77
|
+
Requires-Dist: sphinx-design<=0.7.0; extra == "doc"
|
|
78
|
+
Requires-Dist: lxml_html_clean<=0.4.3; extra == "doc"
|
|
79
|
+
Requires-Dist: sphinxcontrib-napoleon<=0.7; extra == "doc"
|
|
80
|
+
Requires-Dist: sphinx-copybutton<=0.5.2; extra == "doc"
|
|
81
|
+
Requires-Dist: pydata-sphinx-theme<=0.16.1; extra == "doc"
|
|
82
|
+
Requires-Dist: nbsphinx<=0.9.8; extra == "doc"
|
|
83
|
+
Requires-Dist: m2r2<=0.3.4; extra == "doc"
|
|
84
|
+
Requires-Dist: myst-parser<=5.0.0; extra == "doc"
|
|
85
|
+
Requires-Dist: mistune<=0.8.4; extra == "doc"
|
|
86
|
+
Requires-Dist: docutils<=0.22.4; extra == "doc"
|
|
87
|
+
Requires-Dist: ipyparallel<=9.0.2; extra == "doc"
|
|
88
88
|
Provides-Extra: likwid
|
|
89
89
|
Requires-Dist: struphy[dev]; extra == "likwid"
|
|
90
90
|
Requires-Dist: pylikwid; extra == "likwid"
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "struphy"
|
|
9
|
-
version = "3.0.
|
|
9
|
+
version = "3.0.3"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
authors = [
|
|
@@ -21,24 +21,25 @@ keywords = [
|
|
|
21
21
|
]
|
|
22
22
|
classifiers = [
|
|
23
23
|
"Programming Language :: Python :: 3",
|
|
24
|
-
|
|
24
|
+
]
|
|
25
25
|
dependencies = [
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
26
|
+
"numpy<=2.2.6",
|
|
27
|
+
"cunumpy<=0.1",
|
|
28
|
+
"pyccel<=2.1.0, >=2.1",
|
|
29
|
+
"feectools<=0.1.3",
|
|
30
|
+
"scipy<=1.15.3",
|
|
31
|
+
"h5py<=3.15.1",
|
|
32
|
+
"matplotlib<=3.10.7",
|
|
33
|
+
"pyyaml<=6.0.3",
|
|
34
|
+
"vtk<=9.6.0",
|
|
35
|
+
"tqdm<=4.67.3",
|
|
36
|
+
"argcomplete<=3.6.3",
|
|
37
|
+
"plotly<=6.4.0",
|
|
38
|
+
"pytest<=9.0.2",
|
|
39
|
+
"pytest-mpi<=0.6",
|
|
40
|
+
"pytest-testmon<=2.2.0",
|
|
41
|
+
"line_profiler<=5.0.1",
|
|
42
|
+
"scope-profiler<=0.1.7, >=0.1.7",
|
|
42
43
|
]
|
|
43
44
|
|
|
44
45
|
[project.license]
|
|
@@ -46,47 +47,46 @@ file = "LICENSE"
|
|
|
46
47
|
|
|
47
48
|
[project.optional-dependencies]
|
|
48
49
|
phys = [
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
"gvec<=1.3.1, >=1.1.0",
|
|
51
|
+
"desc-opt<=0.16.0",
|
|
51
52
|
]
|
|
52
53
|
dev = [
|
|
53
54
|
"struphy[mpi]",
|
|
54
|
-
"notebook",
|
|
55
|
-
"autopep8",
|
|
56
|
-
"isort",
|
|
57
|
-
"flake8",
|
|
58
|
-
"pylint",
|
|
59
|
-
"ssort",
|
|
60
|
-
"add-trailing-comma",
|
|
61
|
-
"ruff>=0.15.0",
|
|
62
|
-
"pre-commit",
|
|
63
|
-
"nbstripout",
|
|
64
|
-
"tabulate",
|
|
65
|
-
"tomli-w",
|
|
66
|
-
"kaleido",
|
|
67
|
-
"pandas",
|
|
68
|
-
"plotly",
|
|
55
|
+
"notebook<=7.5.3",
|
|
56
|
+
"autopep8<=2.3.2",
|
|
57
|
+
"isort<=8.0.0",
|
|
58
|
+
"flake8<=7.3.0",
|
|
59
|
+
"pylint<=4.0.5",
|
|
60
|
+
"ssort<=0.16.0",
|
|
61
|
+
"add-trailing-comma<=4.0.0",
|
|
62
|
+
"ruff<=0.15.2, >=0.15.0",
|
|
63
|
+
"pre-commit<=4.5.1",
|
|
64
|
+
"nbstripout<=0.9.1",
|
|
65
|
+
"tabulate<=0.9.0",
|
|
66
|
+
"tomli-w<=1.2.0",
|
|
67
|
+
"kaleido<=1.2.0",
|
|
68
|
+
"pandas<=3.0.1",
|
|
69
69
|
]
|
|
70
70
|
mpi = [
|
|
71
|
-
|
|
71
|
+
"mpi4py<=4.1.1",
|
|
72
72
|
]
|
|
73
73
|
doc = [
|
|
74
74
|
"struphy[phys]",
|
|
75
|
-
"jupyter",
|
|
76
|
-
"nbconvert",
|
|
77
|
-
"ipykernel",
|
|
78
|
-
"sphinx",
|
|
79
|
-
"sphinx-design",
|
|
80
|
-
"lxml_html_clean",
|
|
81
|
-
"sphinxcontrib-napoleon",
|
|
82
|
-
"sphinx-copybutton",
|
|
83
|
-
"pydata-sphinx-theme",
|
|
84
|
-
"nbsphinx",
|
|
85
|
-
"m2r2",
|
|
86
|
-
"myst-parser",
|
|
87
|
-
"mistune",
|
|
88
|
-
"docutils",
|
|
89
|
-
"ipyparallel",
|
|
75
|
+
"jupyter<=1.1.1",
|
|
76
|
+
"nbconvert<=6.5.4",
|
|
77
|
+
"ipykernel<=7.1.0",
|
|
78
|
+
"sphinx<=9.1.0",
|
|
79
|
+
"sphinx-design<=0.7.0",
|
|
80
|
+
"lxml_html_clean<=0.4.3",
|
|
81
|
+
"sphinxcontrib-napoleon<=0.7",
|
|
82
|
+
"sphinx-copybutton<=0.5.2",
|
|
83
|
+
"pydata-sphinx-theme<=0.16.1",
|
|
84
|
+
"nbsphinx<=0.9.8",
|
|
85
|
+
"m2r2<=0.3.4",
|
|
86
|
+
"myst-parser<=5.0.0",
|
|
87
|
+
"mistune<=0.8.4",
|
|
88
|
+
"docutils<=0.22.4",
|
|
89
|
+
"ipyparallel<=9.0.2",
|
|
90
90
|
]
|
|
91
91
|
likwid = [
|
|
92
92
|
"struphy[dev]",
|
|
@@ -137,17 +137,12 @@ ignore = [
|
|
|
137
137
|
[tool.isort]
|
|
138
138
|
profile = "black"
|
|
139
139
|
line_length = 120
|
|
140
|
-
# multi_line_output = 3
|
|
141
|
-
# include_trailing_comma = true
|
|
142
|
-
# force_grid_wrap = 0
|
|
143
|
-
# combine_as_imports = true
|
|
144
140
|
|
|
145
141
|
[tool.pylint]
|
|
146
142
|
max-line-length = 120
|
|
147
143
|
|
|
148
144
|
[tool.ruff]
|
|
149
145
|
line-length = 120
|
|
150
|
-
# exclude = ["__pyccel__"]
|
|
151
146
|
|
|
152
147
|
[tool.ruff.lint]
|
|
153
148
|
ignore = [
|
|
@@ -165,7 +160,7 @@ ignore = [
|
|
|
165
160
|
"F405",
|
|
166
161
|
"D211",
|
|
167
162
|
"D213",
|
|
168
|
-
"F841",
|
|
163
|
+
"F841",
|
|
169
164
|
]
|
|
170
165
|
|
|
171
166
|
[tool.pytest.ini_options]
|
|
@@ -18,6 +18,8 @@ from struphy.api.particles import (
|
|
|
18
18
|
WeightsParameters,
|
|
19
19
|
)
|
|
20
20
|
from struphy.api.perturbations import perturbations
|
|
21
|
+
from struphy.api.post_processing import PlottingData, PostProcessor
|
|
22
|
+
from struphy.api.simulation import Simulation
|
|
21
23
|
|
|
22
24
|
__all__ = [
|
|
23
25
|
"domains",
|
|
@@ -36,4 +38,7 @@ __all__ = [
|
|
|
36
38
|
"DerhamOptions",
|
|
37
39
|
"FieldsBackground",
|
|
38
40
|
"ButcherTableau",
|
|
41
|
+
"PostProcessor",
|
|
42
|
+
"PlottingData",
|
|
43
|
+
"Simulation",
|
|
39
44
|
]
|
|
@@ -6,7 +6,6 @@ from struphy.models.deterministic_particle_diffusion import (
|
|
|
6
6
|
from struphy.models.drift_kinetic_electrostatic_adiabatic import (
|
|
7
7
|
DriftKineticElectrostaticAdiabatic,
|
|
8
8
|
)
|
|
9
|
-
from struphy.models.euler_sph import EulerSPH
|
|
10
9
|
from struphy.models.guiding_center import GuidingCenter
|
|
11
10
|
from struphy.models.hasegawa_wakatani import HasegawaWakatani
|
|
12
11
|
from struphy.models.linear_extended_mh_duniform import LinearExtendedMHDuniform
|
|
@@ -49,7 +48,6 @@ __all__ = [
|
|
|
49
48
|
"ColdPlasmaVlasov",
|
|
50
49
|
"DeterministicParticleDiffusion",
|
|
51
50
|
"DriftKineticElectrostaticAdiabatic",
|
|
52
|
-
"EulerSPH",
|
|
53
51
|
"GuidingCenter",
|
|
54
52
|
"HasegawaWakatani",
|
|
55
53
|
"LinearExtendedMHDuniform",
|
|
@@ -890,7 +890,7 @@ class Derham:
|
|
|
890
890
|
perturbations: Perturbation | list = None,
|
|
891
891
|
domain: Domain = None,
|
|
892
892
|
equil: FluidEquilibrium = None,
|
|
893
|
-
verbose: bool =
|
|
893
|
+
verbose: bool = False,
|
|
894
894
|
):
|
|
895
895
|
"""Creat a callable spline function.
|
|
896
896
|
|
|
@@ -1442,7 +1442,7 @@ class SplineFunction:
|
|
|
1442
1442
|
perturbations: Perturbation | list = None,
|
|
1443
1443
|
domain: Domain = None,
|
|
1444
1444
|
equil: FluidEquilibrium = None,
|
|
1445
|
-
verbose: bool =
|
|
1445
|
+
verbose: bool = False,
|
|
1446
1446
|
):
|
|
1447
1447
|
self._name = name
|
|
1448
1448
|
self._space_id = space_id
|
|
@@ -1494,7 +1494,7 @@ class SplineFunction:
|
|
|
1494
1494
|
print(f"\nAllocated SplineFuntion '{self.name}' in space '{self.space_id}'.")
|
|
1495
1495
|
|
|
1496
1496
|
if self.backgrounds is not None or self.perturbations is not None:
|
|
1497
|
-
self.initialize_coeffs(domain=self.domain, equil=self.equil)
|
|
1497
|
+
self.initialize_coeffs(domain=self.domain, equil=self.equil, verbose=verbose)
|
|
1498
1498
|
|
|
1499
1499
|
@property
|
|
1500
1500
|
def name(self):
|
|
@@ -1675,6 +1675,7 @@ class SplineFunction:
|
|
|
1675
1675
|
perturbations: Perturbation | list = None,
|
|
1676
1676
|
domain: Domain = None,
|
|
1677
1677
|
equil: FluidEquilibrium = None,
|
|
1678
|
+
verbose: bool = False,
|
|
1678
1679
|
):
|
|
1679
1680
|
"""
|
|
1680
1681
|
Set the initial conditions for self.vector.
|
|
@@ -1707,14 +1708,14 @@ class SplineFunction:
|
|
|
1707
1708
|
# start from zero coeffs
|
|
1708
1709
|
self._vector *= 0.0
|
|
1709
1710
|
|
|
1710
|
-
if MPI.COMM_WORLD.Get_rank() == 0:
|
|
1711
|
+
if verbose and MPI.COMM_WORLD.Get_rank() == 0:
|
|
1711
1712
|
print(f"Initializing {self.name} ...")
|
|
1712
1713
|
|
|
1713
1714
|
# add backgrounds to initial vector
|
|
1714
1715
|
if self.backgrounds is not None:
|
|
1715
1716
|
for fb in self.backgrounds:
|
|
1716
1717
|
assert isinstance(fb, FieldsBackground)
|
|
1717
|
-
if MPI.COMM_WORLD.Get_rank() == 0:
|
|
1718
|
+
if verbose and MPI.COMM_WORLD.Get_rank() == 0:
|
|
1718
1719
|
print(f"Adding background {fb} ...")
|
|
1719
1720
|
|
|
1720
1721
|
# special case of const
|
|
@@ -1769,7 +1770,7 @@ class SplineFunction:
|
|
|
1769
1770
|
# add perturbations to coefficient vector
|
|
1770
1771
|
if self.perturbations is not None:
|
|
1771
1772
|
for ptb in self.perturbations:
|
|
1772
|
-
if MPI.COMM_WORLD.Get_rank() == 0:
|
|
1773
|
+
if verbose and MPI.COMM_WORLD.Get_rank() == 0:
|
|
1773
1774
|
print(f"Adding perturbation {ptb} ...")
|
|
1774
1775
|
|
|
1775
1776
|
# special case of white noise in logical space for different components
|
|
@@ -11,14 +11,60 @@ from struphy.geometry.base import Domain
|
|
|
11
11
|
|
|
12
12
|
class FluidEquilibrium(metaclass=ABCMeta):
|
|
13
13
|
"""
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
Abstract base class for callable fluid equilibria on arbitrary domains.
|
|
15
|
+
|
|
16
|
+
This class provides a unified interface for representing fluid equilibrium states,
|
|
17
|
+
including velocity, pressure, and number density fields. It supports coordinate
|
|
18
|
+
transformations between logical (reference) and physical domains through the Domain
|
|
19
|
+
object, enabling computations on mapped domains.
|
|
20
|
+
|
|
21
|
+
Attributes
|
|
22
|
+
----------
|
|
23
|
+
params : dict
|
|
24
|
+
Dictionary of parameters passed to the class initialization. Automatically
|
|
25
|
+
strips 'self' and '__class__' entries.
|
|
26
|
+
domain : Domain
|
|
27
|
+
Domain object that characterizes the mapping from the logical cube [0, 1]^3
|
|
28
|
+
to the physical domain. Enables coordinate transformations and differential
|
|
29
|
+
form conversions (0-forms, 1-forms, 2-forms, 3-forms).
|
|
30
|
+
|
|
31
|
+
Implementation Requirements
|
|
32
|
+
---------------------------
|
|
33
|
+
Child classes must provide at least one method from each of these pairs:
|
|
34
|
+
|
|
35
|
+
* Velocity: either ``u_xyz`` (Cartesian) or override ``uv`` (logical coordinates)
|
|
36
|
+
* Pressure: either ``p_xyz`` (Cartesian) or override ``p0`` (0-form on logical domain)
|
|
37
|
+
* Number Density: either ``n_xyz`` (Cartesian) or override ``n0`` (0-form on logical domain)
|
|
38
|
+
|
|
39
|
+
Derived Quantities
|
|
40
|
+
------------------
|
|
41
|
+
The class automatically provides derived fields computed from the basic fields:
|
|
42
|
+
|
|
43
|
+
* Temperature: ``t0``, ``t3`` (from p/n)
|
|
44
|
+
* Thermal velocity: ``vth0``, ``vth3`` (from temperature)
|
|
45
|
+
* Entropy density: ``s0_monoatomic``, ``s3_monoatomic``, ``s0_diatomic``, ``s3_diatomic``
|
|
46
|
+
|
|
47
|
+
Differential Forms
|
|
48
|
+
-------------------
|
|
49
|
+
Vector fields (velocity) are available as:
|
|
50
|
+
|
|
51
|
+
* ``uv``: contravariant components on logical domain
|
|
52
|
+
* ``u1``: 1-form components
|
|
53
|
+
* ``u2``: 2-form components
|
|
54
|
+
* ``u_cart``: Cartesian components with physical coordinates
|
|
55
|
+
|
|
56
|
+
Scalar fields are available as 0-forms (point values) and 3-forms (densities):
|
|
57
|
+
|
|
58
|
+
* ``p0``, ``p3``: pressure
|
|
59
|
+
* ``n0``, ``n3``: number density
|
|
60
|
+
* ``t0``, ``t3``: temperature
|
|
61
|
+
* ``q0``, ``q3``: square root of pressure
|
|
62
|
+
|
|
63
|
+
Notes
|
|
64
|
+
-----
|
|
65
|
+
The class uses abstract methods to enforce implementation in child classes.
|
|
66
|
+
Subclasses should override coordinate-appropriate base methods (CartesianFluidEquilibrium
|
|
67
|
+
or LogicalFluidEquilibrium) to simplify implementation.
|
|
22
68
|
"""
|
|
23
69
|
|
|
24
70
|
@property
|
|
@@ -50,6 +96,13 @@ class FluidEquilibrium(metaclass=ABCMeta):
|
|
|
50
96
|
assert isinstance(new_domain, Domain) or new_domain is None
|
|
51
97
|
self._domain = new_domain
|
|
52
98
|
|
|
99
|
+
def __repr__(self):
|
|
100
|
+
out = f"{self.__class__.__name__}"
|
|
101
|
+
for k, v in self.params.items():
|
|
102
|
+
out += f"\n {k}:".ljust(20)
|
|
103
|
+
out += f"{v}"
|
|
104
|
+
return out
|
|
105
|
+
|
|
53
106
|
###########################
|
|
54
107
|
# Vector-valued callables #
|
|
55
108
|
###########################
|
|
@@ -256,7 +309,11 @@ class FluidEquilibrium(metaclass=ABCMeta):
|
|
|
256
309
|
|
|
257
310
|
class CartesianFluidEquilibrium(FluidEquilibrium):
|
|
258
311
|
r"""
|
|
259
|
-
|
|
312
|
+
Specialization for equilibria defined in Cartesian coordinates.
|
|
313
|
+
|
|
314
|
+
Child classes must implement the abstract methods ``u_xyz``, ``p_xyz``, and ``n_xyz``,
|
|
315
|
+
which return velocity, pressure, and number density in Cartesian physical space (x, y, z).
|
|
316
|
+
The base class automatically handles coordinate transformations and differential form conversions.
|
|
260
317
|
"""
|
|
261
318
|
|
|
262
319
|
@abstractmethod
|
|
@@ -282,7 +339,12 @@ class CartesianFluidEquilibrium(FluidEquilibrium):
|
|
|
282
339
|
|
|
283
340
|
class LogicalFluidEquilibrium(FluidEquilibrium):
|
|
284
341
|
r"""
|
|
285
|
-
|
|
342
|
+
Specialization for equilibria defined on the logical cube [0, 1]^3.
|
|
343
|
+
|
|
344
|
+
Child classes must implement the abstract methods ``uv``, ``p0``, and ``n0``,
|
|
345
|
+
which return contravariant velocity, 0-form pressure, and 0-form number density
|
|
346
|
+
on the logical reference domain. Useful for direct implementation when physical
|
|
347
|
+
coordinates are obtained via coordinate transformation through the domain mapping.
|
|
286
348
|
"""
|
|
287
349
|
|
|
288
350
|
@abstractmethod
|
|
@@ -309,8 +371,11 @@ class LogicalFluidEquilibrium(FluidEquilibrium):
|
|
|
309
371
|
|
|
310
372
|
class NumericalFluidEquilibrium(LogicalFluidEquilibrium):
|
|
311
373
|
r"""
|
|
312
|
-
|
|
313
|
-
|
|
374
|
+
Specialization for equilibria with numerically computed domain mappings.
|
|
375
|
+
|
|
376
|
+
Child classes must provide a ``numerical_domain`` property that returns a Domain object
|
|
377
|
+
representing the mapping from the logical cube [0, 1]^3 to the physical domain.
|
|
378
|
+
This class overrides the domain property to use the numerically computed mapping.
|
|
314
379
|
"""
|
|
315
380
|
|
|
316
381
|
@property
|
|
@@ -327,12 +392,11 @@ class NumericalFluidEquilibrium(LogicalFluidEquilibrium):
|
|
|
327
392
|
|
|
328
393
|
class FluidEquilibriumWithB(FluidEquilibrium):
|
|
329
394
|
"""
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
Any child class must provide the following callables:
|
|
395
|
+
Extension of FluidEquilibrium with magnetic field and its gradient.
|
|
333
396
|
|
|
334
|
-
|
|
335
|
-
|
|
397
|
+
Child classes must implement either Cartesian (``b_xyz``, ``gradB_xyz``) or
|
|
398
|
+
logical (``bv``, ``gradB1``) methods for magnetic field and its gradient.
|
|
399
|
+
Provides methods for 1-form and 2-form transformations of the magnetic field.
|
|
336
400
|
"""
|
|
337
401
|
|
|
338
402
|
@FluidEquilibrium.domain.setter
|
|
@@ -624,7 +688,10 @@ class FluidEquilibriumWithB(FluidEquilibrium):
|
|
|
624
688
|
|
|
625
689
|
class CartesianFluidEquilibriumWithB(CartesianFluidEquilibrium):
|
|
626
690
|
r"""
|
|
627
|
-
|
|
691
|
+
Specialization for fluid equilibria with magnetic field in Cartesian coordinates.
|
|
692
|
+
|
|
693
|
+
Child classes must implement the abstract methods ``b_xyz`` and ``gradB_xyz``,
|
|
694
|
+
which return magnetic field and its gradient strength in Cartesian physical space.
|
|
628
695
|
"""
|
|
629
696
|
|
|
630
697
|
@abstractmethod
|
|
@@ -645,7 +712,10 @@ class CartesianFluidEquilibriumWithB(CartesianFluidEquilibrium):
|
|
|
645
712
|
|
|
646
713
|
class LogicalFluidEquilibriumWithB(LogicalFluidEquilibrium):
|
|
647
714
|
r"""
|
|
648
|
-
|
|
715
|
+
Specialization for fluid equilibria with magnetic field on the logical cube [0, 1]^3.
|
|
716
|
+
|
|
717
|
+
Child classes must implement the abstract methods ``bv`` (contravariant magnetic field)
|
|
718
|
+
and ``gradB1`` (1-form gradient of magnetic field strength) on the logical domain.
|
|
649
719
|
"""
|
|
650
720
|
|
|
651
721
|
@abstractmethod
|
|
@@ -669,8 +739,10 @@ class LogicalFluidEquilibriumWithB(LogicalFluidEquilibrium):
|
|
|
669
739
|
|
|
670
740
|
class NumericalFluidEquilibriumWithB(LogicalFluidEquilibriumWithB):
|
|
671
741
|
r"""
|
|
672
|
-
|
|
673
|
-
|
|
742
|
+
Specialization for fluid equilibria with magnetic field and numerically computed domain mappings.
|
|
743
|
+
|
|
744
|
+
Child classes must provide a ``numerical_domain`` property that returns a Domain object.
|
|
745
|
+
This class overrides the domain property to use the numerically computed mapping.
|
|
674
746
|
"""
|
|
675
747
|
|
|
676
748
|
@property
|
|
@@ -687,12 +759,12 @@ class NumericalFluidEquilibriumWithB(LogicalFluidEquilibriumWithB):
|
|
|
687
759
|
|
|
688
760
|
class MHDequilibrium(FluidEquilibriumWithB):
|
|
689
761
|
"""
|
|
690
|
-
|
|
691
|
-
The mean velocity is returned as j/n (overriding the base class).
|
|
692
|
-
|
|
693
|
-
Any child class must provide the following callables:
|
|
762
|
+
Extension of FluidEquilibriumWithB with current density field.
|
|
694
763
|
|
|
695
|
-
|
|
764
|
+
Child classes must implement either Cartesian (``j_xyz``) or logical (``jv``) methods
|
|
765
|
+
for current density. The velocity field is derived from current density as j/n,
|
|
766
|
+
overriding the base FluidEquilibrium. Provides methods for 1-form and 2-form
|
|
767
|
+
transformations of the current density.
|
|
696
768
|
"""
|
|
697
769
|
|
|
698
770
|
@FluidEquilibriumWithB.domain.setter
|
|
@@ -1221,8 +1293,10 @@ class MHDequilibrium(FluidEquilibriumWithB):
|
|
|
1221
1293
|
|
|
1222
1294
|
class CartesianMHDequilibrium(MHDequilibrium):
|
|
1223
1295
|
r"""
|
|
1224
|
-
|
|
1225
|
-
|
|
1296
|
+
Specialization for MHD equilibria in Cartesian coordinates.
|
|
1297
|
+
|
|
1298
|
+
Child classes must implement the abstract methods ``b_xyz``, ``j_xyz``, ``p_xyz``,
|
|
1299
|
+
``n_xyz``, and ``gradB_xyz`` in Cartesian physical space.
|
|
1226
1300
|
"""
|
|
1227
1301
|
|
|
1228
1302
|
@abstractmethod
|
|
@@ -1395,8 +1469,10 @@ class AxisymmMHDequilibrium(CartesianMHDequilibrium):
|
|
|
1395
1469
|
|
|
1396
1470
|
class LogicalMHDequilibrium(MHDequilibrium):
|
|
1397
1471
|
r"""
|
|
1398
|
-
|
|
1399
|
-
|
|
1472
|
+
Specialization for MHD equilibria on the logical cube [0, 1]^3.
|
|
1473
|
+
|
|
1474
|
+
Child classes must implement the abstract methods ``bv``, ``jv``, ``p0``, ``n0``,
|
|
1475
|
+
and ``gradB1`` on the logical reference domain.
|
|
1400
1476
|
"""
|
|
1401
1477
|
|
|
1402
1478
|
@abstractmethod
|
|
@@ -1439,8 +1515,10 @@ class LogicalMHDequilibrium(MHDequilibrium):
|
|
|
1439
1515
|
|
|
1440
1516
|
class NumericalMHDequilibrium(LogicalMHDequilibrium):
|
|
1441
1517
|
r"""
|
|
1442
|
-
|
|
1443
|
-
|
|
1518
|
+
Specialization for MHD equilibria with numerically computed domain mappings.
|
|
1519
|
+
|
|
1520
|
+
Child classes must provide a ``numerical_domain`` property that returns a Domain object.
|
|
1521
|
+
This class overrides the domain property to use the numerically computed mapping.
|
|
1444
1522
|
"""
|
|
1445
1523
|
|
|
1446
1524
|
@property
|