Blocked DFT Linear Response contribution evaluator. More...
#include "config.h"
#include <stdio.h>
#include <cmath>
#include <string.h>
#include <time.h>
#include <sys/times.h>
#include <unistd.h>
#include <pthread.h>
#include "aos.h"
#include "dft_common.h"
#include "functionals.h"
#include "integrator.h"
#include "output.h"
#include "grid_matrix.h"
#include "rho-mat.h"
#include "utilities.h"
Classes | |
struct | LinRespBlData |
struct | LinData |
Defines | |
#define | _XOPEN_SOURCE 500 |
#define | _XOPEN_SOURCE_EXTENDED 1 |
Functions | |
int | min (int a, int b) |
static void | lin_resp_cb_b_lda (DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, LinRespBlData *data) |
static void | lin_resp_cb_b_gga (DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, LinRespBlData *data) |
EXTERN_C real | dft_lin_respao (const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, const real *dens, const real *vec, real *trans_vec, int nThreads) |
dft_lin_respao performs the transformation of given transition density | |
static void * | dft_lin_resp_worker (void *data) |
EXTERN_C real | dft_lin_resp_mt (const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, const real *dens, const real *vec, real *trans_vec) |
Variables | |
static pthread_mutex_t | dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER |
Blocked DFT Linear Response contribution evaluator.
#define _XOPEN_SOURCE 500 |
#define _XOPEN_SOURCE_EXTENDED 1 |
EXTERN_C real dft_lin_resp_mt | ( | const BasisInfoStruct & | bis, | |
const Molecule & | mol, | |||
const Dft::GridParams & | gss, | |||
const real * | dens, | |||
const real * | vec, | |||
real * | trans_vec | |||
) |
References dft_get_num_threads(), dft_lin_resp_worker(), do_output(), Molecule::getNumberOfElectrons(), LOG_AREA_DFT, LOG_AREA_LR, LOG_CAT_ERROR, and LOG_CAT_INFO.
Referenced by ErgoE2Evaluator::transform().
static void* dft_lin_resp_worker | ( | void * | data | ) | [static] |
References LinData::bis, LinData::density, dft_lin_respao(), do_output(), LinData::electrons, LinData::gss, LinData::inputVec, LOG_AREA_DFT, LOG_CAT_ERROR, LinData::mol, LinData::nThreads, and LinData::transformedVec.
Referenced by dft_lin_resp_mt().
EXTERN_C real dft_lin_respao | ( | const BasisInfoStruct & | bis, | |
const Molecule & | mol, | |||
const Dft::GridParams & | gss, | |||
const real * | dens, | |||
const real * | vec, | |||
real * | trans_vec, | |||
int | nThreads | |||
) |
dft_lin_respao performs the transformation of given transition density
vec | and the result is stored in | |
trans_vec | - both of which are square matrix A ground state density | |
dens | is required. | |
bis | is the basis set description structure. | |
mol | contains the molecule data (is this strictly needed?) | |
gss | a structure describing the grid settings. | |
nThreads | tells how many threads execute this section (needed for grid). |
References dal_new, DFT_MAX_BLLEN, dft_prop_mutex, do_output(), Molecule::getNumberOfElectrons(), Dft::integrate(), Functional_::is_gga, LinRespBlData::kappa, lin_resp_cb_b_gga(), lin_resp_cb_b_lda(), LOG_AREA_DFT, LOG_AREA_LR, LOG_CAT_INFO, LinRespBlData::nbast, BasisInfoStruct::noOfBasisFuncs, LinRespBlData::res, selected_func, LinRespBlData::trplet, LinRespBlData::vecs_in_batch, and LinRespBlData::vt.
Referenced by dft_lin_resp_worker().
static void lin_resp_cb_b_gga | ( | DftIntegratorBl * | grid, | |
real *restrict | tmp, | |||
int | bllen, | |||
int | blstart, | |||
int | blend, | |||
LinRespBlData * | data | |||
) | [static] |
References DftIntegratorBl_::atv, LinRespBlData::nbast, LinRespBlData::res, restrict, and LinRespBlData::vt.
Referenced by dft_lin_respao().
static void lin_resp_cb_b_lda | ( | DftIntegratorBl * | grid, | |
real *restrict | tmp, | |||
int | bllen, | |||
int | blstart, | |||
int | blend, | |||
LinRespBlData * | data | |||
) | [static] |
References DftIntegratorBl_::atv, DftIntegratorBl_::bas_bl_cnt, BASBLOCK, DftIntegratorBl_::basblocks, DftIntegratorBl_::curr_point, dftpot1_(), SecondDrv::fRR, getexp_blocked_lda(), LinRespBlData::kappa, min(), LinRespBlData::nbast, DftIntegratorBl_::nsym, DftIntegratorBl_::r, LinRespBlData::res, restrict, DftIntegratorBl_::rho, FunDensProp_::rhoa, FunDensProp_::rhob, DftIntegratorBl_::shl_bl_cnt, LinRespBlData::trplet, LinRespBlData::vecs_in_batch, LinRespBlData::vt, and DftIntegratorBl_::weight.
Referenced by dft_lin_respao().
int min | ( | int | a, | |
int | b | |||
) | [inline] |
Referenced by lin_resp_cb_b_lda(), and template_lapack_lamch().
pthread_mutex_t dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER [static] |
Referenced by dft_lin_respao().