8#ifndef LINEAR_BREIT_WHEELER_INITIALIZE_MOMENTUM_H
9#define LINEAR_BREIT_WHEELER_INITIALIZE_MOMENTUM_H
25 using SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType;
30 using index_type = ParticleBins::index_type;
50 void LinearBreitWheelerInitializeMomentum (
51 const SoaData_type& soa1_in,
const SoaData_type& soa2_in,
52 SoaData_type& soa1_out, SoaData_type& soa2_out,
53 const index_type& idx1_in,
const index_type& idx2_in,
54 const index_type& idx1_out_start,
const index_type& idx2_out_start,
57 using namespace amrex::literals;
59 amrex::ParticleReal ux1_out = 0.0_prt, uy1_out = 0.0_prt, uz1_out = 0.0_prt;
60 amrex::ParticleReal ux2_out = 0.0_prt, uy2_out = 0.0_prt, uz2_out = 0.0_prt;
62 LinearBreitWheelerComputeProductMomenta(
69 ux1_out, uy1_out, uz1_out,
70 ux2_out, uy2_out, uz2_out,
75 soa1_out.m_rdata[
PIdx::ux][idx1_out_start] = ux1_out;
76 soa1_out.m_rdata[
PIdx::uy][idx1_out_start] = uy1_out;
77 soa1_out.m_rdata[
PIdx::uz][idx1_out_start] = uz1_out;
78 soa1_out.m_rdata[
PIdx::ux][idx1_out_start + 1] = ux1_out;
79 soa1_out.m_rdata[
PIdx::uy][idx1_out_start + 1] = uy1_out;
80 soa1_out.m_rdata[
PIdx::uz][idx1_out_start + 1] = uz1_out;
81 soa2_out.m_rdata[
PIdx::ux][idx2_out_start] = ux2_out;
82 soa2_out.m_rdata[
PIdx::uy][idx2_out_start] = uy2_out;
83 soa2_out.m_rdata[
PIdx::uz][idx2_out_start] = uz2_out;
84 soa2_out.m_rdata[
PIdx::ux][idx2_out_start + 1] = ux2_out;
85 soa2_out.m_rdata[
PIdx::uy][idx2_out_start + 1] = uy2_out;
86 soa2_out.m_rdata[
PIdx::uz][idx2_out_start + 1] = uz2_out;
#define AMREX_GPU_HOST_DEVICE
ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator > ParticleTileType
T_ParticleType ParticleType
typename WarpXParticleContainer::ParticleTileType ParticleTileType
Definition ParticleUtils.H:22
DenseBins< ParticleTileDataType > ParticleBins
Definition ParticleUtils.cpp:30
typename WarpXParticleContainer::ParticleType ParticleType
Definition ParticleUtils.cpp:29
typename ParticleTileType::ParticleTileDataType ParticleTileDataType
Definition ParticleUtils.H:23
@ uz
Definition WarpXParticleContainer.H:70
@ uy
Definition WarpXParticleContainer.H:70
@ ux
Definition WarpXParticleContainer.H:70