StatMech
Loading...
Searching...
No Matches
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > > Class Template Reference
Inheritance diagram for ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >:
Inheritance graph
Collaboration diagram for ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >:
Collaboration graph

Public Types

using Object_t = mBodyOperatorSpace< Scalar_ >
 
using Base = ObjectOnGPU< ManyBodySpaceBase< mBodyOperatorSpace< Scalar_ > > >
 

Public Member Functions

 ObjectOnGPU (Object_t const &hSpace)
 Construct a ObjectOnGPU<ManyBodyOperatorSpaceBase<Derived>> object from a Derived object on host side.
 
 ObjectOnGPU ()=default
 Default constructor.
 
 ObjectOnGPU (ObjectOnGPU const &)=delete
 Copy constructor.
 
 ObjectOnGPU (ObjectOnGPU &&)=default
 Move constructor.
 
 ~ObjectOnGPU ()=default
 Destructor.
 
Operator overloads
ObjectOnGPUoperator= (ObjectOnGPU const &other)=delete
 Copy assignment operator.
 
ObjectOnGPUoperator= (ObjectOnGPU &&other)
 Move assignment operator.
 
size_t dim () const
 
size_t baseDim () const
 
- Public Member Functions inherited from ObjectOnGPU< ManyBodySpaceBase< mBodyOperatorSpace< Scalar_ > > >
ObjectOnGPUoperator= (ObjectOnGPU const &other)=delete
 
ObjectOnGPUoperator= (ObjectOnGPU &&other)=delete
 
- Public Member Functions inherited from ObjectOnGPU_Base< T >
template<class... Args>
 ObjectOnGPU_Base (Args... args)
 Default constructor for ObjectOnGPU_Base object.
 
 ObjectOnGPU_Base (ObjectOnGPU_Base const &other)=delete
 Default constructor.
 
 ObjectOnGPU_Base (ObjectOnGPU_Base &&other)
 Move constructor for ObjectOnGPU_Base object.
 
 ~ObjectOnGPU_Base ()
 Destructor.
 
ObjectOnGPU_Baseoperator= (ObjectOnGPU_Base const &other)=delete
 Copy assignment operator (yet to be implmented)
 
ObjectOnGPU_Baseoperator= (ObjectOnGPU_Base &&other)
 Move assignment operator.
 
 operator Object_t * () const
 
Object_tptr () const
 
Object_t const * const_ptr () const
 

Additional Inherited Members

- Static Public Attributes inherited from ObjectOnGPU_Base< T >
static constexpr bool on_GPU = true
 
- Protected Types inherited from ObjectOnGPU_Base< T >
using Object_t = T
 
- Protected Attributes inherited from ObjectOnGPU_Base< T >
T * m_ptr = nullptr
 
T ** m_ptrptr = nullptr
 

Member Typedef Documentation

◆ Base

template<typename Scalar_ >
using ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::Base = ObjectOnGPU< ManyBodySpaceBase<mBodyOperatorSpace<Scalar_> > >

◆ Object_t

template<typename Scalar_ >
using ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::Object_t = mBodyOperatorSpace<Scalar_>

Constructor & Destructor Documentation

◆ ObjectOnGPU() [1/4]

template<typename Scalar_ >
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::ObjectOnGPU ( Object_t const &  hSpace)
inline

Construct a ObjectOnGPU<ManyBodyOperatorSpaceBase<Derived>> object from a Derived object on host side.

Parameters
hObjectobject on host side
19 : Base(hSpace, hSpace.m(), hSpace.baseSpace().sysSize(), hSpace.baseSpace().dimLoc()) {
20 debug_constructor_printf(1);
21 }
ObjectOnGPU< ManyBodySpaceBase< mBodyOperatorSpace< Scalar_ > > > Base
Definition ManyBodyOperatorSpaceBase.cuh:11

◆ ObjectOnGPU() [2/4]

template<typename Scalar_ >
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::ObjectOnGPU ( )
default

Default constructor.

◆ ObjectOnGPU() [3/4]

template<typename Scalar_ >
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::ObjectOnGPU ( ObjectOnGPU< mBodyOperatorSpace< Scalar_ > > const &  )
delete

Copy constructor.

◆ ObjectOnGPU() [4/4]

template<typename Scalar_ >
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::ObjectOnGPU ( ObjectOnGPU< mBodyOperatorSpace< Scalar_ > > &&  )
default

Move constructor.

◆ ~ObjectOnGPU()

template<typename Scalar_ >
ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::~ObjectOnGPU ( )
default

Destructor.

Member Function Documentation

◆ baseDim()

template<typename Scalar_ >
size_t ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::baseDim
89 {
90 thrust::device_vector<size_t> dRes(1);
91 mBodyOperatorSpace_baseDim_kernel<<<1, 1>>>(thrust::raw_pointer_cast(dRes.data()), this->ptr());
92 cuCHECK(cudaDeviceSynchronize());
93 return dRes[0];
94}
Object_t * ptr() const
Definition ObjectOnGPU.cuh:144
cuCHECK(cudaFuncGetAttributes(&attr, MatrixElementsInSector))

◆ dim()

template<typename Scalar_ >
size_t ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::dim
76 {
77 thrust::device_vector<size_t> dRes(1);
78 mBodyOperatorSpace_dim_kernel<<<1, 1>>>(thrust::raw_pointer_cast(dRes.data()), this->ptr());
79 cuCHECK(cudaDeviceSynchronize());
80 return dRes[0];
81}

◆ operator=() [1/2]

template<typename Scalar_ >
ObjectOnGPU & ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::operator= ( ObjectOnGPU< mBodyOperatorSpace< Scalar_ > > &&  other)
inline

Move assignment operator.

Parameters
other
Returns
*this
59 {
60 debug_printf("%s:\n\tMove assignment operator\n\n", __PRETTY_FUNCTION__);
61 Base::operator=(std::move(other));
62 return *this;
63 }
ObjectOnGPU & operator=(ObjectOnGPU const &other)=delete

◆ operator=() [2/2]

template<typename Scalar_ >
ObjectOnGPU & ObjectOnGPU< mBodyOperatorSpace< Scalar_ > >::operator= ( ObjectOnGPU< mBodyOperatorSpace< Scalar_ > > const &  other)
delete

Copy assignment operator.

Parameters
other
Returns
*this

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