Celeritas  0.5.0-56+6b053cd
Public Member Functions | List of all members
celeritas::CollectionMirror< P > Class Template Reference

Helper class for copying setup-time Collection groups to host and device. More...

#include <CollectionMirror.hh>

Inheritance diagram for celeritas::CollectionMirror< P >:
Inheritance graph
[legend]

Public Types

Type aliases
using HostValue = celeritas::HostVal< P >
 
using HostRef = celeritas::HostCRef< P >
 
using DeviceRef = celeritas::DeviceCRef< P >
 
- Public Types inherited from celeritas::ParamsDataInterface< P >
using HostRef = HostCRef< P >
 
using DeviceRef = DeviceCRef< P >
 

Public Member Functions

 CollectionMirror ()=default
 Default constructor leaves in an "unassigned" state.
 
 CollectionMirror (HostValue &&host)
 Construct with defaults.
 
 operator bool () const
 Whether the data is assigned.
 
HostRef const & host_ref () const final
 Access data on host.
 
DeviceRef const & device_ref () const final
 Access data on device.
 
- Public Member Functions inherited from celeritas::ParamsDataInterface< P >
template<MemSpace M>
P< Ownership::const_reference, M > const & ref () const
 Dispatch a "ref" call to host or device data.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::ParamsDataInterface< P >
 CELER_DEFAULT_COPY_MOVE (ParamsDataInterface)
 

Detailed Description

template<template< Ownership, MemSpace > class P>
class celeritas::CollectionMirror< P >

Helper class for copying setup-time Collection groups to host and device.

This should generally be an implementation detail of Params classes, which are constructed on host and must have the same data both on host and device. The template P must be a FooData class that:

On assignment, it will copy the data to the device if the GPU is enabled.

Example:

class FooParams
{
public:
using CollectionDeviceRef = FooData<Ownership::const_reference,
MemSpace::device>;
const CollectionDeviceRef& device_ref() const
{
return data_.device_ref();
}
private:
CollectionMirror<FooData> data_;
};
DeviceRef const & device_ref() const final
Access data on device.
Definition: CollectionMirror.hh:75

The documentation for this class was generated from the following file: