JDFTx  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ColumnBundle Class Reference

Wavefunction data structure. More...

#include <ColumnBundle.h>

Inheritance diagram for ColumnBundle:
ManagedMemory< complex > ManagedMemoryBase

Public Member Functions

int nCols () const
 number of columns accessor
 
size_t colLength () const
 column length accessor
 
 operator bool () const
 Test nullness of ColumnBundle.
 
size_t index (int i, size_t j) const
 Index of the i'th column j'th point into the data array.
 
bool isSpinor () const
 
int spinorLength () const
 
void init (int nc, size_t len, const Basis *b, const QuantumNumber *q, bool onGpu=false)
 constructor helper
 
void free ()
 Force cleanup.
 
 ColumnBundle (int nc=0, size_t len=0, const Basis *b=NULL, const QuantumNumber *q=NULL, bool onGpu=false)
 
 ColumnBundle (const ColumnBundle &)
 copy constructor
 
 ColumnBundle (ColumnBundle &&)
 move constructor
 
ColumnBundle similar (int ncOverride=-1) const
 
ColumnBundleoperator= (const ColumnBundle &)
 copy-assignment
 
ColumnBundleoperator= (ColumnBundle &&)
 move-assignment
 
ColumnBundle getSub (int colStart, int colStop) const
 get a range of columns as a ColumnBundle
 
void setSub (int colStart, const ColumnBundle &)
 set columns (starting at colStart) from a ColumnBundle, ignoring columns that would go beyond nCols()
 
complexScalarFieldTilde getColumn (int i, int s) const
 Expand the i'th column and s'th spinor component from reduced to full G-space.
 
void setColumn (int i, int s, const complexScalarFieldTilde &)
 Redeuce a full G-space vector and store it as the i'th column and s'th spinor component.
 
void accumColumn (int i, int s, const complexScalarFieldTilde &)
 Redeuce a full G-space vector and accumulate onto the i'th column and s'th spinor component.
 
void randomize (int colStart, int colStop)
 randomize a selected range of columns
 
- Public Member Functions inherited from ManagedMemory< complex >
complexdata ()
 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 complexdata () 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.
 
complexdataGpu ()
 Get a GPU data pointer (must be called from GPU owner thread)
 
const complexdataGpu () 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)
 
complexbegin ()
 pointer to start of array
 
const complexbegin () const
 const pointer to start of array
 
const complexcbegin () const
 const pointer to start of array
 
complexend ()
 pointer just past end of array
 
const complexend () const
 const pointer just past end of array
 
const complexcend () const
 const pointer just past end of array
 
complexdataPref ()
 
const complexdataPref () const
 
void send (int dest, int tag=0) const
 send to another process
 
void recv (int src, int tag=0)
 receive from another process
 
void bcast (int root=0)
 synchronize across processes (using value on specified root process)
 
void allReduce (MPIUtil::ReduceOp op, bool safeMode=false)
 apply all-to-all reduction (see MPIUtil::allReduce)
 
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
 

Public Attributes

const QuantumNumberqnum
 
const Basisbasis
 

Additional Inherited Members

- Protected Member Functions inherited from ManagedMemory< complex >
 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< complex > &&)
 Steal the other object's data (used for move constructors/assignment)
 

Detailed Description

Wavefunction data structure.

Member Function Documentation

ColumnBundle ColumnBundle::similar ( int  ncOverride = -1) const

Create a column bundle like this (without copying data) optionally with different number of columns (if ncOverride>=0)


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