Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/celeritas/em/data/UrbanMscData.hh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "corecel/data/Collection.hh"
#include "celeritas/Quantities.hh"
#include "celeritas/Types.hh"
#include "celeritas/grid/XsGridData.hh"
#include "celeritas/grid/XsGridData.hh" // IWYU pragma: keep

#include "CommonCoulombData.hh"

Expand All @@ -26,6 +26,8 @@ enum class UrbanParMatType
size_
};

using UrbanParMatId = OpaqueId<struct UrbanMscParMatData>;

//---------------------------------------------------------------------------//
/*!
* Settable parameters and default values for Urban multiple scattering.
Expand Down Expand Up @@ -124,8 +126,6 @@ struct UrbanMscMaterialData
*/
struct UrbanMscParMatData
{
using UrbanParMatId = OpaqueId<UrbanMscParMatData>;

real_type scaled_zeff{}; //!< a * Z^b
real_type d_over_r{}; //!< Maximum distance/range heuristic

Expand Down Expand Up @@ -164,7 +164,7 @@ struct UrbanMscData
//! Number of particle categories for particle and material-dependent data
ParticleId::size_type num_par_mat;
//! Map from particle ID to index in particle and material-dependent data
ParticleItems<UrbanMscParMatData::UrbanParMatId> pid_to_pmdata;
ParticleItems<UrbanParMatId> pid_to_pmdata;
//! Map from particle ID to index in cross sections
ParticleItems<MscParticleId> pid_to_xs;
//! Particle and material-dependent data
Expand Down
6 changes: 4 additions & 2 deletions src/celeritas/em/msc/UrbanMsc.hh
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ class UrbanMsc
inline CELER_FUNCTION void apply_step(CoreTrackView const&);

private:
ParamsRef const shared_;
// NOTE: copy by "value" (pointer addresses) since this is passed as a
// kernel argument
ParamsRef shared_;

// Whether the step was limited by geometry
static inline CELER_FUNCTION bool is_geo_limited(CoreTrackView const&);
Expand Down Expand Up @@ -81,7 +83,7 @@ UrbanMsc::is_applicable(CoreTrackView const& track, real_type step) const
return false;

auto par = track.particle();
if (!shared_.pid_to_xs[par.particle_id()])
if (!shared_.pid_to_xs[par.particle_id()].get())
return false;

return par.energy() > shared_.params.low_energy_limit
Expand Down
8 changes: 4 additions & 4 deletions src/celeritas/em/msc/detail/UrbanMscHelper.hh
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ CELER_FUNCTION auto UrbanMscHelper::calc_end_energy(real_type step) const
*/
CELER_FUNCTION UniformGridRecord const& UrbanMscHelper::xs() const
{
auto par_id = shared_.pid_to_xs[particle_.particle_id()];
auto par_id = shared_.pid_to_xs[particle_.particle_id()].get();
CELER_ASSERT(par_id < shared_.num_particles);

size_type idx = physics_.material_id().get() * shared_.num_particles
Expand All @@ -193,11 +193,11 @@ CELER_FUNCTION UniformGridRecord const& UrbanMscHelper::xs() const
*/
CELER_FUNCTION UrbanMscParMatData const& UrbanMscHelper::pmdata() const
{
auto par_id = shared_.pid_to_pmdata[particle_.particle_id()];
CELER_ASSERT(par_id < shared_.num_par_mat);
UrbanParMatId pm_id{shared_.pid_to_pmdata[particle_.particle_id()]};
CELER_ASSERT(pm_id < shared_.num_par_mat);

size_type idx = physics_.material_id().get() * shared_.num_par_mat
+ par_id.unchecked_get();
+ pm_id.unchecked_get();
CELER_ASSERT(idx < shared_.par_mat_data.size());

return shared_.par_mat_data[ItemId<UrbanMscParMatData>(idx)];
Expand Down
1 change: 0 additions & 1 deletion src/celeritas/em/params/UrbanMscParams.cc
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ UrbanMscParams::UrbanMscParams(ParticleParams const& particles,
VecImportMscModel const& mdata_vec)
{
using units::MevEnergy;
using UrbanParMatId = UrbanMscParMatData::UrbanParMatId;
using UPMT = UrbanParMatType;

ScopedMem record_mem("UrbanMscParams.construct");
Expand Down
4 changes: 2 additions & 2 deletions src/celeritas/global/CoreTrackView.hh
Original file line number Diff line number Diff line change
Expand Up @@ -418,14 +418,14 @@ CELER_FUNCTION AllVolumesView CoreTrackView::volumes() const
*/
CELER_FUNCTION CoreStateCounters& CoreTrackView::counters()
{
return *states_.init.counters.data().get();
return *states_.init.counters.data();
}

//---------------------------------------------------------------------------//
//! \cond
CELER_FUNCTION CoreStateCounters const& CoreTrackView::counters() const
{
return *states_.init.counters.data().get();
return *states_.init.counters.data();
}
//! \endcond

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ GridReflectivityExecutor::operator()(CoreTrackView const& track) const

if (action == ReflectivityAction::absorb)
{
if (auto e_grid_id = data.efficiency_ids[sub_model_id])
if (auto e_grid_id = data.efficiency_ids[sub_model_id].get())
{
// If absorbed and has efficiency grid, sample efficiency
auto const& e_grid = data.efficiency[e_grid_id];
Expand Down
2 changes: 0 additions & 2 deletions src/celeritas/track/SimData.hh
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
//---------------------------------------------------------------------------//
#pragma once

#include <vector>

#include "corecel/Macros.hh"
#include "corecel/Types.hh"
#include "corecel/data/Collection.hh"
Expand Down
15 changes: 14 additions & 1 deletion src/corecel/cont/LdgSpan.hh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

#include <cstddef>

#include "corecel/Types.hh"

#include "Span.hh"

#include "detail/LdgSpanImpl.hh"
Expand All @@ -26,6 +28,17 @@ namespace celeritas
template<class T, std::size_t Extent = dynamic_extent>
using LdgSpan = Span<detail::LdgWrapper<T>, Extent>;

//---------------------------------------------------------------------------//
/*!
* An LdgSpan when referencing compatible types, or Span otherwise.
*
* Note that T must be const.
*/
template<class T, std::size_t Extent = dynamic_extent>
using AutoLdgSpan = Span<
std::conditional_t<detail::is_ldg_supported_v<T>, detail::LdgWrapper<T>, T>,
Extent>;

//---------------------------------------------------------------------------//
/*!
* Construct an array from a fixed-size LdgSpan.
Expand All @@ -51,7 +64,7 @@ CELER_CONSTEXPR_FUNCTION auto to_array(Span<detail::LdgWrapper<T const>, N> s)
//! Convert an LdgSpan to a regular Span, \em not using \c ldg
template<class T, std::size_t N>
CELER_CONSTEXPR_FUNCTION Span<T const, N>
remove_ldg_wrapper(LdgSpan<T const, N> cont)
remove_ldg_wrapper(Span<detail::LdgWrapper<T const>, N> cont)
{
return {cont.data(), cont.size()};
}
Expand Down
Loading
Loading