struphy 3.0.2__tar.gz → 3.0.4__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.4}/PKG-INFO +74 -51
- {struphy-3.0.2 → struphy-3.0.4}/README.md +24 -1
- {struphy-3.0.2 → struphy-3.0.4}/pyproject.toml +52 -57
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/__init__.py +5 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/models/__init__.py +0 -2
- struphy-3.0.4/src/struphy/api/post_processing/__init__.py +3 -0
- struphy-3.0.4/src/struphy/api/simulation/__init__.py +3 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/psydac_derham.py +7 -6
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/base.py +110 -32
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/equils.py +87 -14
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/projected_equils.py +13 -5
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/base.py +86 -4
- struphy-3.0.4/src/struphy/initial/base.py +105 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/perturbations.py +23 -25
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/tests/test_init_perturbations.py +12 -12
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/options.py +22 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/setup.py +0 -60
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/base.py +7 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/__init__.py +0 -2
- struphy-3.0.4/src/struphy/models/base.py +804 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/cold_plasma.py +5 -6
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/cold_plasma_vlasov.py +33 -38
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/deterministic_particle_diffusion.py +1 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +12 -18
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/guiding_center.py +6 -4
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/hasegawa_wakatani.py +5 -10
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_extended_mh_duniform.py +12 -13
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd.py +12 -13
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_driftkinetic_cc.py +8 -9
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_vlasov_cc.py +6 -7
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_mhd_vlasov_pc.py +7 -8
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_vlasov_ampere_one_species.py +47 -53
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/linear_vlasov_maxwell_one_species.py +2 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/maxwell.py +4 -5
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/poisson.py +7 -15
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/pressure_less_sph.py +1 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/random_particle_diffusion.py +1 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/shear_alfven.py +9 -16
- struphy-3.0.4/src/struphy/models/species.py +424 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/utils_testing.py +13 -32
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_LinearMHD.py +31 -27
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_Maxwell.py +43 -48
- {struphy-3.0.2 → struphy-3.0.4}/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.4/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +15 -18
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +12 -20
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/two_fluid_quasi_neutral_toy.py +1 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variables.py +273 -42
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_barotropic_fluid.py +4 -5
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_compressible_fluid.py +5 -6
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/variational_pressureless_fluid.py +3 -4
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_deltaf_mhd.py +13 -14
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_linear_mhd.py +13 -14
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_linear_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd.py +10 -11
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd_with_p.py +10 -11
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/visco_resistive_mhd_with_q.py +10 -11
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/viscous_euler_sph.py +29 -21
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/viscous_fluid.py +6 -7
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov.py +1 -3
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov_ampere_one_species.py +32 -38
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/vlasov_maxwell_one_species.py +37 -43
- struphy-3.0.4/src/struphy/particles/parameters.py +285 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/base.py +172 -31
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/particles.py +27 -71
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/eval_kernels_gc.py +27 -23
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_kernels.py +1 -1
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sph_smoothing_kernels.py +18 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_binning.py +35 -35
- struphy-3.0.4/src/struphy/pic/tests/test_set_zero_velocity.py +264 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_sph.py +381 -2
- struphy-3.0.4/src/struphy/post_processing/post_processing_tools.py +1345 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/base.py +16 -9
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_coupling.py +6 -30
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_fields.py +23 -120
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/propagators_markers.py +39 -79
- struphy-3.0.4/src/struphy/simulation/base.py +40 -0
- struphy-3.0.4/src/struphy/simulation/sim.py +1377 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/topology/grids.py +5 -0
- struphy-3.0.4/src/struphy/utils/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4/src/struphy.egg-info}/PKG-INFO +74 -51
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/SOURCES.txt +7 -3
- struphy-3.0.4/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.4}/LICENSE +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/setup.cfg +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/domains/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/equils/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/grids/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/maxwellians/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/ode/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/options/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/particles/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/api/perturbations/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/bsplines.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/bsplines_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/compile_struphy.mk +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/conftest.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/compile.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/format.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/likwid.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/main.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/params.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/parsers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/profile.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/test.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/console/tests/test_console.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dependencies.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/console_diagn.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/diagn_tools.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/mesh_creator.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/diagnostics/paraview/vtk_writer.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/analytic.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/dispersion_relations/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/_draw_parallel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/restelli2018/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/examples/restelli2018/callables.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/basis_projection_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/basis_projection_ops.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/linear_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/local_projectors_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/mass.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/mass_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/preconditioner.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_basis_ops.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_derham.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_eval_field.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_field_init.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_local_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_mass_matrices.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/utilities_local_projectors.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/feec/variational_utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/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.4}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/domains.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/evaluation_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/map_coef/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/mappings_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/tests/test_domain.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/transform_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/geometry/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/eigenfunctions.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/initial/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/io/output_handling.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/maxwellians.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/moment_functions.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/test_base.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/linalg_kron.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/saddle_point.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/schur_solver.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/solver.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/default_params/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/default_params/test_models.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/tests/verification/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/models/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/solvers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/tests/test_ode_feec.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/ode/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/particles/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/physics/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/physics/physics.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/accum_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/accum_kernels_gc.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filter.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/accumulation/particles_to_grid.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_kernels_gc.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sampling_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sobol_seq.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sorting_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/sph_eval_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_pushers.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_sorting.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/tests/test_tesselation.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/utilities.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/pic/utilities_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/basic.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/extraction_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/linear_operators.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/polar/tests/test_polar.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/cprofile_analyser.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/plot_time_traces.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/profile_struphy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/post_processing/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/propagators/tests/test_poisson.py +0 -0
- {struphy-3.0.2/src/struphy/topology → struphy-3.0.4/src/struphy/simulation}/__init__.py +0 -0
- {struphy-3.0.2/src/struphy/utils → struphy-3.0.4/src/struphy/topology}/__init__.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/clone_config.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/cupy_vs_numpy.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/pyccel.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/test_clone_config.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy/utils/utils.py +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/dependency_links.txt +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/src/struphy.egg-info/entry_points.txt +0 -0
- {struphy-3.0.2 → struphy-3.0.4}/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.4
|
|
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.2.0,>=2.2.0
|
|
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.2
|
|
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.4; 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.4,>=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.2.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.4; 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"
|
|
@@ -133,7 +133,7 @@ Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eig
|
|
|
133
133
|
 | 
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-
|
|
136
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
137
137
|
|
|
138
138
|
<h1 align="center">
|
|
139
139
|
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
|
|
@@ -162,6 +162,29 @@ In case you face troubles with install/compile:
|
|
|
162
162
|
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
163
163
|
|
|
164
164
|
|
|
165
|
+
## Docker
|
|
166
|
+
|
|
167
|
+
If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
docker pull spossann/struphy:main
|
|
171
|
+
docker run -it --rm spossann/struphy:main
|
|
172
|
+
ls struphy_*
|
|
173
|
+
```
|
|
174
|
+
This will show three available Struphy environments, which you can activate for example via
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
source struphy_fortran_/env_fortran_/bin/activate
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
docker pull spossann/ubuntu-for-struphy:main
|
|
184
|
+
docker run -it --rm spossann/ubuntu-for-struphy:main
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
|
|
165
188
|
## Quick run
|
|
166
189
|
|
|
167
190
|
As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
|
|
@@ -35,7 +35,7 @@ Particles in a Tokamak <br> (model "Vlasov") | Toroidal Alfvén eig
|
|
|
35
35
|
 | 
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-
|
|
38
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
39
39
|
|
|
40
40
|
<h1 align="center">
|
|
41
41
|
<img src="https://raw.githubusercontent.com/struphy-hub/.github/refs/heads/main/profile/MPI_PP_Logo_Vertical_E_green_rgb.png" width="200">
|
|
@@ -64,6 +64,29 @@ In case you face troubles with install/compile:
|
|
|
64
64
|
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
65
65
|
|
|
66
66
|
|
|
67
|
+
## Docker
|
|
68
|
+
|
|
69
|
+
If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
docker pull spossann/struphy:main
|
|
73
|
+
docker run -it --rm spossann/struphy:main
|
|
74
|
+
ls struphy_*
|
|
75
|
+
```
|
|
76
|
+
This will show three available Struphy environments, which you can activate for example via
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
source struphy_fortran_/env_fortran_/bin/activate
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
docker pull spossann/ubuntu-for-struphy:main
|
|
86
|
+
docker run -it --rm spossann/ubuntu-for-struphy:main
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
|
|
67
90
|
## Quick run
|
|
68
91
|
|
|
69
92
|
As an example, let's say we want to solve Maxwell's equations. We can use the CLI and generate a default launch file via
|
|
@@ -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.4"
|
|
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.2.0, >=2.2.0",
|
|
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.2",
|
|
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.4",
|
|
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.4, >=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.2.0",
|
|
78
|
+
"sphinx<=9.1.0",
|
|
79
|
+
"sphinx-design<=0.7.0",
|
|
80
|
+
"lxml_html_clean<=0.4.4",
|
|
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
|