WarpX
Toggle main menu visibility
Loading...
Searching...
No Matches
Source
Particles
Resampling
Resampling.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_RESAMPLING_H_
8
#define WARPX_RESAMPLING_H_
9
10
#include "
ResamplingTrigger.H
"
11
12
#include "
Particles/WarpXParticleContainer_fwd.H
"
13
14
#include <
AMReX_REAL.H
>
15
#include <
AMReX_Geometry.H
>
16
17
#include <memory>
18
#include <string>
19
23
struct
ResamplingAlgorithm
24
{
28
virtual
void
operator()
(
29
const
amrex::Geometry
&
/*geom_lev*/
,
WarpXParIter
&
/*pti*/
,
30
int
/*lev*/
,
WarpXParticleContainer
*
/*pc*/
)
const
= 0;
31
35
virtual
~ResamplingAlgorithm
() =
default
;
36
38
ResamplingAlgorithm
() =
default
;
39
40
41
ResamplingAlgorithm
(
ResamplingAlgorithm
const
&) =
default
;
42
ResamplingAlgorithm
&
operator=
(
ResamplingAlgorithm
const
& ) =
default
;
43
ResamplingAlgorithm
(
ResamplingAlgorithm
&& ) =
default
;
44
ResamplingAlgorithm
&
operator=
(
ResamplingAlgorithm
&& ) =
default
;
45
};
46
53
class
Resampling
54
{
55
public
:
56
60
Resampling
() =
default
;
61
68
explicit
Resampling
(
const
std::string& species_name);
69
77
bool
triggered
(
int
timestep,
amrex::Real
global_numparts)
const
;
78
87
void
operator()
(
88
const
amrex::Geometry
& geom_lev,
WarpXParIter
& pti,
89
int
lev,
WarpXParticleContainer
* pc)
const
;
90
91
private
:
92
ResamplingTrigger
m_resampling_trigger
;
93
std::unique_ptr<ResamplingAlgorithm>
m_resampling_algorithm
;
94
};
95
96
#endif
//WARPX_RESAMPLING_H_
AMReX_Geometry.H
AMReX_REAL.H
ResamplingTrigger.H
WarpXParticleContainer_fwd.H
Resampling::triggered
bool triggered(int timestep, amrex::Real global_numparts) const
A method that returns true if resampling should be done for the considered species at the considered ...
Definition
Resampling.cpp:36
Resampling::operator()
void operator()(const amrex::Geometry &geom_lev, WarpXParIter &pti, int lev, WarpXParticleContainer *pc) const
A method that uses the ResamplingAlgorithm object to perform resampling.
Definition
Resampling.cpp:41
Resampling::m_resampling_trigger
ResamplingTrigger m_resampling_trigger
Definition
Resampling.H:92
Resampling::Resampling
Resampling()=default
Default constructor of the Resampling class.
Resampling::m_resampling_algorithm
std::unique_ptr< ResamplingAlgorithm > m_resampling_algorithm
Definition
Resampling.H:93
ResamplingTrigger
This class is used to determine if resampling should be done at a given timestep for a given species....
Definition
ResamplingTrigger.H:24
WarpXParIter
Definition
WarpXParticleContainer.H:112
WarpXParticleContainer
Definition
WarpXParticleContainer.H:195
amrex::Geometry
amrex::Real
amrex_real Real
ResamplingAlgorithm::ResamplingAlgorithm
ResamplingAlgorithm(ResamplingAlgorithm const &)=default
ResamplingAlgorithm::ResamplingAlgorithm
ResamplingAlgorithm()=default
ResamplingAlgorithm::operator=
ResamplingAlgorithm & operator=(ResamplingAlgorithm const &)=default
ResamplingAlgorithm::~ResamplingAlgorithm
virtual ~ResamplingAlgorithm()=default
Virtual destructor of the abstract ResamplingAlgorithm class.
ResamplingAlgorithm::ResamplingAlgorithm
ResamplingAlgorithm(ResamplingAlgorithm &&)=default
ResamplingAlgorithm::operator()
virtual void operator()(const amrex::Geometry &, WarpXParIter &, int, WarpXParticleContainer *) const =0
Virtual operator() of the abstract ResamplingAlgorithm class.
Generated by
1.17.0