ergo
dft_common.h File Reference

Common DFT routines. More...

#include <stdlib.h>
#include <vector>
#include "realtype.h"
#include "basisinfo.h"
#include "matrix_typedefs.h"
#include "functionals.h"
#include "grid_atomic.h"

Go to the source code of this file.

Classes

struct  FirstDrv
 A vector of first order derivatives with respect to two parameters: density rho and SQUARE of the gradient of density grho. More...
 
struct  SecondDrv
 
class  ErgoMolInfo
 Ergo specific implementation of molecule-grid interface. More...
 
class  Box
 Class Box provides an ability to determine box containing all Objects. More...
 

Macros

#define EXTERN_C
 
#define dal_new(sz, tp)   (tp*)dal_malloc_((sz)*sizeof(tp),__FUNCTION__, __LINE__)
 
#define dal_malloc(sz)   dal_malloc_((sz),__FUNCTION__, __LINE__)
 

Functions

EXTERN_C void dftpot0_ (FirstDrv *ds, const real *weight, const FunDensProp *dp)
 
EXTERN_C void dftpot1_ (SecondDrv *ds, const real *w, const FunDensProp *dp, const int *triplet)
 
EXTERN_C void dft_init (void)
 
EXTERN_C int dft_setfunc (const char *line)
 
EXTERN_C void ergoShellsToOrbs (const int *nshlbl, const int(*shlblock)[2], int *norbbl, int(*orbblock)[2], const BasisInfoStruct &bis)
 transform shell block indices to orbital block indices. More...
 
EXTERN_C int dft_get_num_threads ()
 
EXTERN_C void dft_set_num_threads (int nThreads)
 
void * dal_malloc_ (size_t sz, const char *func, unsigned line)
 
template<typename Iterator >
void getBoundingBox (Box &box, Iterator start, Iterator end)
 
int sync_threads (bool release, int nThreads)
 creates or destroys a barrier for nThreads. More...
 

Variables

int ZEROI
 
int ONEI
 
int THREEI
 
int FOURI
 
real ZEROR
 
real ONER
 
real TWOR
 
real FOURR
 

Detailed Description

Common DFT routines.

Mostly functional mixing.

Author
: Pawel Salek responsible

Macro Definition Documentation

◆ dal_malloc

#define dal_malloc (   sz)    dal_malloc_((sz),__FUNCTION__, __LINE__)

Referenced by dft_integrator_bl_new().

◆ dal_new

#define dal_new (   sz,
  tp 
)    (tp*)dal_malloc_((sz)*sizeof(tp),__FUNCTION__, __LINE__)

◆ EXTERN_C

#define EXTERN_C

Function Documentation

◆ dal_malloc_()

void* dal_malloc_ ( size_t  sz,
const char *  func,
unsigned  line 
)

References malloc().

◆ dft_get_num_threads()

◆ dft_init()

EXTERN_C void dft_init ( void  )

References ergo_fort_print(), fort_print, and fun_printf.

Referenced by main(), test_mol(), and test_small().

◆ dft_set_num_threads()

EXTERN_C void dft_set_num_threads ( int  nThreads)

References dft_thread_count.

Referenced by es_set_nthreads().

◆ dft_setfunc()

◆ dftpot0_()

◆ dftpot1_()

◆ ergoShellsToOrbs()

EXTERN_C void ergoShellsToOrbs ( const int *  nshlbl,
const int(*)  shlblock[2],
int *  norbbl,
int(*)  orbblock[2],
const BasisInfoStruct bis 
)

transform shell block indices to orbital block indices.

IORIDX contains preprocessed information about where given shell begins and ends in given symmetry.

References ShellSpecStruct::noOfBasisFuncs, BasisInfoStruct::shellList, and ShellSpecStruct::startIndexInMatrix.

Referenced by SparsePattern::add(), compute_grid_thread_func(), and dft_integrate().

◆ getBoundingBox()

template<typename Iterator >
void getBoundingBox ( Box box,
Iterator  start,
Iterator  end 
)

References Box::hi, and Box::lo.

Referenced by Stream::saveToFile(), and ShellTree::ShellTree().

◆ sync_threads()

int sync_threads ( bool  release,
int  nThreads 
)

creates or destroys a barrier for nThreads.

Parameters
releasetells whether we are to destroy the barrier (true) or just sync (false).
nThreadsinforms the code how many threads are supposed to block on the barrier.

References ergo_barrier_destroy(), ergo_barrier_init(), ergo_barrier_wait(), and PTHREAD_BARRIER_SERIAL_THREAD.

Referenced by dft_integrate(), XCEvaluatorRestricted::getXC(), and XCEvaluatorUnrestricted::getXC().

Variable Documentation

◆ FOURI

int FOURI

◆ FOURR

real FOURR

◆ ONEI

int ONEI

Referenced by dft_get_uxc(), and dft_get_xc().

◆ ONER

◆ THREEI

int THREEI

◆ TWOR

real TWOR

◆ ZEROI

int ZEROI

◆ ZEROR

real ZEROR