struphy 3.5.0__tar.gz → 3.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- struphy-3.6.0/PKG-INFO +300 -0
- struphy-3.6.0/README.md +189 -0
- struphy-3.6.0/pyproject.toml +192 -0
- struphy-3.6.0/src/struphy/agent_guides/skills/postprocess-simulation/SKILL.md +101 -0
- struphy-3.6.0/src/struphy/agent_guides/skills/setup-simulation/SKILL.md +159 -0
- struphy-3.6.0/src/struphy/api/models/__init__.py +97 -0
- struphy-3.6.0/src/struphy/conftest.py +70 -0
- struphy-3.6.0/src/struphy/console/params.py +70 -0
- struphy-3.6.0/src/struphy/console/test.py +180 -0
- struphy-3.6.0/src/struphy/feec/basis_projection_ops.py +2446 -0
- struphy-3.6.0/src/struphy/feec/fused_derivatives.py +217 -0
- struphy-3.6.0/src/struphy/feec/fused_derivatives_cuda.cu +97 -0
- struphy-3.6.0/src/struphy/feec/kernels/kernel_3d_mat/__init__.py +22 -0
- struphy-3.6.0/src/struphy/feec/kernels/kernel_3d_mat/kernel_3d_mat_cuda.cu +92 -0
- struphy-3.6.0/src/struphy/feec/kron_band_pass_cuda.cu +35 -0
- struphy-3.6.0/src/struphy/feec/kronecker_mass.py +249 -0
- struphy-3.6.0/src/struphy/feec/linear_operators.py +318 -0
- struphy-3.6.0/src/struphy/feec/mass.py +4108 -0
- struphy-3.6.0/src/struphy/feec/preconditioner.py +3111 -0
- struphy-3.6.0/src/struphy/feec/psydac_derham.py +4185 -0
- struphy-3.6.0/src/struphy/feec/tests/test_field_init.py +1462 -0
- struphy-3.6.0/src/struphy/feec/tests/test_fused_derivatives.py +145 -0
- struphy-3.6.0/src/struphy/feec/tests/test_kinetic_metric.py +74 -0
- struphy-3.6.0/src/struphy/feec/tests/test_local_projectors.py +1606 -0
- struphy-3.6.0/src/struphy/feec/tests/test_mass_matrices.py +1820 -0
- struphy-3.6.0/src/struphy/feec/tests/test_mass_reassembly.py +113 -0
- struphy-3.6.0/src/struphy/feec/tests/test_preconditioner_transpose.py +151 -0
- struphy-3.6.0/src/struphy/feec/variational_utilities.py +2125 -0
- struphy-3.6.0/src/struphy/geometry/domains/colella/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/cuboid/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/desc_unit/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/gvec_unit/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/hollow_cylinder/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/hollow_torus/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/iga_polar_cylinder/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/iga_polar_torus/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/orthogonal/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/powered_elliptic_cylinder/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/shafranov_dshaped_cylinder/__init__.py +25 -0
- struphy-3.6.0/src/struphy/geometry/domains/shafranov_shift_cylinder/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/shafranov_sqrt_cylinder/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/domains/tokamak/__init__.py +23 -0
- struphy-3.6.0/src/struphy/geometry/tests/test_domain.py +1294 -0
- struphy-3.6.0/src/struphy/initial/perturbations.py +2595 -0
- struphy-3.6.0/src/struphy/io/options.py +412 -0
- struphy-3.6.0/src/struphy/kernel_arguments/pusher_args.cuh +51 -0
- struphy-3.6.0/src/struphy/kernel_arguments/pusher_args_cuda.py +152 -0
- struphy-3.6.0/src/struphy/kinetic_background/maxwellians.py +872 -0
- struphy-3.6.0/src/struphy/kinetic_background/tests/test_maxwellians.py +1829 -0
- struphy-3.6.0/src/struphy/linear_algebra/schur_solver.py +443 -0
- struphy-3.6.0/src/struphy/models/__init__.py +159 -0
- struphy-3.6.0/src/struphy/models/base.py +1502 -0
- struphy-3.6.0/src/struphy/models/cold_euler_sph.py +224 -0
- struphy-3.6.0/src/struphy/models/cold_plasma.py +232 -0
- struphy-3.6.0/src/struphy/models/cold_plasma_vlasov.py +335 -0
- struphy-3.6.0/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +320 -0
- struphy-3.6.0/src/struphy/models/drift_kinetic_maxwell.py +313 -0
- struphy-3.6.0/src/struphy/models/euler_sph.py +193 -0
- struphy-3.6.0/src/struphy/models/guiding_center.py +186 -0
- struphy-3.6.0/src/struphy/models/incompressible_navier_stokes_sph.py +250 -0
- struphy-3.6.0/src/struphy/models/linear_euler.py +269 -0
- struphy-3.6.0/src/struphy/models/linear_mhd.py +379 -0
- struphy-3.6.0/src/struphy/models/linear_mhd_driftkinetic_cc.py +344 -0
- struphy-3.6.0/src/struphy/models/linear_mhd_vlasov_cc.py +281 -0
- struphy-3.6.0/src/struphy/models/linear_mhd_vlasov_pc.py +236 -0
- struphy-3.6.0/src/struphy/models/linear_vlasov_ampere_one_species.py +286 -0
- struphy-3.6.0/src/struphy/models/linear_vlasov_maxwell_one_species.py +196 -0
- struphy-3.6.0/src/struphy/models/maxwell.py +165 -0
- struphy-3.6.0/src/struphy/models/scalars.py +420 -0
- struphy-3.6.0/src/struphy/models/shear_alfven.py +269 -0
- struphy-3.6.0/src/struphy/models/species.py +489 -0
- struphy-3.6.0/src/struphy/models/tests/gpu_e2e.py +263 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdEulerSPH.json +47 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdPlasma.json +83 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ColdPlasmaVlasov.json +103 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/CurlCurl.json +33 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/DeterministicParticleDiffusion.json +35 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/DriftKineticElectrostaticAdiabatic.json +71 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/DriftKineticMaxwell.json +99 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/EulerSPH.json +47 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/GuidingCenter.json +83 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/GyrokineticPoisson.json +31 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/HasegawaWakatani.json +35 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/IncompressibleNavierStokesSPH.json +49 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearEuler.json +95 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearExtendedMHDuniform.json +145 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD-b_space=Hcurl-projected=False.json +133 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD-b_space=Hcurl-projected=True.json +133 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHD.json +133 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDDriftkineticCC.json +175 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDVlasovCC.json +163 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearMHDVlasovPC.json +163 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearVlasovAmpereOneSpecies.json +75 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/LinearVlasovMaxwellOneSpecies.json +89 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/Maxwell.json +69 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/Poisson.json +33 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/RandomParticleDiffusion.json +35 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven-b_space=Hcurl-projected=False.json +105 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven-b_space=Hcurl-projected=True.json +105 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ShearAlfven.json +105 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ToyDrift.json +73 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/TwoFluidQuasiNeutralToy.json +20 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalBarotropicFluid.json +69 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalCompressibleFluid.json +71 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD.json +121 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD_with_p.json +113 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalMHD_with_q.json +113 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD-linear-crank_nicolson=False.json +141 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD-linear-crank_nicolson=True.json +141 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD.json +141 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q-linear-crank_nicolson=False.json +117 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q-linear-crank_nicolson=True.json +117 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPerturbativeMHD_with_q.json +117 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VariationalPressurelessFluid.json +45 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ViscousEulerSPH.json +47 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/ViscousFluid.json +95 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/Vlasov.json +47 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovAmpereOneSpecies.json +75 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovMaxwellOneSpecies.json +101 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovMaxwellQuasiNeutral.json +101 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPauli.json +83 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPoissonAdiabatic.json +73 -0
- struphy-3.6.0/src/struphy/models/tests/regression/baselines/VlasovPoissonAdiabaticPauli.json +97 -0
- struphy-3.6.0/src/struphy/models/tests/regression/test_models.py +202 -0
- struphy-3.6.0/src/struphy/models/tests/regression/utils_regression.py +279 -0
- struphy-3.6.0/src/struphy/models/tests/test_diagnostics_on_device.py +346 -0
- struphy-3.6.0/src/struphy/models/tests/test_examples.py +86 -0
- struphy-3.6.0/src/struphy/models/tests/test_gpu_LinearVlasovAmpereOneSpecies.py +194 -0
- struphy-3.6.0/src/struphy/models/tests/test_gpu_VlasovAmpereOneSpecies.py +217 -0
- struphy-3.6.0/src/struphy/models/tests/test_scalars.py +195 -0
- struphy-3.6.0/src/struphy/models/tests/test_splitting_order.py +421 -0
- struphy-3.6.0/src/struphy/models/tests/test_variational_dissipation.py +51 -0
- struphy-3.6.0/src/struphy/models/tests/test_variational_divdiv.py +88 -0
- struphy-3.6.0/src/struphy/models/tests/utils_testing.py +207 -0
- struphy-3.6.0/src/struphy/models/tests/verification/spectrum_utils.py +36 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_DriftKineticMaxwell.py +144 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_EulerSPH.py +163 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_IncompressibleNavierStokesSPH.py +487 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearEuler.py +257 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearMHD.py +129 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_LinearVlasovAmpereOneSpecies.py +274 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_Maxwell.py +281 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +907 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +385 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellOneSpecies.py +124 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellQuasiNeutral.py +116 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_VlasovPauli.py +252 -0
- struphy-3.6.0/src/struphy/models/tests/verification/test_verif_variational_linear_cn.py +189 -0
- struphy-3.6.0/src/struphy/models/tests/verification/variational_mhd_utils.py +224 -0
- struphy-3.6.0/src/struphy/models/utils.py +84 -0
- struphy-3.6.0/src/struphy/models/variational_compressible_fluid.py +284 -0
- struphy-3.6.0/src/struphy/models/variational_mhd.py +366 -0
- struphy-3.6.0/src/struphy/models/variational_mhd_with_p.py +320 -0
- struphy-3.6.0/src/struphy/models/variational_mhd_with_q.py +320 -0
- struphy-3.6.0/src/struphy/models/variational_perturbative_mhd.py +472 -0
- struphy-3.6.0/src/struphy/models/variational_perturbative_mhd_with_q.py +536 -0
- struphy-3.6.0/src/struphy/models/viscous_euler_sph.py +165 -0
- struphy-3.6.0/src/struphy/models/vlasov.py +327 -0
- struphy-3.6.0/src/struphy/models/vlasov_ampere_one_species.py +225 -0
- struphy-3.6.0/src/struphy/models/vlasov_maxwell_one_species.py +214 -0
- struphy-3.6.0/src/struphy/models/vlasov_maxwell_quasi_neutral.py +284 -0
- struphy-3.6.0/src/struphy/models/vlasov_pauli.py +256 -0
- struphy-3.6.0/src/struphy/models/vlasov_poisson_adiabatic.py +307 -0
- struphy-3.6.0/src/struphy/models/vlasov_poisson_adiabatic_pauli.py +259 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D_mf/cc_lin_mhd_5d_D_mf_kernels.py +110 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb_mf/cc_lin_mhd_5d_curlb_mf_kernels.py +113 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/cc_lin_mhd_5d_gradB_kernels.py +212 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1_mf/cc_lin_mhd_6d_1_mf_kernels.py +101 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2_mf/cc_lin_mhd_6d_2_mf_kernels.py +168 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell/dk_maxwell_kernels.py +156 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/dk_maxwell_mf/dk_maxwell_mf_kernels.py +117 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere_mf/linear_vlasov_ampere_mf_kernels.py +100 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_asym_dot/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_asym_dot/marker_operator_asym_dot_kernels.py +79 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_pressure_dot/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_pressure_dot/marker_operator_pressure_dot_kernels.py +111 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_rank1_dot/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_rank1_dot/marker_operator_rank1_dot_kernels.py +82 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_symm_dot/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/marker_operator_symm_dot/marker_operator_symm_dot_kernels.py +80 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_mf/pc_lin_mhd_6d_mf_kernels.py +125 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/vlasov_maxwell_mf/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/accumulation/kernels/vlasov_maxwell_mf/vlasov_maxwell_mf_kernels.py +83 -0
- struphy-3.6.0/src/struphy/pic/accumulation/particles_to_grid.py +910 -0
- struphy-3.6.0/src/struphy/pic/base.py +5475 -0
- struphy-3.6.0/src/struphy/pic/mpi_sort_cuda.cu +79 -0
- struphy-3.6.0/src/struphy/pic/mpi_sort_cuda.py +99 -0
- struphy-3.6.0/src/struphy/pic/particles.py +1164 -0
- struphy-3.6.0/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_cuda.cu +65 -0
- struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vpar_with_efield/__init__.py +10 -0
- struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vpar_with_efield/push_vpar_with_efield_kernels.py +90 -0
- struphy-3.6.0/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_cuda.cu +89 -0
- struphy-3.6.0/src/struphy/pic/pushing/pusher.py +473 -0
- struphy-3.6.0/src/struphy/pic/pushing/pusher_utilities_kernels.cuh +126 -0
- struphy-3.6.0/src/struphy/pic/tests/cuda_emulation.py +130 -0
- struphy-3.6.0/src/struphy/pic/tests/cuda_parity_cases.py +445 -0
- struphy-3.6.0/src/struphy/pic/tests/test_accum_gc_gradB.py +77 -0
- struphy-3.6.0/src/struphy/pic/tests/test_kernel_backends.py +251 -0
- struphy-3.6.0/src/struphy/pic/tests/test_pole.py +372 -0
- struphy-3.6.0/src/struphy/pic/tests/test_sorting_device.py +326 -0
- struphy-3.6.0/src/struphy/post_processing/output.py +2780 -0
- struphy-3.6.0/src/struphy/propagators/__init__.py +192 -0
- struphy-3.6.0/src/struphy/propagators/background_current.py +183 -0
- struphy-3.6.0/src/struphy/propagators/background_pressure_gradient.py +138 -0
- struphy-3.6.0/src/struphy/propagators/curl_curl_solve.py +400 -0
- struphy-3.6.0/src/struphy/propagators/current_coupling_5d_curlb.py +368 -0
- struphy-3.6.0/src/struphy/propagators/current_coupling_5d_density.py +292 -0
- struphy-3.6.0/src/struphy/propagators/current_coupling_5d_gradb.py +871 -0
- struphy-3.6.0/src/struphy/propagators/current_coupling_6d_current.py +351 -0
- struphy-3.6.0/src/struphy/propagators/current_coupling_6d_density.py +345 -0
- struphy-3.6.0/src/struphy/propagators/drift_kinetic_maxwell_coupling.py +707 -0
- struphy-3.6.0/src/struphy/propagators/efield_weights_coupling.py +349 -0
- struphy-3.6.0/src/struphy/propagators/gyrokinetic_poisson_solve.py +215 -0
- struphy-3.6.0/src/struphy/propagators/implicit_diffusion.py +691 -0
- struphy-3.6.0/src/struphy/propagators/magnetosonic.py +304 -0
- struphy-3.6.0/src/struphy/propagators/maxwell_weak_ampere.py +324 -0
- struphy-3.6.0/src/struphy/propagators/poisson_solve.py +204 -0
- struphy-3.6.0/src/struphy/propagators/pressure_coupling_6d.py +445 -0
- struphy-3.6.0/src/struphy/propagators/push_guiding_center_bx_estar.py +549 -0
- struphy-3.6.0/src/struphy/propagators/push_guiding_center_parallel.py +585 -0
- struphy-3.6.0/src/struphy/propagators/push_v_in_force_field.py +199 -0
- struphy-3.6.0/src/struphy/propagators/push_vxb.py +194 -0
- struphy-3.6.0/src/struphy/propagators/shear_alfven_curl_curl_propagator.py +469 -0
- struphy-3.6.0/src/struphy/propagators/shear_alfven_current_coupling_5d.py +479 -0
- struphy-3.6.0/src/struphy/propagators/shear_alfven_propagator.py +358 -0
- struphy-3.6.0/src/struphy/propagators/sound_wave_linear.py +279 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_background_current.py +74 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_background_pressure_gradient.py +88 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_current_coupling_5d.py +332 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_drift_kinetic_maxwell_coupling.py +311 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_magnetosonic.py +115 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_matrix_free_6d.py +302 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_maxwell_weak_ampere.py +140 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_push_guiding_center_e_field.py +98 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_push_guiding_center_full_b.py +106 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_shear_alfven.py +132 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_shear_alfven_curl_curl.py +231 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_sound_wave_linear.py +280 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_dissipative.py +111 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_hdiv.py +123 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_variational_linear_midpoint.py +167 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_variational_qb_evolve.py +52 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_variational_schur_precond.py +67 -0
- struphy-3.6.0/src/struphy/propagators/tests/test_vlasov_maxwell_coupling.py +326 -0
- struphy-3.6.0/src/struphy/propagators/variational_alfven_evolve.py +450 -0
- struphy-3.6.0/src/struphy/propagators/variational_density_evolve.py +680 -0
- struphy-3.6.0/src/struphy/propagators/variational_entropy_evolve.py +489 -0
- struphy-3.6.0/src/struphy/propagators/variational_linear_alfven_evolve.py +380 -0
- struphy-3.6.0/src/struphy/propagators/variational_linear_base.py +147 -0
- struphy-3.6.0/src/struphy/propagators/variational_linear_sound_evolve.py +451 -0
- struphy-3.6.0/src/struphy/propagators/variational_mag_field_evolve.py +441 -0
- struphy-3.6.0/src/struphy/propagators/variational_momentum_advection.py +321 -0
- struphy-3.6.0/src/struphy/propagators/variational_pb_evolve.py +718 -0
- struphy-3.6.0/src/struphy/propagators/variational_qb_evolve.py +785 -0
- struphy-3.6.0/src/struphy/propagators/variational_resistivity.py +856 -0
- struphy-3.6.0/src/struphy/propagators/variational_sound_evolve.py +441 -0
- struphy-3.6.0/src/struphy/propagators/variational_viscosity.py +1007 -0
- struphy-3.6.0/src/struphy/propagators/vlasov_ampere_coupling.py +325 -0
- struphy-3.6.0/src/struphy/propagators/vlasov_maxwell_coupling.py +569 -0
- struphy-3.6.0/src/struphy/simulation/sim.py +2454 -0
- struphy-3.6.0/src/struphy/simulation/tests/test_compile_cuda_kernels.py +247 -0
- struphy-3.6.0/src/struphy/simulation/tests/test_estimate_mem.py +165 -0
- struphy-3.6.0/src/struphy/simulation/tests/test_output.py +523 -0
- struphy-3.6.0/src/struphy/utils/clone_config.py +278 -0
- struphy-3.6.0/src/struphy/utils/docstring_converter.py +1327 -0
- struphy-3.6.0/src/struphy/utils/utils.py +261 -0
- struphy-3.6.0/src/struphy.egg-info/PKG-INFO +300 -0
- struphy-3.6.0/src/struphy.egg-info/SOURCES.txt +915 -0
- struphy-3.6.0/src/struphy.egg-info/requires.txt +85 -0
- struphy-3.5.0/PKG-INFO +0 -298
- struphy-3.5.0/README.md +0 -187
- struphy-3.5.0/pyproject.toml +0 -189
- struphy-3.5.0/src/struphy/agent_guides/skills/postprocess-simulation/SKILL.md +0 -101
- struphy-3.5.0/src/struphy/agent_guides/skills/setup-simulation/SKILL.md +0 -159
- struphy-3.5.0/src/struphy/api/models/__init__.py +0 -97
- struphy-3.5.0/src/struphy/conftest.py +0 -59
- struphy-3.5.0/src/struphy/console/params.py +0 -69
- struphy-3.5.0/src/struphy/console/test.py +0 -178
- struphy-3.5.0/src/struphy/feec/basis_projection_ops.py +0 -2435
- struphy-3.5.0/src/struphy/feec/kernels/kernel_3d_mat/__init__.py +0 -16
- struphy-3.5.0/src/struphy/feec/linear_operators.py +0 -210
- struphy-3.5.0/src/struphy/feec/mass.py +0 -3938
- struphy-3.5.0/src/struphy/feec/preconditioner.py +0 -2871
- struphy-3.5.0/src/struphy/feec/psydac_derham.py +0 -4160
- struphy-3.5.0/src/struphy/feec/tests/test_field_init.py +0 -1463
- struphy-3.5.0/src/struphy/feec/tests/test_local_projectors.py +0 -1618
- struphy-3.5.0/src/struphy/feec/tests/test_mass_matrices.py +0 -1817
- struphy-3.5.0/src/struphy/feec/tests/test_mass_reassembly.py +0 -73
- struphy-3.5.0/src/struphy/feec/tests/test_preconditioner_transpose.py +0 -125
- struphy-3.5.0/src/struphy/feec/variational_utilities.py +0 -1551
- struphy-3.5.0/src/struphy/geometry/domains/colella/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/cuboid/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/desc_unit/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/gvec_unit/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/hollow_cylinder/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/hollow_torus/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/iga_polar_cylinder/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/iga_polar_torus/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/orthogonal/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/powered_elliptic_cylinder/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/shafranov_dshaped_cylinder/__init__.py +0 -20
- struphy-3.5.0/src/struphy/geometry/domains/shafranov_shift_cylinder/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/shafranov_sqrt_cylinder/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/domains/tokamak/__init__.py +0 -18
- struphy-3.5.0/src/struphy/geometry/tests/test_domain.py +0 -1268
- struphy-3.5.0/src/struphy/initial/perturbations.py +0 -2531
- struphy-3.5.0/src/struphy/io/options.py +0 -409
- struphy-3.5.0/src/struphy/kernel_arguments/pusher_args.cuh +0 -50
- struphy-3.5.0/src/struphy/kernel_arguments/pusher_args_cuda.py +0 -149
- struphy-3.5.0/src/struphy/kinetic_background/maxwellians.py +0 -857
- struphy-3.5.0/src/struphy/kinetic_background/tests/test_maxwellians.py +0 -1798
- struphy-3.5.0/src/struphy/linear_algebra/schur_solver.py +0 -414
- struphy-3.5.0/src/struphy/models/__init__.py +0 -156
- struphy-3.5.0/src/struphy/models/base.py +0 -1226
- struphy-3.5.0/src/struphy/models/cold_plasma.py +0 -241
- struphy-3.5.0/src/struphy/models/cold_plasma_vlasov.py +0 -378
- struphy-3.5.0/src/struphy/models/drift_kinetic_electrostatic_adiabatic.py +0 -345
- struphy-3.5.0/src/struphy/models/guiding_center.py +0 -213
- struphy-3.5.0/src/struphy/models/incompressible_navier_stokes_sph.py +0 -275
- struphy-3.5.0/src/struphy/models/linear_mhd.py +0 -280
- struphy-3.5.0/src/struphy/models/linear_mhd_driftkinetic_cc.py +0 -379
- struphy-3.5.0/src/struphy/models/linear_mhd_vlasov_cc.py +0 -336
- struphy-3.5.0/src/struphy/models/linear_mhd_vlasov_pc.py +0 -308
- struphy-3.5.0/src/struphy/models/linear_vlasov_ampere_one_species.py +0 -375
- struphy-3.5.0/src/struphy/models/linear_vlasov_maxwell_one_species.py +0 -298
- struphy-3.5.0/src/struphy/models/maxwell.py +0 -160
- struphy-3.5.0/src/struphy/models/pressure_less_sph.py +0 -209
- struphy-3.5.0/src/struphy/models/scalars.py +0 -418
- struphy-3.5.0/src/struphy/models/shear_alfven.py +0 -187
- struphy-3.5.0/src/struphy/models/shear_alfven_curl_curl.py +0 -208
- struphy-3.5.0/src/struphy/models/shear_alfven_curl_curl_with_proj.py +0 -79
- struphy-3.5.0/src/struphy/models/species.py +0 -461
- struphy-3.5.0/src/struphy/models/tests/default_params/test_models.py +0 -115
- struphy-3.5.0/src/struphy/models/tests/gpu_e2e.py +0 -255
- struphy-3.5.0/src/struphy/models/tests/test_diagnostics_on_device.py +0 -346
- struphy-3.5.0/src/struphy/models/tests/test_examples.py +0 -75
- struphy-3.5.0/src/struphy/models/tests/test_gpu_LinearVlasovAmpereOneSpecies.py +0 -194
- struphy-3.5.0/src/struphy/models/tests/test_gpu_VlasovAmpereOneSpecies.py +0 -217
- struphy-3.5.0/src/struphy/models/tests/test_scalars.py +0 -219
- struphy-3.5.0/src/struphy/models/tests/test_variational_dissipation.py +0 -48
- struphy-3.5.0/src/struphy/models/tests/utils_testing.py +0 -161
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_IncompressibleNavierStokesSPH.py +0 -483
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_LinearMHD.py +0 -151
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_LinearVlasovAmpereOneSpecies.py +0 -271
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_Maxwell.py +0 -281
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_ViscousEulerSPH.py +0 -1039
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovAmpereOneSpecies.py +0 -380
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovMaxwellOneSpecies.py +0 -120
- struphy-3.5.0/src/struphy/models/tests/verification/test_verif_VlasovPoissonAdiabaticPauli.py +0 -248
- struphy-3.5.0/src/struphy/models/utils.py +0 -75
- struphy-3.5.0/src/struphy/models/variational_compressible_fluid.py +0 -259
- struphy-3.5.0/src/struphy/models/visco_resistive_deltaf_mhd.py +0 -328
- struphy-3.5.0/src/struphy/models/visco_resistive_deltaf_mhd_with_q.py +0 -328
- struphy-3.5.0/src/struphy/models/visco_resistive_linear_mhd.py +0 -327
- struphy-3.5.0/src/struphy/models/visco_resistive_linear_mhd_with_q.py +0 -321
- struphy-3.5.0/src/struphy/models/visco_resistive_mhd.py +0 -337
- struphy-3.5.0/src/struphy/models/visco_resistive_mhd_with_p.py +0 -325
- struphy-3.5.0/src/struphy/models/visco_resistive_mhd_with_q.py +0 -320
- struphy-3.5.0/src/struphy/models/viscous_euler_sph.py +0 -252
- struphy-3.5.0/src/struphy/models/vlasov.py +0 -172
- struphy-3.5.0/src/struphy/models/vlasov_ampere_one_species.py +0 -340
- struphy-3.5.0/src/struphy/models/vlasov_maxwell_one_species.py +0 -397
- struphy-3.5.0/src/struphy/models/vlasov_poisson_adiabatic.py +0 -352
- struphy-3.5.0/src/struphy/models/vlasov_poisson_adiabatic_pauli.py +0 -424
- struphy-3.5.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/__init__.py +0 -10
- struphy-3.5.0/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB/cc_lin_mhd_5d_gradB_kernels.py +0 -218
- struphy-3.5.0/src/struphy/pic/accumulation/particles_to_grid.py +0 -768
- struphy-3.5.0/src/struphy/pic/base.py +0 -5280
- struphy-3.5.0/src/struphy/pic/particles.py +0 -1158
- struphy-3.5.0/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_cuda.cu +0 -62
- struphy-3.5.0/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_cuda.cu +0 -85
- struphy-3.5.0/src/struphy/pic/pushing/pusher.py +0 -451
- struphy-3.5.0/src/struphy/pic/pushing/pusher_utilities_kernels.cuh +0 -112
- struphy-3.5.0/src/struphy/pic/tests/cuda_emulation.py +0 -127
- struphy-3.5.0/src/struphy/pic/tests/cuda_parity_cases.py +0 -419
- struphy-3.5.0/src/struphy/pic/tests/test_accum_gc_gradB.py +0 -79
- struphy-3.5.0/src/struphy/pic/tests/test_kernel_backends.py +0 -251
- struphy-3.5.0/src/struphy/pic/tests/test_pole.py +0 -372
- struphy-3.5.0/src/struphy/pic/tests/test_sorting_device.py +0 -292
- struphy-3.5.0/src/struphy/post_processing/output.py +0 -2753
- struphy-3.5.0/src/struphy/propagators/__init__.py +0 -167
- struphy-3.5.0/src/struphy/propagators/curl_curl_solve.py +0 -400
- struphy-3.5.0/src/struphy/propagators/current_coupling_5d_curlb.py +0 -325
- struphy-3.5.0/src/struphy/propagators/current_coupling_5d_density.py +0 -244
- struphy-3.5.0/src/struphy/propagators/current_coupling_5d_gradb.py +0 -864
- struphy-3.5.0/src/struphy/propagators/current_coupling_6d_current.py +0 -310
- struphy-3.5.0/src/struphy/propagators/current_coupling_6d_density.py +0 -300
- struphy-3.5.0/src/struphy/propagators/efield_weights_coupling.py +0 -313
- struphy-3.5.0/src/struphy/propagators/gyrokinetic_poisson_solve.py +0 -215
- struphy-3.5.0/src/struphy/propagators/implicit_diffusion.py +0 -655
- struphy-3.5.0/src/struphy/propagators/magnetosonic.py +0 -249
- struphy-3.5.0/src/struphy/propagators/maxwell_weak_ampere.py +0 -252
- struphy-3.5.0/src/struphy/propagators/poisson_solve.py +0 -204
- struphy-3.5.0/src/struphy/propagators/pressure_coupling_6d.py +0 -389
- struphy-3.5.0/src/struphy/propagators/push_guiding_center_bx_estar.py +0 -526
- struphy-3.5.0/src/struphy/propagators/push_guiding_center_parallel.py +0 -552
- struphy-3.5.0/src/struphy/propagators/push_v_in_force_field.py +0 -194
- struphy-3.5.0/src/struphy/propagators/push_vxb.py +0 -167
- struphy-3.5.0/src/struphy/propagators/shear_alfven_curl_curl_propagator.py +0 -443
- struphy-3.5.0/src/struphy/propagators/shear_alfven_current_coupling_5d.py +0 -471
- struphy-3.5.0/src/struphy/propagators/shear_alfven_propagator.py +0 -349
- struphy-3.5.0/src/struphy/propagators/tests/test_current_coupling_5d.py +0 -61
- struphy-3.5.0/src/struphy/propagators/tests/test_magnetosonic.py +0 -42
- struphy-3.5.0/src/struphy/propagators/tests/test_shear_alfven.py +0 -93
- struphy-3.5.0/src/struphy/propagators/tests/test_shear_alfven_curl_curl.py +0 -202
- struphy-3.5.0/src/struphy/propagators/tests/test_variational_qb_evolve.py +0 -44
- struphy-3.5.0/src/struphy/propagators/variational_density_evolve.py +0 -627
- struphy-3.5.0/src/struphy/propagators/variational_entropy_evolve.py +0 -468
- struphy-3.5.0/src/struphy/propagators/variational_mag_field_evolve.py +0 -418
- struphy-3.5.0/src/struphy/propagators/variational_momentum_advection.py +0 -295
- struphy-3.5.0/src/struphy/propagators/variational_pb_evolve.py +0 -675
- struphy-3.5.0/src/struphy/propagators/variational_qb_evolve.py +0 -699
- struphy-3.5.0/src/struphy/propagators/variational_resistivity.py +0 -820
- struphy-3.5.0/src/struphy/propagators/variational_viscosity.py +0 -837
- struphy-3.5.0/src/struphy/propagators/vlasov_ampere_coupling.py +0 -243
- struphy-3.5.0/src/struphy/simulation/sim.py +0 -2435
- struphy-3.5.0/src/struphy/simulation/tests/test_compile_cuda_kernels.py +0 -247
- struphy-3.5.0/src/struphy/simulation/tests/test_estimate_mem.py +0 -165
- struphy-3.5.0/src/struphy/simulation/tests/test_output.py +0 -478
- struphy-3.5.0/src/struphy/utils/clone_config.py +0 -274
- struphy-3.5.0/src/struphy/utils/docstring_converter.py +0 -1371
- struphy-3.5.0/src/struphy/utils/utils.py +0 -261
- struphy-3.5.0/src/struphy.egg-info/PKG-INFO +0 -298
- struphy-3.5.0/src/struphy.egg-info/SOURCES.txt +0 -793
- struphy-3.5.0/src/struphy.egg-info/requires.txt +0 -85
- {struphy-3.5.0 → struphy-3.6.0}/LICENSE +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/setup.cfg +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/agent_guides/USAGE.md +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/compiler/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/domains/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/equils/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/grids/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/linear_algebra/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/maxwellians/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/ode/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/options/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/particles/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/perturbations/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/post_processing/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/simulation/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/api/tests/test_public_api.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/bsplines_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_1d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_2d.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_2d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_3d.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/evaluation_kernels_3d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/eval_spline_mpi_markers_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_markers/eval_spline_mpi_markers_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/eval_spline_mpi_matrix_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_matrix/eval_spline_mpi_matrix_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/eval_spline_mpi_sparse_meshgrid_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_sparse_meshgrid/eval_spline_mpi_sparse_meshgrid_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/eval_spline_mpi_tensor_product_fixed_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/kernels/eval_spline_mpi_tensor_product_fixed/eval_spline_mpi_tensor_product_fixed_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/shapefunc_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_bsplines_kers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_eval_spline_mpi.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/bsplines/tests/test_evaluation_cuda.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/compile_struphy.mk +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/agents.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/build_init_files.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/compile.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/likwid.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/main.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/output.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/parsers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/profile.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_agents.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_compile.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_params_profile.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/test_state.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/console/tests/xx_test_console.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dependencies.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/diagnostics/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/analytic.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/tests/test_analytic.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/dispersion_relations/utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/eigenvalue_solvers/derivatives.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/_draw_parallel.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/restelli2018/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/examples/restelli2018/callables.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/banded_to_stencil_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/boundary_mass.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_1d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_1d/assemble_dofs_for_weighted_basisfuns_1d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_2d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_2d/assemble_dofs_for_weighted_basisfuns_2d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_3d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/assemble_dofs_for_weighted_basisfuns_3d/assemble_dofs_for_weighted_basisfuns_3d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/hybrid_weight/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/hybrid_weight/hybrid_weight_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_eval/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_eval/kernel_1d_eval_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_mat/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_mat/kernel_1d_mat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_1d_vec/kernel_1d_vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_eval/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_eval/kernel_2d_eval_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_mat/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_mat/kernel_2d_mat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_2d_vec/kernel_2d_vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_diag/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_diag/kernel_3d_diag_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_eval/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_eval/kernel_3d_eval_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_mat/kernel_3d_mat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_matrixfree/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_matrixfree/kernel_3d_matrixfree_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/kernel_3d_vec/kernel_3d_vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_mat/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_mat/surface_kernel_3d_mat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kernels/surface_kernel_3d_vec/surface_kernel_3d_vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/kronecker_block.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component/get_dofs_local_1_form_ec_component_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component_weighted/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_1_form_ec_component_weighted/get_dofs_local_1_form_ec_component_weighted_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component/get_dofs_local_2_form_ec_component_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component_weighted/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_2_form_ec_component_weighted/get_dofs_local_2_form_ec_component_weighted_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form/get_dofs_local_3_form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form_weighted/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/get_dofs_local_3_form_weighted/get_dofs_local_3_form_weighted_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop/solve_local_main_loop_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop_weighted/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors/kernels/solve_local_main_loop_weighted/solve_local_main_loop_weighted_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/local_projectors_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/memory.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/projectors.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_basis_ops.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_boundary_integrals.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_derham.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_derham_gpu.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_estimate_mem.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_eval_field.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_hiptmair_xu.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_kronecker_block.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_l2_projectors.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_local_matrix_vector.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_lowdim_nel_is_1.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_preconditioner_cupy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_stiffness_preconditioner.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_toarray_struphy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_tosparse_struphy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_utilities_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_variational_utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/test_weighted_average_projection.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/tests/xx_test_preconds.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/feec/utilities_local_projectors.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/coil_fields/coil_fields.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/equils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/AUGNLED_g031213.00830.high +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/data/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/eqdsk/readeqdsk.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/output/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/output/vtk/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00000000.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/CIRCTOK_State_0000_00001000.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_01/parameter.ini +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000000.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/W7X_State_0000_00000100.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_02/parameter-w7x.ini +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00000000.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/NEO-SPITZER_State_0000_00003307.dat +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/Neo-spitzer-mirror23-well-opt-1-AR10-1.nc +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/gvec/run_03/parameter-fig8.ini +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/mhd_equil/vmec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/projected_equils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_adhoc_tokamak_equils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_axisymm_gradB.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_desc_equil.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_equils_cupy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_generic_equils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_gvec_equil.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_mhd_equils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/fields_background/tests/test_numerical_mhd_equil.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/colella/colella_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/constants_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/cuboid/cuboid_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/desc_unit/desc_unit.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/gvec_unit/gvec_unit.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_cylinder/hollow_cylinder_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/hollow_torus/hollow_torus_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/iga_polar_cylinder/iga_polar_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/iga_polar_torus/iga_polar_torus.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/orthogonal/orthogonal_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/powered_elliptic_cylinder/powered_elliptic_cylinder_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_dshaped_cylinder/shafranov_dshaped_cylinder_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_shift_cylinder/shafranov_shift_cylinder_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder_cuda.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/shafranov_sqrt_cylinder/shafranov_sqrt_cylinder_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/domains/tokamak/tokamak.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/evaluation_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/evaluation_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/kernel_evaluate_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate/kernel_evaluate_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/kernel_evaluate_pic_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_evaluate_pic/kernel_evaluate_pic_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/kernel_pullpush_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush/kernel_pullpush_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/kernel_pullpush_pic_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/kernels/kernel_pullpush_pic/kernel_pullpush_pic_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/map_coef/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/spline_mappings_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/spline_mappings_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/tests/spline_mapping_cases.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/transform_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/transform_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/geometry/utilities_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/eigenfunctions.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/tests/test_init_perturbations.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/initial/utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/output_handling.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/setup.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/io/tests/test_output_handling.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/array_view.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args_cuda.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/local_projectors_args_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/pusher_args_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args_cuda.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kernel_arguments/spline_args_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/moment_functions.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/kinetic_background/tests/test_base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/linalg_kron.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/coarsen.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/hierarchy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/preconditioner.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/smoothers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/multigrid/transfer.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/saddle_point.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/solver.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/stencil_dot_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/stencil_transpose_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_coarsen.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_solver.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_multigrid_transfer.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_saddle_point_propagator.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_saddlepoint_massmatrices.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_stencil_dot_kers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/linear_algebra/tests/test_stencil_transpose_kers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/curl_curl.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/deterministic_particle_diffusion.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/gyrokinetic_poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/hasegawa_wakatani.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/linear_extended_mh_duniform.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/random_particle_diffusion.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/__init__.py +0 -0
- {struphy-3.5.0/src/struphy/models/tests/default_params → struphy-3.6.0/src/struphy/models/tests/regression}/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/test_estimate_mem.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/test_hasegawa_wakatani.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_CurlCurl.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_Poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/tests/verification/test_verif_VlasovPoissonAdiabatic.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/toy_drift.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/two_fluid_quasi_neutral_toy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variables.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variational_barotropic_fluid.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/variational_pressureless_fluid.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/models/viscous_fluid.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/solvers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/test_butcher.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/tests/test_ode_feec.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/ode/utils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/particles/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/particles/parameters.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/physics/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/physics/physics.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filler_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filler_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filter.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/filter_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_D/cc_lin_mhd_5d_D_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_M/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_M/cc_lin_mhd_5d_M_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_curlb/cc_lin_mhd_5d_curlb_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg/cc_lin_mhd_5d_gradB_dg_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg_init/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_5d_gradB_dg_init/cc_lin_mhd_5d_gradB_dg_init_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_1/cc_lin_mhd_6d_1_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/cc_lin_mhd_6d_2/cc_lin_mhd_6d_2_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/charge_density_0form_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/charge_density_0form/charge_density_0form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/div_u_weak_1form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/div_u_weak_1form/div_u_weak_1form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_density_0form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_density_0form/gc_density_0form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_mag_density_0form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/gc_mag_density_0form/gc_mag_density_0form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/linear_vlasov_ampere_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/linear_vlasov_ampere/linear_vlasov_ampere_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d/pc_lin_mhd_6d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_full/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/pc_lin_mhd_6d_full/pc_lin_mhd_6d_full_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/vlasov_maxwell_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/kernels/vlasov_maxwell/vlasov_maxwell_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.cuh +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/accumulation/particle_to_mat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/canonical_kinetic_particles/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/canonical_kinetic_particles/canonical_kinetic_particles_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_5d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_5d/eval_canonical_toroidal_moment_5d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_6d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_canonical_toroidal_moment_6d/eval_canonical_toroidal_moment_6d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_energy_5d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_energy_5d/eval_energy_5d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_gradB_ediff/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_gradB_ediff/eval_gradB_ediff_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_guiding_center_from_6d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_guiding_center_from_6d/eval_guiding_center_from_6d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_background_energy/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_background_energy/eval_magnetic_background_energy_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_energy_PBb/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_energy_PBb/eval_magnetic_energy_PBb_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_moment_5d/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/eval_magnetic_moment_5d/eval_magnetic_moment_5d_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/thermal_energy/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/diagnostics/kernels/thermal_energy/thermal_energy_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_and_sort_particles/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_and_sort_particles/box_and_sort_particles_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_particles/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/box_particles/box_particles_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/fill_boxes/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/fill_boxes/fill_boxes_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/sort_and_fill_boxes/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/kernels/sort_and_fill_boxes/sort_and_fill_boxes_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/marker_layout.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernel_setup.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_2form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_2form/bstar_2form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/bstar_parallel_3form_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/bstar_parallel_3form/bstar_parallel_3form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/driftkinetic_hamiltonian/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/driftkinetic_hamiltonian/driftkinetic_hamiltonian_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/grad_driftkinetic_hamiltonian/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/grad_driftkinetic_hamiltonian/grad_driftkinetic_hamiltonian_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_H1vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_H1vec/push_bxu_H1vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hcurl/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hcurl/push_bxu_Hcurl_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv/push_bxu_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv_pauli/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_bxu_Hdiv_pauli/push_bxu_Hdiv_pauli_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_deterministic_diffusion_stage/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_deterministic_diffusion_stage/push_deterministic_diffusion_stage_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_eta_stage/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_eta_stage/push_eta_stage_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order/push_gc_Bstar_discrete_gradient_1st_order_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order_newton/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_1st_order_newton/push_gc_Bstar_discrete_gradient_1st_order_newton_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_2nd_order/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_discrete_gradient_2nd_order/push_gc_Bstar_discrete_gradient_2nd_order_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_explicit_multistage/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_Bstar_explicit_multistage/push_gc_Bstar_explicit_multistage_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_dg_1st_order_newton/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_dg_1st_order_newton/push_gc_bxEstar_dg_1st_order_newton_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_1st_order/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_1st_order/push_gc_bxEstar_discrete_gradient_1st_order_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_2nd_order/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_discrete_gradient_2nd_order/push_gc_bxEstar_discrete_gradient_2nd_order_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_explicit_multistage/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_bxEstar_explicit_multistage/push_gc_bxEstar_explicit_multistage_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_H1vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_H1vec/push_gc_cc_J1_H1vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hcurl/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hcurl/push_gc_cc_J1_Hcurl_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J1_Hdiv/push_gc_cc_J1_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_Hdiv/push_gc_cc_J2_dg_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_init_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_dg_init_Hdiv/push_gc_cc_J2_dg_init_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_H1vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_H1vec/push_gc_cc_J2_stage_H1vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_gc_cc_J2_stage_Hdiv/push_gc_cc_J2_stage_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu/push_pc_GXu_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu_full/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_GXu_full/push_pc_GXu_full_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_H1vec/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_H1vec/push_pc_eta_stage_H1vec_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hcurl/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hcurl/push_pc_eta_stage_Hcurl_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hdiv/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_pc_eta_stage_Hdiv/push_pc_eta_stage_Hdiv_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_random_diffusion_stage/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_random_diffusion_stage/push_random_diffusion_stage_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure/push_v_sph_pressure_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure_ideal_gas/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_sph_pressure_ideal_gas/push_v_sph_pressure_ideal_gas_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_viscosity/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_viscosity/push_v_viscosity_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/push_v_with_efield_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield/push_v_with_efield_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield_mu/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_v_with_efield_mu/push_v_with_efield_mu_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_analytic/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_analytic/push_vxb_analytic_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/push_vxb_implicit_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_vxb_implicit/push_vxb_implicit_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/push_weights_with_efield_lin_va_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/push_weights_with_efield_lin_va/push_weights_with_efield_lin_va_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/reflect_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/reflect/reflect_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_isotherm_kappa/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_isotherm_kappa/sph_isotherm_kappa_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_mean_velocity_coeffs/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_mean_velocity_coeffs/sph_mean_velocity_coeffs_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_pressure_coeffs/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_pressure_coeffs/sph_pressure_coeffs_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_viscosity_tensor/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/sph_viscosity_tensor/sph_viscosity_tensor_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/unit_b_1form/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/kernels/unit_b_1form/unit_b_1form_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/prepare_push_cuda.cu +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/pushing/pusher_utilities_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sampling_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sobol_seq.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sorting.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sorting_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_flat/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_flat/box_based_evaluation_flat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_meshgrid/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/box_based_evaluation_meshgrid/box_based_evaluation_meshgrid_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_flat/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_flat/naive_evaluation_flat_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_meshgrid/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph/kernels/naive_evaluation_meshgrid/naive_evaluation_meshgrid_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph_eval_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/sph_smoothing_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/_bench_push_vxb_analytic.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/bench_marker_layout.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/bench_openmp_speedup.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/kernel_test_args.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_matrix_cupy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_pressure_coupling.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_accum_vec_H1.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_binning.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_cuda_emulation.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_cuda_parity.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_device_helpers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_draw_parallel.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_estimate_mem.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_gc_epsilon.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_kernel_setup.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_load_external.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_marker_layout.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_mat_vec_filler.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_neighbor_ranks.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_openmp.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pauli_particles.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pusher_openmp_speedup.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_pushers.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_reflect.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_set_zero_velocity.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_show_distribution.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_sorting.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_sph.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_tesselation.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/tests/test_utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/utilities.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/pic/utilities_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/basic.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/extraction_operators.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/kron_2dx1d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/linear_operators.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_factorization_cache.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_polar.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/polar/tests/test_polar_cupy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/arrays.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/hardware_dicts.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/likwid_parser.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/maxplotlylib.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/plot_likwidproject.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/likwid/roofline_plotter.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/manifest.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/orbits_kernels.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/orbits/orbits_tools.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/particle_diagnostics.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/plot_3d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/profiling.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/si.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/slices.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/store.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_arrays.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_eval_grids.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_eval_grids_mpi.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_orbits_tools.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_output.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_particle_diagnostics.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_plot_3d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_pproc.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/post_processing/tests/test_slices.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/adiabatic_phi.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/adiabatic_poisson_solve.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/faraday_extended.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/hall.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/hasegawa_wakatani_step.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/jxb_cold.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/magnetosonic_uniform.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/ohm_cold.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_deterministic_diffusion.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_eta.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_eta_pc.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_random_diffusion.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_v_in_sph_pressure.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/push_v_in_viscous_potential.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/shear_alfven_b1.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_adiabatic_poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_curl_curl.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_current_coupling_5d_options.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_gyrokinetic_poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_poisson.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_pressure_coupling_6d.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_push_random_diffusion.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_time_dependent_source.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_two_fluid_quasi_neutral_full.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_density_evolve.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_mag_field_evolve.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/tests/test_variational_solver_option.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/time_dependent_source.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/propagators/two_fluid_quasi_neutral_full.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/base.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/tests/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/simulation/tests/test_sim_comm_mpi.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/struphy_model_test/ColdPlasma/parameters.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/topology/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/topology/grids.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/__init__.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/compiler.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/cuda_arguments.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/cupy_vs_numpy.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/ipython_compat.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/kernel_compilation.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/progress.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/test_clone_config.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy/utils/test_utils.py +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/dependency_links.txt +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/entry_points.txt +0 -0
- {struphy-3.5.0 → struphy-3.6.0}/src/struphy.egg-info/top_level.txt +0 -0
struphy-3.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: struphy
|
|
3
|
+
Version: 3.6.0
|
|
4
|
+
Summary: Multi-model plasma physics package
|
|
5
|
+
Author: Max Planck Institute for Plasma Physics
|
|
6
|
+
Author-email: stefan.possanner@ipp.mpg.de, max.lindqvist@ipp.mpg.de, eric.sonnendruecker@ipp.mpg.de
|
|
7
|
+
License: Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
10
|
+
associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
11
|
+
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
12
|
+
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
13
|
+
subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
16
|
+
portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
|
|
19
|
+
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
20
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
21
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
Project-URL: homepage, https://struphy-hub.github.io/struphy/index.html
|
|
24
|
+
Project-URL: documentation, https://struphy-hub.github.io/struphy/index.html
|
|
25
|
+
Project-URL: repository, https://github.com/struphy-hub/struphy
|
|
26
|
+
Project-URL: changelog, https://github.com/struphy-hub/struphy/blob/devel/CHANGELOG.md
|
|
27
|
+
Project-URL: Bug Tracker, https://github.com/struphy-hub/struphy/issues
|
|
28
|
+
Keywords: plasma physics, fusion, numerical modeling, partial differential equations, energetic particles
|
|
29
|
+
Classifier: Programming Language :: Python :: 3
|
|
30
|
+
Requires-Python: >=3.10
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE
|
|
33
|
+
Requires-Dist: numpy<=2.5.0
|
|
34
|
+
Requires-Dist: cunumpy<=0.7.0,>=0.6.3
|
|
35
|
+
Requires-Dist: pyccel<=2.2.3,>=2.2.0
|
|
36
|
+
Requires-Dist: maybempi>=0.1.2
|
|
37
|
+
Requires-Dist: feectools<=0.10.0,>=0.10.0
|
|
38
|
+
Requires-Dist: scipy<=1.18.0
|
|
39
|
+
Requires-Dist: h5py<=3.16.0
|
|
40
|
+
Requires-Dist: h5netcdf<=1.8.1
|
|
41
|
+
Requires-Dist: xarray<=2026.9.0
|
|
42
|
+
Requires-Dist: matplotlib<=3.11.0
|
|
43
|
+
Requires-Dist: pyyaml<=6.0.3
|
|
44
|
+
Requires-Dist: vtk<=9.7.0
|
|
45
|
+
Requires-Dist: tqdm<=4.70.0
|
|
46
|
+
Requires-Dist: argcomplete<=3.7.0
|
|
47
|
+
Requires-Dist: ipywidgets<=8.1.8
|
|
48
|
+
Requires-Dist: plotly<=7.1.0
|
|
49
|
+
Requires-Dist: pyvista<=0.49.0
|
|
50
|
+
Requires-Dist: trame<=4.0.0
|
|
51
|
+
Requires-Dist: trame-vtk<=2.11.8
|
|
52
|
+
Requires-Dist: trame-vuetify<=3.3.0
|
|
53
|
+
Requires-Dist: nest_asyncio2<=1.7.2
|
|
54
|
+
Requires-Dist: vtk<=9.7.0
|
|
55
|
+
Requires-Dist: pytest<=9.1.0
|
|
56
|
+
Requires-Dist: pytest-mpi<=0.6
|
|
57
|
+
Requires-Dist: pytest-testmon<=2.2.0
|
|
58
|
+
Requires-Dist: ruff==0.16.10
|
|
59
|
+
Requires-Dist: line_profiler<=5.0.2
|
|
60
|
+
Requires-Dist: scope-profiler<=0.7.3,>=0.5.0
|
|
61
|
+
Provides-Extra: mpi
|
|
62
|
+
Requires-Dist: mpi4py<=4.1.1; extra == "mpi"
|
|
63
|
+
Provides-Extra: gpu
|
|
64
|
+
Requires-Dist: cupy-cuda12x; extra == "gpu"
|
|
65
|
+
Provides-Extra: phys
|
|
66
|
+
Requires-Dist: gvec<=1.5.0,>=1.1.0; extra == "phys"
|
|
67
|
+
Requires-Dist: desc-opt<=0.17.1; extra == "phys"
|
|
68
|
+
Provides-Extra: pproc
|
|
69
|
+
Requires-Dist: plasma-plots>=0.1.0; extra == "pproc"
|
|
70
|
+
Provides-Extra: dev
|
|
71
|
+
Requires-Dist: struphy[mpi]; extra == "dev"
|
|
72
|
+
Requires-Dist: struphy[pproc]; extra == "dev"
|
|
73
|
+
Requires-Dist: notebook; extra == "dev"
|
|
74
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
75
|
+
Requires-Dist: nbstripout; extra == "dev"
|
|
76
|
+
Requires-Dist: tomli-w; extra == "dev"
|
|
77
|
+
Requires-Dist: kaleido; extra == "dev"
|
|
78
|
+
Requires-Dist: pandas; extra == "dev"
|
|
79
|
+
Requires-Dist: scope-profiler[pproc]; extra == "dev"
|
|
80
|
+
Requires-Dist: slurm-script-generator>=0.3.6; extra == "dev"
|
|
81
|
+
Provides-Extra: doc
|
|
82
|
+
Requires-Dist: struphy[phys]; extra == "doc"
|
|
83
|
+
Requires-Dist: struphy[pproc]; extra == "doc"
|
|
84
|
+
Requires-Dist: jupyter; extra == "doc"
|
|
85
|
+
Requires-Dist: nbconvert; extra == "doc"
|
|
86
|
+
Requires-Dist: ipykernel; extra == "doc"
|
|
87
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
88
|
+
Requires-Dist: sphinx-design; extra == "doc"
|
|
89
|
+
Requires-Dist: lxml_html_clean; extra == "doc"
|
|
90
|
+
Requires-Dist: sphinxcontrib-napoleon; extra == "doc"
|
|
91
|
+
Requires-Dist: sphinx-copybutton; extra == "doc"
|
|
92
|
+
Requires-Dist: sphinx-collections; extra == "doc"
|
|
93
|
+
Requires-Dist: pydata-sphinx-theme; extra == "doc"
|
|
94
|
+
Requires-Dist: nbsphinx; extra == "doc"
|
|
95
|
+
Requires-Dist: m2r2; extra == "doc"
|
|
96
|
+
Requires-Dist: myst-parser; extra == "doc"
|
|
97
|
+
Requires-Dist: docutils; extra == "doc"
|
|
98
|
+
Requires-Dist: ipyparallel; extra == "doc"
|
|
99
|
+
Requires-Dist: scope-profiler[pproc]; extra == "doc"
|
|
100
|
+
Provides-Extra: likwid
|
|
101
|
+
Requires-Dist: struphy[dev]; extra == "likwid"
|
|
102
|
+
Requires-Dist: pylikwid; extra == "likwid"
|
|
103
|
+
Provides-Extra: all
|
|
104
|
+
Requires-Dist: struphy[phys]; extra == "all"
|
|
105
|
+
Requires-Dist: struphy[pproc]; extra == "all"
|
|
106
|
+
Requires-Dist: struphy[dev]; extra == "all"
|
|
107
|
+
Requires-Dist: struphy[mpi]; extra == "all"
|
|
108
|
+
Requires-Dist: struphy[doc]; extra == "all"
|
|
109
|
+
Requires-Dist: struphy[likwid]; extra == "all"
|
|
110
|
+
Dynamic: license-file
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+

|
|
115
|
+
|
|
116
|
+
<p>
|
|
117
|
+
|
|
118
|
+
<a href="https://github.com/struphy-hub/struphy/releases"><img src="https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release" alt="Release"></a> <a href="https://github.com/struphy-hub/struphy/blob/devel/LICENSE"><img src="https://img.shields.io/badge/License-MIT-violet" alt="License"></a> <a href="https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main"><img src="https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC" alt="badge"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg" alt="Ubuntu latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg" alt="MacOS latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg" alt="ruff"></a> <a href="https://pypi.org/project/struphy/"><img src="https://img.shields.io/pypi/v/struphy?label=PyPI" alt="PyPI"></a> <a href="https://pepy.tech/projects/struphy"><img src="https://img.shields.io/pepy/dt/struphy?label=PyPI%20downloads" alt="PyPI Downloads"></a>
|
|
119
|
+
</p>
|
|
120
|
+
|
|
121
|
+
# Welcome!
|
|
122
|
+
|
|
123
|
+
**This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
|
|
124
|
+
|
|
125
|
+
**STRUPHY** stands for **STRU**cture-**P**reserving **HY**brid code (or **STRU**cture-preserving **PHY**sics code). The package provides off-the-shelf models for plasma physics problems, such as
|
|
126
|
+
|
|
127
|
+
- Maxwell’s equations
|
|
128
|
+
- Magneto-hydrodynamics (MHD)
|
|
129
|
+
- Multi-fluid models
|
|
130
|
+
- Vlasov-Poisson and Vlasov-Maxwell kinetic models
|
|
131
|
+
- Drift-kinetic models for strongly magnetized plasma
|
|
132
|
+
- MHD-kinetic hybrid models
|
|
133
|
+
|
|
134
|
+
All models can be run on multiple cores through MPI (distributed memory) and OpenMP (shared memory). The compute-intensive parts of the code are translated and compiled (“transpiled”) using [pyccel](https://github.com/pyccel/pyccel), giving you the speed of Fortran or C while working within the familiar Python environment.
|
|
135
|
+
|
|
136
|
+
Explore Struphy on its website **[struphy-hub.github.io](https://struphy-hub.github.io/)**: the models and their equations, the numerical methods, domains, equilibria and a gallery of examples.
|
|
137
|
+
|
|
138
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
139
|
+
|
|
140
|
+

|
|
141
|
+
|
|
142
|
+
## Quick install
|
|
143
|
+
|
|
144
|
+
Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
|
|
145
|
+
|
|
146
|
+
pip install -U struphy
|
|
147
|
+
struphy compile -j 4
|
|
148
|
+
|
|
149
|
+
`-j 4` compiles the kernels in parallel on four cores. In case you face troubles with install/compile:
|
|
150
|
+
|
|
151
|
+
1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
|
|
152
|
+
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
153
|
+
|
|
154
|
+
## Examples
|
|
155
|
+
|
|
156
|
+
Ready-to-run simulations, each with a parameter file and a post-processing script, are in the repository [struphy-examples](https://github.com/struphy-hub/struphy-examples), one folder per model and case. Its tags match the Struphy releases, so clone the tag of your installed version (`struphy --version`), for example
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
git clone --branch vX.Y.Z https://github.com/struphy-hub/struphy-examples.git
|
|
160
|
+
cd struphy-examples/VlasovAmpereOneSpecies/two_stream
|
|
161
|
+
python params_two_stream.py
|
|
162
|
+
python pproc_two_stream.py
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+

|
|
166
|
+
|
|
167
|
+
*Two-stream instability: the electron distribution function f(x, v) at t = 0, 25 and 50, computed with the model [VlasovAmpereOneSpecies](https://struphy-hub.github.io/models/vlasov-ampere-one-species/) in a FEEC-PIC discretization (particle-in-cell markers for the electrons, finite element exterior calculus splines for the electric field). Two counter-streaming beams roll up into a phase-space vortex.*
|
|
168
|
+
|
|
169
|
+
To look at finished examples and their results without running anything, browse the [examples gallery](https://struphy-hub.github.io/examples/) on the Struphy website.
|
|
170
|
+
|
|
171
|
+
## AI coding agents
|
|
172
|
+
|
|
173
|
+
Struphy ships a usage guide for AI coding agents (Claude Code, Codex, Copilot, Cursor, ...) that matches your installed version. It explains how to set up, run and post-process simulations. Print it with
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
struphy agents
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
To make it available in your own project, run this in the project folder:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
struphy agents --install
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
This copies the Struphy skills (`setup-simulation`, `postprocess-simulation`) to `.claude/skills/` and adds a short pointer to the guide to `AGENTS.md` and `CLAUDE.md`, so your agent finds it automatically. Run it again after upgrading Struphy. Developers changing Struphy itself find the coding guidelines in [AGENTS.md](https://github.com/struphy-hub/struphy/blob/devel/AGENTS.md).
|
|
186
|
+
|
|
187
|
+
## Available models
|
|
188
|
+
|
|
189
|
+
Check the list of currently [available models](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
|
|
190
|
+
|
|
191
|
+
## Documentation
|
|
192
|
+
|
|
193
|
+
The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
|
|
194
|
+
|
|
195
|
+
- [Website](https://struphy-hub.github.io/) (overview of models, numerics and examples)
|
|
196
|
+
- [Install](https://struphy-hub.github.io/struphy/sections/install.html)
|
|
197
|
+
- [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
|
|
198
|
+
- [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
|
|
199
|
+
- [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
|
|
200
|
+
|
|
201
|
+
The same doc is also on [Read the Docs](https://struphy.readthedocs.io/en/latest/), which also has the doc pages of older Struphy versions, starting from 3.1.0 (version menu of Read the Docs). The Read the Docs build does not execute the notebooks in the doc (e.g. the tutorials): they appear there without any outputs. The GitHub pages build executes them.
|
|
202
|
+
|
|
203
|
+
## Example: solve Maxwell’s equations
|
|
204
|
+
|
|
205
|
+
Use the command line to generate a default launch file:
|
|
206
|
+
|
|
207
|
+
struphy params Maxwell
|
|
208
|
+
|
|
209
|
+
This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
|
|
210
|
+
|
|
211
|
+
python params_Maxwell.py
|
|
212
|
+
|
|
213
|
+
The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
|
|
214
|
+
|
|
215
|
+
For plots and diagnostics of the output, install [plasma-plots](https://struphy-hub.github.io/plasma-plots) with `pip install "struphy[pproc]"`; `Output` loads it automatically, adding `out.plot`, `out.analysis` and `.plasma.plot` on every product.
|
|
216
|
+
|
|
217
|
+
Parallel simulations are run for example with
|
|
218
|
+
|
|
219
|
+
pip install -U mpi4py
|
|
220
|
+
mpirun -n 4 python params_Maxwell.py
|
|
221
|
+
|
|
222
|
+
You can also put the run command in a batch script.
|
|
223
|
+
|
|
224
|
+
## Python API
|
|
225
|
+
|
|
226
|
+
Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
|
|
227
|
+
|
|
228
|
+
``` python
|
|
229
|
+
from struphy import (
|
|
230
|
+
Simulation,
|
|
231
|
+
domains,
|
|
232
|
+
equils,
|
|
233
|
+
)
|
|
234
|
+
from struphy.models import LinearMHD
|
|
235
|
+
|
|
236
|
+
model = LinearMHD()
|
|
237
|
+
|
|
238
|
+
domain = domains.DESCunit()
|
|
239
|
+
equil = equils.DESCequilibrium(use_nfp=False)
|
|
240
|
+
|
|
241
|
+
sim = Simulation(
|
|
242
|
+
model=model,
|
|
243
|
+
domain=domain,
|
|
244
|
+
equil=equil,
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+

|
|
251
|
+
|
|
252
|
+
This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
|
|
253
|
+
|
|
254
|
+
## Tutorials on Binder
|
|
255
|
+
|
|
256
|
+
Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
|
|
257
|
+
|
|
258
|
+
## Docker
|
|
259
|
+
|
|
260
|
+
If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
|
|
261
|
+
|
|
262
|
+
docker pull spossann/struphy:main
|
|
263
|
+
docker run -it --rm spossann/struphy:main
|
|
264
|
+
ls struphy_*
|
|
265
|
+
|
|
266
|
+
This will show three available Struphy environments, which you can activate for example via
|
|
267
|
+
|
|
268
|
+
source struphy_fortran_/env_fortran_/bin/activate
|
|
269
|
+
|
|
270
|
+
There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
|
|
271
|
+
|
|
272
|
+
docker pull spossann/ubuntu-for-struphy:main
|
|
273
|
+
docker run -it --rm spossann/ubuntu-for-struphy:main
|
|
274
|
+
|
|
275
|
+
## Get in touch
|
|
276
|
+
|
|
277
|
+
- [Issues](https://github.com/struphy-hub/struphy/issues)
|
|
278
|
+
- [Discussions](https://github.com/struphy-hub/struphy/discussions)
|
|
279
|
+
- [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
|
|
280
|
+
- [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
|
|
281
|
+
- [LinkedIn profile](https://www.linkedin.com/company/struphy/)
|
|
282
|
+
|
|
283
|
+
## Publications
|
|
284
|
+
|
|
285
|
+
- D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
|
|
286
|
+
[**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
|
|
287
|
+
Journal of Computational Physics, Volume 555, 114765 (2026).
|
|
288
|
+
|
|
289
|
+
- V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
|
|
290
|
+
Journal of Computational Physics, Volume 523, 113647 (2025).
|
|
291
|
+
|
|
292
|
+
- Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
|
|
293
|
+
|
|
294
|
+
- S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
|
|
295
|
+
|
|
296
|
+
- F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
|
|
297
|
+
|
|
298
|
+
- F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
|
|
299
|
+
|
|
300
|
+
- F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).
|
struphy-3.6.0/README.md
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
<p>
|
|
6
|
+
|
|
7
|
+
<a href="https://github.com/struphy-hub/struphy/releases"><img src="https://img.shields.io/github/v/release/struphy-hub/struphy?label=Release" alt="Release"></a> <a href="https://github.com/struphy-hub/struphy/blob/devel/LICENSE"><img src="https://img.shields.io/badge/License-MIT-violet" alt="License"></a> <a href="https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main"><img src="https://img.shields.io/badge/launch-tutorials-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC" alt="badge"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-ubuntu.yml/badge.svg" alt="Ubuntu latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/scheduled-macos.yml/badge.svg" alt="MacOS latest"></a> <a href="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml"><img src="https://github.com/struphy-hub/struphy/actions/workflows/static_analysis.yml/badge.svg" alt="ruff"></a> <a href="https://pypi.org/project/struphy/"><img src="https://img.shields.io/pypi/v/struphy?label=PyPI" alt="PyPI"></a> <a href="https://pepy.tech/projects/struphy"><img src="https://img.shields.io/pepy/dt/struphy?label=PyPI%20downloads" alt="PyPI Downloads"></a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
# Welcome!
|
|
11
|
+
|
|
12
|
+
**This is a Python package for solving partial differential equations (PDEs) mainly - but not exclusively - for plasma physics.**
|
|
13
|
+
|
|
14
|
+
**STRUPHY** stands for **STRU**cture-**P**reserving **HY**brid code (or **STRU**cture-preserving **PHY**sics code). The package provides off-the-shelf models for plasma physics problems, such as
|
|
15
|
+
|
|
16
|
+
- Maxwell’s equations
|
|
17
|
+
- Magneto-hydrodynamics (MHD)
|
|
18
|
+
- Multi-fluid models
|
|
19
|
+
- Vlasov-Poisson and Vlasov-Maxwell kinetic models
|
|
20
|
+
- Drift-kinetic models for strongly magnetized plasma
|
|
21
|
+
- MHD-kinetic hybrid models
|
|
22
|
+
|
|
23
|
+
All models can be run on multiple cores through MPI (distributed memory) and OpenMP (shared memory). The compute-intensive parts of the code are translated and compiled (“transpiled”) using [pyccel](https://github.com/pyccel/pyccel), giving you the speed of Fortran or C while working within the familiar Python environment.
|
|
24
|
+
|
|
25
|
+
Explore Struphy on its website **[struphy-hub.github.io](https://struphy-hub.github.io/)**: the models and their equations, the numerical methods, domains, equilibria and a gallery of examples.
|
|
26
|
+
|
|
27
|
+
The code is freely available under an [MIT license](https://github.com/struphy-hub/struphy/blob/devel/LICENSE) - Copyright (c) 2019-2026, Struphy developers, Max Planck Institute for Plasma Physics.
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
## Quick install
|
|
32
|
+
|
|
33
|
+
Struphy is available on [PyPI](https://pypi.org/project/struphy/), so you can install it with pip:
|
|
34
|
+
|
|
35
|
+
pip install -U struphy
|
|
36
|
+
struphy compile -j 4
|
|
37
|
+
|
|
38
|
+
`-j 4` compiles the kernels in parallel on four cores. In case you face troubles with install/compile:
|
|
39
|
+
|
|
40
|
+
1. check the [prerequisites](https://struphy-hub.github.io/struphy/sections/install.html#requirements)
|
|
41
|
+
2. visit [trouble shooting](https://struphy-hub.github.io/struphy/sections/install.html#trouble-shooting)
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
Ready-to-run simulations, each with a parameter file and a post-processing script, are in the repository [struphy-examples](https://github.com/struphy-hub/struphy-examples), one folder per model and case. Its tags match the Struphy releases, so clone the tag of your installed version (`struphy --version`), for example
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
git clone --branch vX.Y.Z https://github.com/struphy-hub/struphy-examples.git
|
|
49
|
+
cd struphy-examples/VlasovAmpereOneSpecies/two_stream
|
|
50
|
+
python params_two_stream.py
|
|
51
|
+
python pproc_two_stream.py
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
*Two-stream instability: the electron distribution function f(x, v) at t = 0, 25 and 50, computed with the model [VlasovAmpereOneSpecies](https://struphy-hub.github.io/models/vlasov-ampere-one-species/) in a FEEC-PIC discretization (particle-in-cell markers for the electrons, finite element exterior calculus splines for the electric field). Two counter-streaming beams roll up into a phase-space vortex.*
|
|
57
|
+
|
|
58
|
+
To look at finished examples and their results without running anything, browse the [examples gallery](https://struphy-hub.github.io/examples/) on the Struphy website.
|
|
59
|
+
|
|
60
|
+
## AI coding agents
|
|
61
|
+
|
|
62
|
+
Struphy ships a usage guide for AI coding agents (Claude Code, Codex, Copilot, Cursor, ...) that matches your installed version. It explains how to set up, run and post-process simulations. Print it with
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
struphy agents
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
To make it available in your own project, run this in the project folder:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
struphy agents --install
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
This copies the Struphy skills (`setup-simulation`, `postprocess-simulation`) to `.claude/skills/` and adds a short pointer to the guide to `AGENTS.md` and `CLAUDE.md`, so your agent finds it automatically. Run it again after upgrading Struphy. Developers changing Struphy itself find the coding guidelines in [AGENTS.md](https://github.com/struphy-hub/struphy/blob/devel/AGENTS.md).
|
|
75
|
+
|
|
76
|
+
## Available models
|
|
77
|
+
|
|
78
|
+
Check the list of currently [available models](https://struphy-hub.github.io/struphy/sections/models.html). If you want to see a particular model implemented, please let us know via [issues](https://github.com/struphy-hub/struphy/issues).
|
|
79
|
+
|
|
80
|
+
## Documentation
|
|
81
|
+
|
|
82
|
+
The doc is on [Github pages](https://struphy-hub.github.io/struphy/index.html), we recommend in particular to visit:
|
|
83
|
+
|
|
84
|
+
- [Website](https://struphy-hub.github.io/) (overview of models, numerics and examples)
|
|
85
|
+
- [Install](https://struphy-hub.github.io/struphy/sections/install.html)
|
|
86
|
+
- [Userguide](https://struphy-hub.github.io/struphy/sections/userguide.html)
|
|
87
|
+
- [Available models](https://struphy-hub.github.io/struphy/sections/models.html)
|
|
88
|
+
- [Numerical methods](https://struphy-hub.github.io/struphy/sections/numerics.html)
|
|
89
|
+
|
|
90
|
+
The same doc is also on [Read the Docs](https://struphy.readthedocs.io/en/latest/), which also has the doc pages of older Struphy versions, starting from 3.1.0 (version menu of Read the Docs). The Read the Docs build does not execute the notebooks in the doc (e.g. the tutorials): they appear there without any outputs. The GitHub pages build executes them.
|
|
91
|
+
|
|
92
|
+
## Example: solve Maxwell’s equations
|
|
93
|
+
|
|
94
|
+
Use the command line to generate a default launch file:
|
|
95
|
+
|
|
96
|
+
struphy params Maxwell
|
|
97
|
+
|
|
98
|
+
This will create `params_Maxwell.py` in your current working directory (cwd). You can open the file and - if you feel like it already - change some parameters. Start the simulation with
|
|
99
|
+
|
|
100
|
+
python params_Maxwell.py
|
|
101
|
+
|
|
102
|
+
The default output is in `sim_1/` in your cwd. You can change the output path via the class `EnvironmentOptions` in the parameter file.
|
|
103
|
+
|
|
104
|
+
For plots and diagnostics of the output, install [plasma-plots](https://struphy-hub.github.io/plasma-plots) with `pip install "struphy[pproc]"`; `Output` loads it automatically, adding `out.plot`, `out.analysis` and `.plasma.plot` on every product.
|
|
105
|
+
|
|
106
|
+
Parallel simulations are run for example with
|
|
107
|
+
|
|
108
|
+
pip install -U mpi4py
|
|
109
|
+
mpirun -n 4 python params_Maxwell.py
|
|
110
|
+
|
|
111
|
+
You can also put the run command in a batch script.
|
|
112
|
+
|
|
113
|
+
## Python API
|
|
114
|
+
|
|
115
|
+
Try out the Python API in a Jupyter notebook or any Python environment. For example, you can create a simulation object and show the domain and equilibrium magnetic field of the linear MHD model via
|
|
116
|
+
|
|
117
|
+
``` python
|
|
118
|
+
from struphy import (
|
|
119
|
+
Simulation,
|
|
120
|
+
domains,
|
|
121
|
+
equils,
|
|
122
|
+
)
|
|
123
|
+
from struphy.models import LinearMHD
|
|
124
|
+
|
|
125
|
+
model = LinearMHD()
|
|
126
|
+
|
|
127
|
+
domain = domains.DESCunit()
|
|
128
|
+
equil = equils.DESCequilibrium(use_nfp=False)
|
|
129
|
+
|
|
130
|
+
sim = Simulation(
|
|
131
|
+
model=model,
|
|
132
|
+
domain=domain,
|
|
133
|
+
equil=equil,
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
sim.show_domain(scalars="absB0", window_size = (850, 250), zoom_factor=2.0)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+

|
|
140
|
+
|
|
141
|
+
This will show the domain and equilibrium magnetic field of the linear MHD model. You can find more examples in the [documentation](https://struphy-hub.github.io/struphy/index.html).
|
|
142
|
+
|
|
143
|
+
## Tutorials on Binder
|
|
144
|
+
|
|
145
|
+
Get familiar with Struphy right away on [mybinder](https://mybinder.org/v2/gh/struphy-hub/struphy-tutorials/main) - no installation needed.
|
|
146
|
+
|
|
147
|
+
## Docker
|
|
148
|
+
|
|
149
|
+
If you want to get started right away without installing anything, you can use the [Docker image](https://hub.docker.com/r/spossann/struphy) - just pull and run:
|
|
150
|
+
|
|
151
|
+
docker pull spossann/struphy:main
|
|
152
|
+
docker run -it --rm spossann/struphy:main
|
|
153
|
+
ls struphy_*
|
|
154
|
+
|
|
155
|
+
This will show three available Struphy environments, which you can activate for example via
|
|
156
|
+
|
|
157
|
+
source struphy_fortran_/env_fortran_/bin/activate
|
|
158
|
+
|
|
159
|
+
There is also a [Docker image with just the prerequisites](https://hub.docker.com/r/spossann/ubuntu-for-struphy) (on Ubuntu), so you can install and compile Struphy on top of it yourself:
|
|
160
|
+
|
|
161
|
+
docker pull spossann/ubuntu-for-struphy:main
|
|
162
|
+
docker run -it --rm spossann/ubuntu-for-struphy:main
|
|
163
|
+
|
|
164
|
+
## Get in touch
|
|
165
|
+
|
|
166
|
+
- [Issues](https://github.com/struphy-hub/struphy/issues)
|
|
167
|
+
- [Discussions](https://github.com/struphy-hub/struphy/discussions)
|
|
168
|
+
- [@spossann](https://github.com/spossann) [stefan.possanner@ipp.mpg.de](mailto:spossann@ipp.mpg.de) (Maintainer)
|
|
169
|
+
- [@max-models](https://github.com/max-models) [max.lindqvist@ipp.mpg.de](mailto:Max.Lindqvist@ipp.mpg.de) (Maintainer)
|
|
170
|
+
- [LinkedIn profile](https://www.linkedin.com/company/struphy/)
|
|
171
|
+
|
|
172
|
+
## Publications
|
|
173
|
+
|
|
174
|
+
- D. Bell, M.C. Pinto, S. Possanner, E. Sonnendrücker,
|
|
175
|
+
[**The linearized Vlasov–Maxwell system as a Hamiltonian system**](https://doi.org/10.1016/j.jcp.2026.114765),
|
|
176
|
+
Journal of Computational Physics, Volume 555, 114765 (2026).
|
|
177
|
+
|
|
178
|
+
- V. Carlier, M.C. Pinto, [**Variational discretizations of ideal magnetohydrodynamics in smooth regime using structure-preserving finite elements**](https://doi.org/10.1016/j.jcp.2024.113647),
|
|
179
|
+
Journal of Computational Physics, Volume 523, 113647 (2025).
|
|
180
|
+
|
|
181
|
+
- Y. Li, M.C. Pinto, F. Holderied, S. Possanner, E. Sonnendrücker, [**Geometric Particle-In-Cell discretizations of a plasma hybrid model with kinetic ions and mass-less fluid electrons**](https://doi.org/10.1016/j.jcp.2023.112671), Journal of Computational Physics 498, 112671 (2023).
|
|
182
|
+
|
|
183
|
+
- S. Possanner, F. Holderied, Y. Li, B.-K. Na, D. Bell, S. Hadjout and Y. Güçlü, [**High-Order Structure-Preserving Algorithms for Plasma Hybrid Models**](https://link.springer.com/chapter/10.1007/978-3-031-38299-4_28), International Conference on Geometric Science of Information, 263-271, Springer Nature Switzerland (2023).
|
|
184
|
+
|
|
185
|
+
- F. Holderied, S. Possanner, [**Magneto-hydrodynamic eigenvalue solver for axisymmetric equilibria based on smooth polar splines**](https://doi.org/10.1016/j.jcp.2022.111329), Journal of Computational Physics 464, 111329 (2022).
|
|
186
|
+
|
|
187
|
+
- F. Holderied, S. Possanner, X. Wang, [**MHD-kinetic hybrid code based on structure-preserving finite elements with particles-in-cell**](https://doi.org/10.1016/j.jcp.2021.110143), Journal of Computational Physics 433, 110143 (2021).
|
|
188
|
+
|
|
189
|
+
- F. Holderied, S. Possanner, A. Ratnani, X. Wang, [**Structure-preserving vs. standard particle-in-cell methods: The case of an electron hybrid model**](https://doi.org/10.1016/j.jcp.2019.109108), Journal of Computational Physics 402, 109108 (2020).
|