ergo
lin_trans.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
29 
37 #if !defined(_LIN_TRANS_H_)
38 #define _LIN_TRANS_H_ 1
39 
40 #ifdef __cplusplus
41 #define EXTERN_C extern "C"
42 #else
43 #define EXTERN_C
44 #endif
45 
47  const Molecule& mol,
48  const Dft::GridParams& gss,
49  const real *dens,
50  const real *vec, real* trans_vec, int nThreads);
52  const Molecule& mol,
53  const Dft::GridParams& gss,
54  const real *dens,
55  const real *vec, real* trans_vec);
56 #endif
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
SecondDrv::fZZ
real fZZ
Definition: dft_common.h:75
getexp_blocked_lda
void getexp_blocked_lda(int nbast, const real *dmat, const real *gao, const int *nblocks, const int(*iblocks)[2], int ldaib, real *tmp, int nvclen, real *rho)
Computes the expectation value <o|dmat|o'> for a nonsymmetric matrix and given set of precomputed orb...
Definition: rho-mat.cc:264
DftIntegratorBl_::bas_bl_cnt
int bas_bl_cnt[8]
Definition: integrator.h:58
BASBLOCK
#define BASBLOCK(grid, isym)
Definition: integrator.h:61
SecondDrv
Definition: dft_common.h:70
FunDensProp_
Definition: functionals.h:375
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
dft_common.h
Common DFT routines. Mostly functional mixing.
restrict
#define restrict
Definition: lin_trans.cc:62
SecondDrv::fG
real fG
Definition: dft_common.h:81
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
DFT_MAX_BLLEN
#define DFT_MAX_BLLEN
Limit for the number of grid point batch length.
Definition: aos.h:41
dft_lin_resp_worker
static void * dft_lin_resp_worker(void *data)
Definition: lin_trans.cc:318
ergo_real
double ergo_real
Definition: realtype.h:69
LinData::nThreads
int nThreads
Definition: lin_trans.cc:314
LinRespBlData::res
real * res
Definition: lin_trans.cc:72
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)
Definition: lin_trans.cc:344
SecondDrv::fRG
real fRG
Definition: dft_common.h:78
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
Definition: lin_trans.cc:252
FunDensProp_::rhoa
real rhoa
Definition: functionals.h:376
Dft::integrate
real integrate(int ndmat, const FullMatrix *const *dmat, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, int nThreads, DftBlockCallback cb, void *cb_data)
LinRespBlData::vecs_in_batch
int vecs_in_batch
Definition: lin_trans.cc:74
Dft::FullMatrix
Definition: grid_matrix.h:53
LinData::bis
const BasisInfoStruct * bis
Definition: lin_trans.cc:307
BasisInfoStruct
Definition: basisinfo.h:112
real
ergo_real real
Definition: test.cc:46
LOG_AREA_LR
#define LOG_AREA_LR
Definition: output.h:59
LinRespBlData::kappa
const real * kappa
Definition: lin_trans.cc:71
LinRespBlData::trplet
int trplet
Definition: lin_trans.cc:74
SecondDrv::fRR
real fRR
Definition: dft_common.h:73
LinData::inputVec
const real * inputVec
Definition: lin_trans.cc:311
DftIntegratorBl_
Definition: integrator.h:49
DftIntegratorBl_::curr_point
int curr_point
Definition: integrator.h:89
DftIntegratorBl_::weight
real * weight
Definition: integrator.h:52
LinRespBlData
Definition: lin_trans.cc:70
Dft::GridParams
A structure describing the grid settings.
Definition: grid_params.h:59
FunDensProp_::rhob
real rhob
Definition: functionals.h:376
DftIntegratorBl_::r
union DftIntegratorBl_::@0 r
LinData::electrons
real electrons
Definition: lin_trans.cc:313
LinRespBlData::vt
real * vt
Definition: lin_trans.cc:73
LinData::gss
const Dft::GridParams * gss
Definition: lin_trans.cc:309
LinData::transformedVec
real * transformedVec
Definition: lin_trans.cc:312
dft_get_num_threads
EXTERN_C int dft_get_num_threads(void)
Definition: dft_common.cc:203
DftBlockCallback
void(* DftBlockCallback)(DftIntegratorBl *grid, real *tmp, int bllen, int blstart, int blend, void *cb_data)
Definition: integrator.h:97
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)
Definition: lin_trans.cc:142
dal_new
#define dal_new(sz, tp)
Definition: dft_common.h:125
LinRespBlData::nbast
int nbast
Definition: lin_trans.cc:74
Functional_::is_gga
IsGGAFunc is_gga
Definition: functionals.h:403
SecondDrv::fZG
real fZG
Definition: dft_common.h:79
getexp_blocked_gga
void getexp_blocked_gga(int nbast, const real *dmat, const real *gao, const int *nblocks, const int(*iblocks)[2], int ldaib, real *tmp, int nvclen, real(*rgrad)[4])
Computes the expectation value <o|dmat|o'> and its derivatives for a nonsymmetric matrix and given se...
Definition: rho-mat.cc:326
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
SecondDrv::fGG
real fGG
Definition: dft_common.h:80
dft_prop_mutex
static pthread_mutex_t dft_prop_mutex
Definition: lin_trans.cc:49
utilities.h
Basic OS access utilities.
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
selected_func
Functional * selected_func
Definition: functionals.c:106
DftIntegratorBl_::rho
real * rho
Definition: integrator.h:76
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
Definition: lin_trans.cc:252
min
int min(int a, int b)
Definition: lin_trans.cc:66
SecondDrv::fZ
real fZ
Definition: dft_common.h:72
DftIntegratorBl_::atv
real * atv
Definition: integrator.h:53
LinData
Definition: lin_trans.cc:306
Molecule
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
DftIntegratorBl_::basblocks
int(* basblocks)[2]
Definition: integrator.h:60
EXTERN_C
#define EXTERN_C
Definition: dft.h:45
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)
Definition: lin_trans.cc:344
integrator.h
dftpot1_
EXTERN_C void dftpot1_(SecondDrv *ds, const real *w, const FunDensProp *dp, const int *triplet)
Definition: dft_common.cc:776
SecondDrv::fRZ
real fRZ
Definition: dft_common.h:74
rho-mat.h
config.h
LinData::mol
const Molecule * mol
Definition: lin_trans.cc:308
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
grid_matrix.h
Generic matrix interface. It is not optimized for speed.
Molecule::getNumberOfElectrons
int getNumberOfElectrons() const
Compute total number of electrons.
Definition: molecule.cc:158
LinData::density
const real * density
Definition: lin_trans.cc:310
EXTERN_C
#define EXTERN_C
Definition: lin_trans.h:43
DftIntegratorBl_::nsym
int nsym
Definition: integrator.h:58
aos.h
lin_resp_cb_b_lda
static void lin_resp_cb_b_lda(DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, LinRespBlData *data)
Definition: lin_trans.cc:78
LOG_AREA_DFT
#define LOG_AREA_DFT
Definition: output.h:62
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
functionals.h
output.h
Functionality for writing output messages to a text file.
DftIntegratorBl_::shl_bl_cnt
int shl_bl_cnt
Definition: integrator.h:58