dft_common.cc File Reference

Common DFT routines. More...

#include <ctype.h>
#include <cmath>
#include <pthread.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <list>
#include <map>
#include "dft_common.h"
#include "functionals.h"
#include "grid_atomic.h"
#include "output.h"
#include "barrier.h"

Classes

class  ShellTree
 Class that allows to find in NLogN time all shells that overlap with a given box. More...
struct  Ball

Defines

#define _XOPEN_SOURCE   500
#define _XOPEN_SOURCE_EXTENDED   1
#define _BSD_SOURCE   1
#define __CVERSION__

Functions

void * dal_malloc_ (size_t sz, const char *place, unsigned line)
int sync_threads (bool release, int nThreads)
 creates or destroys a barrier for nThreads.
static void dft_set_hf_weight (real w)
static real dft_get_hf_weight (void)
static int ergo_fort_print (const char *format,...)
EXTERN_C void dft_init (void)
EXTERN_C int dft_get_num_threads (void)
EXTERN_C void dft_set_num_threads (int nThreads)
int dft_setfunc (const char *line)
static ergo_real distance (const ergo_real *a, const ergo_real *b)
 Coomputes distance between two points, they do not need to be of the Vector3D type.
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.
real dftene_ (const real *rho, const real *grad)
void dftptf0_ (real *rho, real *grad, real *wght, real *vx)
void dftpot0_ (FirstDrv *ds, const real *weight, const FunDensProp *dp)
void dftpot1_ (SecondDrv *ds, const real *w, const FunDensProp *dp, const int *triplet)

Variables

int ZEROI = 0
int ONEI = 1
int THREEI = 3
int FOURI = 4
real ZEROR = 0.0
real ONER = 1.0
real TWOR = 2.0
real FOURR = 4.0
static const ergo_real GET_BLOCKS_FUDGE_FACTOR = 1.0
static const ergo_real SET_SHELL_RADII_ORBITAL_THR = 1e-11
static real dft_hf_weight = 0.0
int(*) fort_print (const char *format,...) = printf
static int dft_thread_count = -1


Detailed Description

Common DFT routines.

Mostly functional mixing.

(c) Pawel Salek, pawsa@theochem.kth.se, 2001-08-02 NOTES: Adding new functionals: a. use fun-slater.c as template. b. add 'extern Functional MyFunctional;' to functionals.h c. add '&MyFunctional' to available_functionals below. d. have a beer. Or some crackers, if you prefer.


Define Documentation

#define __CVERSION__

#define _BSD_SOURCE   1

#define _XOPEN_SOURCE   500

#define _XOPEN_SOURCE_EXTENDED   1


Function Documentation

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

static real dft_get_hf_weight ( void   )  [static]

EXTERN_C int dft_get_num_threads ( void   ) 

EXTERN_C void dft_init ( void   ) 

static void dft_set_hf_weight ( real  w  )  [static]

EXTERN_C void dft_set_num_threads ( int  nThreads  ) 

int dft_setfunc ( const char *  line  ) 

real dftene_ ( const real rho,
const real grad 
)

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

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

void dftptf0_ ( real rho,
real grad,
real wght,
real vx 
)

static ergo_real distance ( const ergo_real a,
const ergo_real b 
) [inline, static]

Coomputes distance between two points, they do not need to be of the Vector3D type.

In a way, we lose here some error checking. Perhaps it should be avoided.

static int ergo_fort_print ( const char *  format,
  ... 
) [static]

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.

int sync_threads ( bool  release,
int  nThreads 
)

creates or destroys a barrier for nThreads.

Parameters:
release tells whether we are to destroy the barrier (true) or just sync (false).
nThreads informs the code how many threads are supposed to block on the barrier.


Variable Documentation

real dft_hf_weight = 0.0 [static]

int dft_thread_count = -1 [static]

int(*) fort_print(const char *format,...) = printf

int FOURI = 4

real FOURR = 4.0

const ergo_real GET_BLOCKS_FUDGE_FACTOR = 1.0 [static]

int ONEI = 1

real ONER = 1.0

const ergo_real SET_SHELL_RADII_ORBITAL_THR = 1e-11 [static]

int THREEI = 3

real TWOR = 2.0

int ZEROI = 0

real ZEROR = 0.0


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