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)
 
#define dal_malloc(sz)
 

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.
 
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.
 

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)
Value:
dal_malloc_((sz),__FUNCTION__, __LINE__)
void * dal_malloc_(size_t sz, const char *func, unsigned line)
Definition dft_common.cc:68

Referenced by dft_integrator_bl_new().

◆ dal_new

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

Referenced by dft_integrate(), dft_integrator_bl_new(), dft_lin_respao(), and grid_open_full().

◆ EXTERN_C

#define EXTERN_C

Function Documentation

◆ dal_malloc_()

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

◆ dft_get_num_threads()

◆ dft_init()

EXTERN_C void dft_init ( void )

◆ dft_set_num_threads()

EXTERN_C void dft_set_num_threads ( int nThreads)

References dft_thread_count.

Referenced by es_set_nthreads().

◆ dft_setfunc()

EXTERN_C int dft_setfunc ( const char * line)

◆ dftpot0_()

EXTERN_C void dftpot0_ ( FirstDrv * ds,
const real * weight,
const FunDensProp * dp )

◆ dftpot1_()

EXTERN_C void dftpot1_ ( SecondDrv * ds,
const real * w,
const FunDensProp * dp,
const int * triplet )

◆ 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

◆ ONER

real ONER

◆ THREEI

int THREEI

◆ TWOR

real TWOR

◆ ZEROI

int ZEROI
extern

◆ ZEROR

real ZEROR
extern