grid_stream.cc File Reference

This is a streaming version of the linearly-scaling grid generator. More...

#include <cmath>
#include <stdio.h>
#include <assert.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include "dft_common.h"
#include "grid_stream.h"
#include "grid_atomic.h"
#include "lebedev_laikov.h"
#include "molecule.h"
#include "output.h"
#include "realtype.h"
#include "utilities.h"
#include "sparse_matrix.h"

Classes

class  RadialGrid
 A grid describing a radial grid for an atom with a specific charge. More...
class  AtomicGrid
class  BoxPartitioner
 "Block" partitioning is the only one implemented now. More...
class  ActiveBfShells
 A class that is able to quickly determine the active shells that overlap with given box in space. More...
struct  StreamSaveContext
 Saves the grid saving context. More...
class  Stream
 Streamlined, abstract grid generation class. More...
struct  ThreadInfo
class  ErgoGridStream
 Ergo-specific GridStream implementation. More...

Typedefs

typedef ergo_real real

Functions

ErgoGridStreamgrid_stream_new (const struct Dft::GridParams &gss, const GridGenMolInfo &molInfo)
 Creates the grid object.
void grid_stream_set_sparse_pattern (ErgoGridStream *stream, Dft::SparsePattern *pattern)
unsigned grid_stream_generate (ErgoGridStream *stream, const char *fname, int noOfThreads)
 Generate grid for given molecule.
void grid_stream_free (ErgoGridStream *stream)

Variables

static const real WEIGHT_THRESHOLD = 1e-15
 Ignore all grid points that partitioning scales down by more than WEIGHT_THRESHOLD.


Detailed Description

This is a streaming version of the linearly-scaling grid generator.

The grid is generated on the fly, without the in-memory sort phase. The disk format is shared with the ordinary grid. The separation of the ordinary grid data (coordinates, weights) from the auxiliary data (lists of active orbitals) is taken into account so that grid can be used for integration in the auxiliary basis.


Typedef Documentation

typedef ergo_real real


Function Documentation

void grid_stream_free ( ErgoGridStream stream  ) 

unsigned grid_stream_generate ( ErgoGridStream stream,
const char *  fname,
int  noOfThreads 
)

Generate grid for given molecule.

Parameters:
stream The grid object.
fname The file name the grid is to be saved to.
noOfThreads the number of threads that are supposed to be created and used for the grid generation.

ErgoGridStream* grid_stream_new ( const struct Dft::GridParams gss,
const GridGenMolInfo molInfo 
)

Creates the grid object.

The Settings object must have longer lifetime than the grid itself - its content is not copied.

void grid_stream_set_sparse_pattern ( ErgoGridStream stream,
Dft::SparsePattern *  pattern 
)


Variable Documentation

const real WEIGHT_THRESHOLD = 1e-15 [static]

Ignore all grid points that partitioning scales down by more than WEIGHT_THRESHOLD.


Generated on Wed Nov 21 09:32:39 2012 for ergo by  doxygen 1.4.7