ImpactX
None.H
Go to the documentation of this file.
1 /* Copyright 2022-2023 The Regents of the University of California, through Lawrence
2  * Berkeley National Laboratory (subject to receipt of any required
3  * approvals from the U.S. Dept. of Energy). All rights reserved.
4  *
5  * This file is part of ImpactX.
6  *
7  * Authors: Axel Huebl
8  * License: BSD-3-Clause-LBNL
9  */
10 #ifndef IMPACTX_NONE_H
11 #define IMPACTX_NONE_H
12 
14 
15 #include <AMReX_Extension.H>
16 #include <AMReX_REAL.H>
17 
18 
19 namespace impactx
20 {
21  struct None
22  {
23  static constexpr auto name = "None";
25 
28  None ()
29  {
30  }
31 
42  [[maybe_unused]] PType& AMREX_RESTRICT p,
43  [[maybe_unused]] amrex::ParticleReal & AMREX_RESTRICT px,
44  [[maybe_unused]] amrex::ParticleReal & AMREX_RESTRICT py,
45  [[maybe_unused]] amrex::ParticleReal & AMREX_RESTRICT pt,
46  [[maybe_unused]] RefPart const & refpart) const
47  {
48  // nothing to do
49  }
50 
56  void operator() ([[maybe_unused]] RefPart & AMREX_RESTRICT refpart) const {
57 
58  // nothing to do: this is a zero-length element
59 
60  }
61 
67  int nslice () const
68  {
69  return 1;
70  }
71 
77  amrex::ParticleReal ds () const
78  {
79  using namespace amrex::literals;
80  return 0.0_prt;
81  }
82  };
83 
84 } // namespace impactx
85 
86 #endif // IMPACTX_NONE_H
Definition: ImpactX.cpp:31
Definition: None.H:21
#define AMREX_FORCE_INLINE
None()
Definition: None.H:28
#define AMREX_GPU_HOST_DEVICE
Definition: ReferenceParticle.H:29
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()([[maybe_unused]] PType &AMREX_RESTRICT p, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT px, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT py, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] RefPart const &refpart) const
Definition: None.H:41
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int nslice() const
Definition: None.H:67
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal ds() const
Definition: None.H:77
static constexpr auto name
Definition: None.H:23