ergo
lin_trans.cc File Reference

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
 

Macros

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

Detailed Description

Blocked DFT Linear Response contribution evaluator.

Author
: Pawel Salek responsible

Macro Definition Documentation

◆ restrict

#define restrict

Function Documentation

◆ dft_lin_resp_mt()

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 
)

◆ dft_lin_resp_worker()

◆ dft_lin_respao()

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

Parameters
vecand the result is stored in
trans_vec- both of which are square matrix A ground state density
densis required.
bisis the basis set description structure.
molcontains the molecule data (is this strictly needed?)
gssa structure describing the grid settings.
nThreadstells how many threads execute this section (needed for grid).

References dal_new, DFT_MAX_BLLEN, dft_prop_mutex, do_output(), free(), 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, Util::TimeMeter::print(), LinRespBlData::res, selected_func, LinRespBlData::trplet, LinRespBlData::vecs_in_batch, and LinRespBlData::vt.

Referenced by dft_lin_resp_worker().

◆ lin_resp_cb_b_gga()

static void lin_resp_cb_b_gga ( DftIntegratorBl grid,
real *restrict  tmp,
int  bllen,
int  blstart,
int  blend,
LinRespBlData data 
)
static

◆ lin_resp_cb_b_lda()

◆ min()

Variable Documentation

◆ dft_prop_mutex

pthread_mutex_t dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER
static

Referenced by dft_lin_respao().