-
Notifications
You must be signed in to change notification settings - Fork 32
Simulator template struct #1056
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| #ifndef PHARE_SPLIT_HPP | ||
| #define PHARE_SPLIT_HPP | ||
|
|
||
| #include "amr/data/particles/refine/split_1d.hpp" | ||
| #include "amr/data/particles/refine/split_2d.hpp" | ||
| #include "amr/data/particles/refine/split_1d.hpp" // IWYU pragma: keep | ||
| #include "amr/data/particles/refine/split_2d.hpp" // IWYU pragma: keep | ||
|
|
||
|
|
||
| #endif // endif PHARE_SPLIT_HPP |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| #ifndef PHARE_SIMULATOR_OPTIONS_HPP | ||
| #define PHARE_SIMULATOR_OPTIONS_HPP | ||
|
|
||
| #include "core/utilities/meta/meta_utilities.hpp" | ||
|
|
||
| #include <cstddef> | ||
|
|
||
| namespace PHARE | ||
| { | ||
|
|
||
|
|
||
| struct SimOpts | ||
| { | ||
| std::size_t dimension = 1; | ||
| std::size_t interp_order = 1; | ||
|
|
||
| std::size_t nbRefinedPart = core::defaultNbrRefinedParts(dimension, interp_order); | ||
| }; | ||
|
|
||
|
|
||
|
|
||
| } // namespace PHARE | ||
|
|
||
| #endif // PHARE_SIMULATOR_OPTIONS_HPP |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -2,57 +2,54 @@ | |||||||||||||||||||||||||
| #ifndef PHARE_SOLVER_INCLUDE_HPP | ||||||||||||||||||||||||||
| #define PHARE_SOLVER_INCLUDE_HPP | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #include "phare_amr.hpp" | ||||||||||||||||||||||||||
| #include "phare_amr.hpp" // IWYU pragma: keep | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #include "amr/solvers/solver.hpp" | ||||||||||||||||||||||||||
| #include "amr/solvers/solver_mhd.hpp" | ||||||||||||||||||||||||||
| #include "amr/solvers/solver_ppc.hpp" | ||||||||||||||||||||||||||
| #include "amr/level_initializer/level_initializer.hpp" | ||||||||||||||||||||||||||
| #include "amr/level_initializer/level_initializer_factory.hpp" | ||||||||||||||||||||||||||
| #include "amr/multiphysics_integrator.hpp" | ||||||||||||||||||||||||||
| #include "amr/physical_models/hybrid_model.hpp" | ||||||||||||||||||||||||||
| #include "amr/physical_models/mhd_model.hpp" | ||||||||||||||||||||||||||
| #include "amr/messengers/messenger_factory.hpp" | ||||||||||||||||||||||||||
| #include "amr/physical_models/hybrid_model.hpp" | ||||||||||||||||||||||||||
| #include "amr/physical_models/physical_model.hpp" | ||||||||||||||||||||||||||
| #include "amr/level_initializer/level_initializer_factory.hpp" | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| namespace PHARE::solver | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| template<std::size_t dimension_, std::size_t interp_order_, std::size_t nbRefinedPart_> | ||||||||||||||||||||||||||
| template<auto opts> | ||||||||||||||||||||||||||
| struct PHARE_Types | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| static auto constexpr dimension = dimension_; | ||||||||||||||||||||||||||
| static auto constexpr interp_order = interp_order_; | ||||||||||||||||||||||||||
| static auto constexpr nbRefinedPart = nbRefinedPart_; | ||||||||||||||||||||||||||
| auto static constexpr dimension = opts.dimension; | ||||||||||||||||||||||||||
| auto static constexpr interp_order = opts.interp_order; | ||||||||||||||||||||||||||
| auto static constexpr nbRefinedPart = opts.nbRefinedPart; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| // core deps | ||||||||||||||||||||||||||
| using core_types = PHARE::core::PHARE_Types<dimension, interp_order>; | ||||||||||||||||||||||||||
| using VecField_t = typename core_types::VecField_t; | ||||||||||||||||||||||||||
| using Grid_t = typename core_types::Grid_t; | ||||||||||||||||||||||||||
| using Electromag_t = typename core_types::Electromag_t; | ||||||||||||||||||||||||||
| using Ions_t = typename core_types::Ions_t; | ||||||||||||||||||||||||||
| using GridLayout_t = typename core_types::GridLayout_t; | ||||||||||||||||||||||||||
| using Electrons_t = typename core_types::Electrons_t; | ||||||||||||||||||||||||||
| using core_types = PHARE::core::PHARE_Types<opts>; | ||||||||||||||||||||||||||
| using VecField_t = core_types::VecField_t; | ||||||||||||||||||||||||||
| using Grid_t = core_types::Grid_t; | ||||||||||||||||||||||||||
| using Electromag_t = core_types::Electromag_t; | ||||||||||||||||||||||||||
| using Ions_t = core_types::Ions_t; | ||||||||||||||||||||||||||
| using GridLayout_t = core_types::GridLayout_t; | ||||||||||||||||||||||||||
| using Electrons_t = core_types::Electrons_t; | ||||||||||||||||||||||||||
|
Comment on lines
+27
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add missing typename on dependent nested types These aliases reference dependent types and require typename to compile. Apply: - using VecField_t = core_types::VecField_t;
- using Grid_t = core_types::Grid_t;
- using Electromag_t = core_types::Electromag_t;
- using Ions_t = core_types::Ions_t;
- using GridLayout_t = core_types::GridLayout_t;
- using Electrons_t = core_types::Electrons_t;
+ using VecField_t = typename core_types::VecField_t;
+ using Grid_t = typename core_types::Grid_t;
+ using Electromag_t = typename core_types::Electromag_t;
+ using Ions_t = typename core_types::Ions_t;
+ using GridLayout_t = typename core_types::GridLayout_t;
+ using Electrons_t = typename core_types::Electrons_t;📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| // core deps | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| using IPhysicalModel = PHARE::solver::IPhysicalModel<PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using HybridModel_t = PHARE::solver::HybridModel<GridLayout_t, Electromag_t, Ions_t, | ||||||||||||||||||||||||||
| Electrons_t, PHARE::amr::SAMRAI_Types, Grid_t>; | ||||||||||||||||||||||||||
| using MHDModel_t | ||||||||||||||||||||||||||
| = PHARE::solver::MHDModel<GridLayout_t, VecField_t, PHARE::amr::SAMRAI_Types, Grid_t>; | ||||||||||||||||||||||||||
| using SolverPPC_t = PHARE::solver::SolverPPC<HybridModel_t, PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using SolverMHD_t = PHARE::solver::SolverMHD<MHDModel_t, PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using LevelInitializerFactory_t = PHARE::solver::LevelInitializerFactory<HybridModel_t>; | ||||||||||||||||||||||||||
| using HybridModel_t = HybridModel<GridLayout_t, Electromag_t, Ions_t, Electrons_t, | ||||||||||||||||||||||||||
| PHARE::amr::SAMRAI_Types, Grid_t>; | ||||||||||||||||||||||||||
| using MHDModel_t = MHDModel<GridLayout_t, VecField_t, PHARE::amr::SAMRAI_Types, Grid_t>; | ||||||||||||||||||||||||||
| using SolverPPC_t = SolverPPC<HybridModel_t, PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using SolverMHD_t = SolverMHD<MHDModel_t, PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using LevelInitializerFactory_t = LevelInitializerFactory<HybridModel_t>; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| // amr deps | ||||||||||||||||||||||||||
| using amr_types = PHARE::amr::PHARE_Types<dimension, interp_order, nbRefinedPart>; | ||||||||||||||||||||||||||
| using RefinementParams = typename amr_types::RefinementParams; | ||||||||||||||||||||||||||
| using amr_types = PHARE::amr::PHARE_Types<opts>; | ||||||||||||||||||||||||||
| using RefinementParams = amr_types::RefinementParams; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| using MessengerFactory // = amr/solver bidirectional dependency | ||||||||||||||||||||||||||
| = PHARE::amr::MessengerFactory<MHDModel_t, HybridModel_t, RefinementParams>; | ||||||||||||||||||||||||||
| // amr deps | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| using MultiPhysicsIntegrator | ||||||||||||||||||||||||||
| = PHARE::solver::MultiPhysicsIntegrator<MessengerFactory, LevelInitializerFactory_t, | ||||||||||||||||||||||||||
| PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| using MultiPhysicsIntegrator_t | ||||||||||||||||||||||||||
| = MultiPhysicsIntegrator<MessengerFactory, LevelInitializerFactory_t, | ||||||||||||||||||||||||||
| PHARE::amr::SAMRAI_Types>; | ||||||||||||||||||||||||||
| }; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| } // namespace PHARE::solver | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Broken include path for GridLayoutImplYee
"gridlayoutimplyee.hpp" looks misspelled; tests include "core/data/grid/gridlayout_impl.hpp". This will fail to build.
If the actual header is gridlayout_impl_yee.hpp, include that instead.
📝 Committable suggestion
🤖 Prompt for AI Agents