#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 |
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 __CVERSION__ |
#define _BSD_SOURCE 1 |
#define _XOPEN_SOURCE 500 |
#define _XOPEN_SOURCE_EXTENDED 1 |
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 | ) |
void dftpot0_ | ( | FirstDrv * | ds, | |
const real * | weight, | |||
const FunDensProp * | dp | |||
) |
void dftpot1_ | ( | SecondDrv * | ds, | |
const real * | w, | |||
const FunDensProp * | dp, | |||
const int * | triplet | |||
) |
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.
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. |
real dft_hf_weight = 0.0 [static] |
int dft_thread_count = -1 [static] |
int(*) fort_print(const char *format,...) = printf |
int FOURI = 4 |
const ergo_real GET_BLOCKS_FUDGE_FACTOR = 1.0 [static] |
int ONEI = 1 |
const ergo_real SET_SHELL_RADII_ORBITAL_THR = 1e-11 [static] |
int THREEI = 3 |
int ZEROI = 0 |