ARTEMIS
LevelingThinning.H
Go to the documentation of this file.
1 /* Copyright 2019-2020 Neil Zaim
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_LEVELING_THINNING_H_
8 #define WARPX_LEVELING_THINNING_H_
9 
10 #include "Resampling.H"
11 
13 
14 #include <AMReX_REAL.H>
15 
16 #include <string>
17 
27 public:
28 
32  LevelingThinning () = default;
33 
39  LevelingThinning (const std::string species_name);
40 
48  void operator() (WarpXParIter& pti, const int lev, WarpXParticleContainer * const pc) const override final;
49 
50 private:
51  amrex::Real m_target_ratio = amrex::Real(1.5);
52  int m_min_ppc = 1;
53 };
54 
55 
56 #endif //WARPX_LEVELING_THINNING_H_
This class implements the leveling thinning algorithm as defined in Muraviev, A., et al....
Definition: LevelingThinning.H:26
LevelingThinning()=default
Default constructor of the LevelingThinning class.
int m_min_ppc
Definition: LevelingThinning.H:52
void operator()(WarpXParIter &pti, const int lev, WarpXParticleContainer *const pc) const override final
A method that performs leveling thinning for the considered species.
Definition: LevelingThinning.cpp:55
amrex::Real m_target_ratio
Definition: LevelingThinning.H:51
Definition: WarpXParticleContainer.H:52
Definition: WarpXParticleContainer.H:104
An empty base class from which specific resampling algorithms are derived.
Definition: Resampling.H:23