diff options
author | 2019-06-20 16:22:24 -0700 | |
---|---|---|
committer | 2019-06-20 16:22:24 -0700 | |
commit | ae9fdb55a96d44f411d93c5bddcc31ea3be0c0dd (patch) | |
tree | e7b78ba43f53fb5a25544f9f62b58c7756d7a50b /Source/Utils/WarpXAlgorithmSelection.H | |
parent | 7e0bae5661709febce5c40db627f4a3f5dfeee84 (diff) | |
parent | b1beba190f3a4b55f1ec16a1b0c81dfcabfa5b95 (diff) | |
download | WarpX-ae9fdb55a96d44f411d93c5bddcc31ea3be0c0dd.tar.gz WarpX-ae9fdb55a96d44f411d93c5bddcc31ea3be0c0dd.tar.zst WarpX-ae9fdb55a96d44f411d93c5bddcc31ea3be0c0dd.zip |
Merge branch 'dev' of https://github.com/ECP-WarpX/WarpX into SliceGeneration_with_yt_compliance_for_viz
Diffstat (limited to 'Source/Utils/WarpXAlgorithmSelection.H')
-rw-r--r-- | Source/Utils/WarpXAlgorithmSelection.H | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Source/Utils/WarpXAlgorithmSelection.H b/Source/Utils/WarpXAlgorithmSelection.H new file mode 100644 index 000000000..3fb23698a --- /dev/null +++ b/Source/Utils/WarpXAlgorithmSelection.H @@ -0,0 +1,57 @@ +#ifndef UTILS_WARPXALGORITHMSELECTION_H_ +#define UTILS_WARPXALGORITHMSELECTION_H_ + +#include <AMReX_ParmParse.H> +#include <string> + +struct MaxwellSolverAlgo { + // These numbers corresponds to the algorithm code in WarpX's + // `warpx_push_bvec` and `warpx_push_evec_f` + enum { + Yee = 0, + CKC = 1 + }; +}; + +struct ParticlePusherAlgo { + // These numbers correspond to the algorithm code in WarpX's + // `warpx_particle_pusher` + enum { + Boris = 0, + Vay = 1 + }; +}; + +struct CurrentDepositionAlgo { + enum { + // These numbers corresponds to the algorithm code in PICSAR's + // `depose_jxjyjz_generic` and `depose_jxjyjz_generic_2d` + Direct = 3, + DirectVectorized = 2, + EsirkepovNonOptimized = 1, + Esirkepov = 0 + }; +}; + +struct ChargeDepositionAlgo { + // These numbers corresponds to the algorithm code in WarpX's + // `warpx_charge_deposition` function + enum { + Vectorized = 0, + Standard = 1 + }; +}; + +struct GatheringAlgo { + // These numbers corresponds to the algorithm code in PICSAR's + // `geteb3d_energy_conserving_generic` function + enum { + Vectorized = 0, + Standard = 1 + }; +}; + +int +GetAlgorithmInteger( amrex::ParmParse& pp, const char* pp_search_key ); + +#endif // UTILS_WARPXALGORITHMSELECTION_H_ |