JDFTx  1.7.0
ManagedMemory< T > Class Template Reference

Base class for managed memory of a specified data type. More...

#include <ManagedMemory.h>

Inheritance diagram for ManagedMemory< T >:
ManagedMemoryBase ManagedArray< symmetricMatrix3<> > ManagedArray< matrix3<> > ManagedArray< size_t > ManagedArray< vector3<> > ManagedArray< uint64_t > FieldData< T > ManagedArray< T >

Public Member Functions

T * data ()
 Return a pointer to the actual data Return a CPU pointer to the actual data, will move data from GPU to CPU if necessary In GPU mode, care must be taken when calling this from multiple cpu threads Only the "GPU Owner" thread may call this when the data is actually on the GPU. Ideally call once from main thread to get data onto the cpu before launching other cpu threads.
 
const T * data () const
 Return a const pointer to the actual data Return a CPU pointer to the actual data, will move data from GPU to CPU if necessary In GPU mode, care must be taken when calling this from multiple cpu threads Only the "GPU Owner" thread may call this when the data is actually on the GPU. Ideally call once from main thread to get data onto the cpu before launching other cpu threads.
 
T * dataGpu ()
 Get a GPU data pointer (must be called from GPU owner thread)
 
const T * dataGpu () const
 Get a const GPU data pointer (must be called from GPU owner thread)
 
size_t nData () const
 number of data points
 
bool isOnGpu () const
 Check where the data is (for #ifdef simplicity exposed even when no GPU_ENABLED)
 
T * begin ()
 pointer to start of array
 
const T * begin () const
 const pointer to start of array
 
const T * cbegin () const
 const pointer to start of array
 
T * end ()
 pointer just past end of array
 
const T * end () const
 const pointer just past end of array
 
const T * cend () const
 const pointer just past end of array
 
T * dataPref ()
 
const T * dataPref () const
 
void read (const char *fname)
 binary read from a file
 
void read (FILE *filep)
 binary read from a stream
 
void write (const char *fname) const
 binary-write to a file
 
void write (FILE *filep) const
 binary-write toa stream
 
void read_real (const char *fname)
 binary read real-part from file, setting imaginary parts to 0
 
void read_real (FILE *filep)
 binary read real-part from stream, setting imaginary parts to 0
 
void write_real (const char *fname) const
 binary write real-parts to file
 
void write_real (FILE *filep) const
 binary write real-parts to stream
 
void dump (const char *fname, bool realPartOnly) const
 write as complex or real-part alone and report discarded imaginary part, if any
 
void zero ()
 set all elements to zero
 

Protected Member Functions

 ManagedMemory ()
 Initialize a valid state, but don't allocate anything.
 
void memFree ()
 Free memory.
 
void memInit (string category, size_t nElem, bool onGpu=false)
 Allocate memory.
 
void memMove (ManagedMemory< T > &&)
 Steal the other object's data (used for move constructors/assignment)
 

Detailed Description

template<typename T>
class ManagedMemory< T >

Base class for managed memory of a specified data type.


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