ImpactX
Toggle main menu visibility
Loading...
Searching...
No Matches
src
elements
Empty.H
Go to the documentation of this file.
1
/* Copyright 2022-2026 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_ELEMENT_EMPTY_H
11
#define IMPACTX_ELEMENT_EMPTY_H
12
13
#include "
particles/ImpactXParticleContainer.H
"
14
#include "
mixin/thin.H
"
15
#include "
mixin/lineartransport.H
"
16
#include "
mixin/named.H
"
17
#include "
mixin/nofinalize.H
"
18
19
#include <
AMReX_Extension.H
>
20
#include <
AMReX_REAL.H
>
21
#include <
AMReX_SIMD.H
>
22
23
#include <optional>
24
25
namespace
impactx::elements
26
{
27
struct
Empty
28
:
public
mixin::Named
,
29
public
mixin::Thin
,
30
public
mixin::LinearTransport
<Empty>,
31
public
mixin::NoFinalize
,
32
public
amrex::simd::Vectorized
<amrex::simd::native_simd_size_particlereal>
33
{
34
static
constexpr
auto
type
=
"None"
;
35
using
PType
=
ImpactXParticleContainer::ParticleType
;
36
39
Empty
()
40
:
Named
(std::nullopt)
41
{
42
}
43
45
void
reverse
() { }
46
48
void
operator()
(
49
ImpactXParticleContainer
&
/* pc */
,
50
int
/* step */
,
51
int
/* period */
52
) {
53
// nothing to do
54
}
55
57
void
compute_constants
(
RefPart
const
&
/* refpart */
)
58
{
59
// nothing to do
60
}
61
63
void
operator()
(
64
ImpactXParticleContainer::iterator
&
/* pti */
,
65
RefPart
&
AMREX_RESTRICT
/* ref_part */
66
) {
67
// nothing to do
68
}
69
74
AMREX_GPU_HOST_DEVICE
AMREX_FORCE_INLINE
75
void
operator()
([[maybe_unused]]
RefPart
&
AMREX_RESTRICT
refpart)
const
76
{
77
// nothing to do
78
}
79
85
AMREX_GPU_HOST
AMREX_FORCE_INLINE
86
Map6x6
87
transport_map
([[maybe_unused]]
RefPart
const
&
AMREX_RESTRICT
refpart)
const
88
{
89
// nothing to do
90
return
Map6x6::Identity
();
91
}
92
104
template
<
typename
T_Real=amrex::ParticleReal,
typename
T_IdCpu=u
int
64_t>
105
AMREX_GPU_HOST_DEVICE
AMREX_FORCE_INLINE
106
void
operator()
(
107
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
x,
108
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
y,
109
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
t
,
110
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
px,
111
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
py,
112
[[maybe_unused]] T_Real
const
&
AMREX_RESTRICT
pt,
113
[[maybe_unused]] T_IdCpu
const
&
AMREX_RESTRICT
idcpu,
114
[[maybe_unused]]
RefPart
const
&
AMREX_RESTRICT
refpart
115
)
const
116
{
117
// nothing to do
118
}
119
121
using
Thin::operator();
122
124
using
LinearTransport::operator();
125
};
126
127
}
// namespace impactx
128
129
#endif
// IMPACTX_ELEMENT_EMPTY_H
AMReX_Extension.H
AMREX_FORCE_INLINE
#define AMREX_FORCE_INLINE
AMREX_RESTRICT
#define AMREX_RESTRICT
AMREX_GPU_HOST_DEVICE
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST
#define AMREX_GPU_HOST
AMReX_REAL.H
AMReX_SIMD.H
ImpactXParticleContainer.H
amrex::ParticleContainer_impl< SoAParticle< T_NArrayReal, T_NArrayInt >, T_NArrayReal, T_NArrayInt, Allocator, CellAssignor >::ParticleType
T_ParticleType ParticleType
impactx::ImpactXParticleContainer
Definition
ImpactXParticleContainer.H:136
impactx::ImpactXParticleContainer::iterator
impactx::ParIterSoA iterator
amrex iterator for particle boxes
Definition
ImpactXParticleContainer.H:139
lineartransport.H
named.H
impactx::elements
Definition
All.H:55
impactx::CoordSystem::t
@ t
fixed t as the independent variable
Definition
ImpactXParticleContainer.H:38
impactx::Map6x6
amrex::SmallMatrix< amrex::ParticleReal, 6, 6, amrex::Order::F, 1 > Map6x6
Definition
CovarianceMatrix.H:20
nofinalize.H
amrex::SmallMatrix< amrex::ParticleReal, 6, 6, amrex::Order::F, 1 >::Identity
static constexpr __host__ __device__ SmallMatrix< T, NRows, NCols, ORDER, StartIndex > Identity() noexcept
amrex::simd::Vectorized
impactx::RefPart
Definition
ReferenceParticle.H:33
impactx::elements::Empty::reverse
void reverse()
Definition
Empty.H:45
impactx::elements::Empty::compute_constants
void compute_constants(RefPart const &)
Definition
Empty.H:57
impactx::elements::Empty::operator()
void operator()(ImpactXParticleContainer &, int, int)
Definition
Empty.H:48
impactx::elements::Empty::type
static constexpr auto type
Definition
Empty.H:34
impactx::elements::Empty::transport_map
AMREX_GPU_HOST AMREX_FORCE_INLINE Map6x6 transport_map(RefPart const &AMREX_RESTRICT refpart) const
Definition
Empty.H:87
impactx::elements::Empty::PType
ImpactXParticleContainer::ParticleType PType
Definition
Empty.H:35
impactx::elements::Empty::Empty
Empty()
Definition
Empty.H:39
impactx::elements::mixin::LinearTransport
Definition
lineartransport.H:50
impactx::elements::mixin::Named
Definition
named.H:29
impactx::elements::mixin::Named::Named
AMREX_GPU_HOST Named(std::optional< std::string > name)
Definition
named.H:59
impactx::elements::mixin::NoFinalize
Definition
nofinalize.H:22
impactx::elements::mixin::Thin
Definition
thin.H:24
thin.H
Generated by
1.17.0