|
ergo
|
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 |
| #define | restrict |
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 |
| #define restrict |
Referenced by lin_resp_cb_b_lda(), and lin_resp_cb_b_gga().
| 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(), LOG_CAT_ERROR, LOG_AREA_DFT, Molecule::getNumberOfElectrons(), LOG_CAT_INFO, and LOG_AREA_LR.
Referenced by ErgoE2Evaluator::transform().
| static void* dft_lin_resp_worker | ( | void * | data | ) | [static] |
References LinData::electrons, dft_lin_respao(), LinData::bis, LinData::mol, LinData::gss, LinData::density, LinData::inputVec, LinData::transformedVec, LinData::nThreads, do_output(), LOG_CAT_ERROR, and LOG_AREA_DFT.
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 BasisInfoStruct::noOfBasisFuncs, LinRespBlData::vt, dal_new, DFT_MAX_BLLEN, LinRespBlData::kappa, LinRespBlData::res, LinRespBlData::trplet, LinRespBlData::vecs_in_batch, LinRespBlData::nbast, Dft::integrate(), selected_func, Functional_::is_gga, lin_resp_cb_b_gga(), lin_resp_cb_b_lda(), dft_prop_mutex, Molecule::getNumberOfElectrons(), do_output(), LOG_CAT_INFO, LOG_AREA_LR, and LOG_AREA_DFT.
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 LinRespBlData::nbast, restrict, LinRespBlData::vt, DftIntegratorBl_::atv, and LinRespBlData::res.
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 restrict, DftIntegratorBl_::atv, LinRespBlData::res, LinRespBlData::vt, LinRespBlData::nbast, LinRespBlData::vecs_in_batch, getexp_blocked_lda(), LinRespBlData::kappa, DftIntegratorBl_::bas_bl_cnt, DftIntegratorBl_::basblocks, DftIntegratorBl_::shl_bl_cnt, DftIntegratorBl_::weight, DftIntegratorBl_::curr_point, FunDensProp_::rhoa, FunDensProp_::rhob, DftIntegratorBl_::r, DftIntegratorBl_::rho, dftpot1_(), LinRespBlData::trplet, SecondDrv::fRR, DftIntegratorBl_::nsym, BASBLOCK, and min().
Referenced by dft_lin_respao().
| int min | ( | int | a, |
| int | b | ||
| ) | [inline] |
Referenced by lin_resp_cb_b_lda(), mat::bisection(), and template_lapack_lamch().
pthread_mutex_t dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER [static] |
Referenced by dft_lin_respao().