ergo
grid_test.cc File Reference

Tests the DFT grid generation. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <memory>
#include "dft_common.h"
#include "grid_reader.h"
#include "grid_stream.h"

Classes

class  MyMolInfo
 

Macros

#define NATOMS   2
 
#define N_BF_SHELLS   2
 
#define N_BFS   4
 

Functions

static bool pattern_to_ps (Dft::SparsePattern &p, const char *fName)
 
static bool grid_test_scaling (const char *fName)
 This routine tests the sparsity pattern generation scalability properties. More...
 
static void grid_test_synchronisation ()
 
int main (int argc, char *argv[])
 

Variables

struct {
   ergo_real   position [3]
 
   int   charge
 
Atoms []
 
static ergo_real ShellRadii [] = { 1, 2 }
 
static const MyMolInfo MolInfo
 

Detailed Description

Tests the DFT grid generation.

This test generates the grid, possibly several times to detect problems with eg. thread synchronisation.

Macro Definition Documentation

◆ N_BF_SHELLS

#define N_BF_SHELLS   2

◆ N_BFS

#define N_BFS   4

◆ NATOMS

#define NATOMS   2

Function Documentation

◆ grid_test_scaling()

static bool grid_test_scaling ( const char *  fName)
static

This routine tests the sparsity pattern generation scalability properties.

At some point in time, water boxes of increasing sizes had irregular sparse pattern. This test helps to debug such cases.

References BasisInfoStruct::addBasisfuncsForMolecule(), dft_get_num_threads(), ERGO_SPREFIX, grid_file_name, grid_stream_free(), grid_stream_generate(), grid_stream_new(), grid_stream_set_sparse_pattern(), Dft::GridParams::LMG, BasisInfoStruct::noOfBasisFuncs, BasisInfoStruct::noOfShells, pattern_to_ps(), BasisInfoStruct::permuteShells(), Dft::GridParams::radialGridScheme, Molecule::setFromMoleculeFile(), and setupShellMap().

Referenced by main().

◆ grid_test_synchronisation()

◆ main()

int main ( int  argc,
char *  argv[] 
)

◆ pattern_to_ps()

static bool pattern_to_ps ( Dft::SparsePattern &  p,
const char *  fName 
)
static

Referenced by grid_test_scaling().

Variable Documentation

◆ Atoms

const { ... } Atoms[]
Initial value:
= {
{ { 0, 0, 0 }, 1 },
{ { 0, 0, 1 }, 2 }
}

Referenced by MyMolInfo::getAtom(), and grid_test_synchronisation().

◆ charge

◆ MolInfo

const MyMolInfo MolInfo
static

◆ position

ergo_real position[3]

◆ ShellRadii

ergo_real ShellRadii[] = { 1, 2 }
static