ergo
tdhf_dynamics.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 
39 #ifndef TDHF_DYNAMICS_HEADER
40 #define TDHF_DYNAMICS_HEADER
41 
42 #include "basisinfo.h"
43 #include "matrix_typedefs.h"
44 #include "scf.h"
45 #include "electron_dynamics.h"
46 
47 void do_tdhf_dynamics(const BasisInfoStruct & basisInfo,
48  const IntegralInfo & integralInfo,
49  const Molecule & molecule,
50  const Molecule & extraCharges,
51  const SCF::MatOptions& matOpts,
52  const JK::ExchWeights & CAM_params,
53  const JK::Params & J_K_params,
54  const symmMatrix & FockMatrix,
55  const symmMatrix & densityMatrix,
56  const symmMatrix & S_symm,
57  const triangMatrix & invCholFactor,
58  const ED::Params & params);
59 
60 
61 #endif
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
ComplexMatrix::do_conjugate
void do_conjugate()
Definition: tdhf_dynamics.cc:218
integral_matrix_wrappers.h
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
pi.h
Constants for the number pi and some related numbers like sqrt(pi).
ComplexMatrix::size_block_info
mat::SizesAndBlocks size_block_info
Definition: tdhf_dynamics.cc:172
get_Fock_matrix_in_ort_basis
static void get_Fock_matrix_in_ort_basis(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, normalMatrix &F_ort, const normalMatrix &D_ort, const triangMatrix &invCholFactor, const symmMatrix &H_core_Matrix, const mat::SizesAndBlocks &size_block_info, const symmMatrix &refFockMatrix, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, bool realPart)
Definition: tdhf_dynamics.cc:67
compute_operator_matrix_sparse_symm
int compute_operator_matrix_sparse_symm(const BasisInfoStruct &basisInfo, int pow_x, int pow_y, int pow_z, symmMatrix &A_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:522
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
ED::Params
Definition: electron_dynamics.h:47
ergo_real
double ergo_real
Definition: realtype.h:69
do_tdhf_dynamics
void do_tdhf_dynamics(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, const Molecule &extraCharges, const SCF::MatOptions &matOpts, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, const symmMatrix &FockMatrix, const symmMatrix &densityMatrix, const symmMatrix &S_symm, const triangMatrix &invCholFactor, const ED::Params &params)
Definition: tdhf_dynamics.cc:354
ComplexMatrix::im
normalMatrix im
Definition: tdhf_dynamics.cc:171
symmMatrix
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
ComplexMatrix::product
void product(const ComplexMatrix &X, const ComplexMatrix &Y)
Definition: tdhf_dynamics.cc:182
compute_J_by_boxes_sparse
int compute_J_by_boxes_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, symmMatrix &J, const symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:596
ComplexMatrix::re
normalMatrix re
Definition: tdhf_dynamics.cc:170
ComplexMatrix::rescale
void rescale(ergo_real a)
Definition: tdhf_dynamics.cc:201
BasisInfoStruct
Definition: basisinfo.h:112
Molecule::getNoOfAtoms
int getNoOfAtoms() const
Definition: molecule.h:114
Atom
Simple atom representation by its charge and cartesian coordinates.
Definition: molecule.h:51
compute_exp_of_matrix
static void compute_exp_of_matrix(ComplexMatrix &U, const ComplexMatrix &X, mat::SizesAndBlocks size_block_info, int n, std::vector< int > const &inversePermutationHML)
Definition: tdhf_dynamics.cc:290
compute_h_core_matrix_sparse
int compute_h_core_matrix_sparse(const IntegralInfo &integralInfo, const Molecule &molecule, const Molecule &extraCharges, ergo_real electric_field_x, ergo_real electric_field_y, ergo_real electric_field_z, const BasisInfoStruct &basisInfo, symmMatrix &H_core_Matrix_sparse, ergo_real threshold_integrals_1el, int noOfThreadsForV, ergo_real boxSizeForVT, ergo_real &result_nuclearRepulsionEnergy, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, int const create_dipole_mtx, std::vector< int > const *const inversePermutationHML, std::string const *const calculation_identifier, std::string const *const method_and_basis_set)
Definition: scf_utils.cc:457
JK::Params
Definition: integrals_2el.h:45
template_blas_fabs
Treal template_blas_fabs(Treal x)
scf.h
Code for classes containing various options related to self-consistent field (SCF) calculations.
SCF::MatOptions
An object respresenting the configuration of the matrix library.
Definition: scf.h:276
ComplexMatrix::sum
void sum(const ComplexMatrix &X, const ComplexMatrix &Y)
Definition: tdhf_dynamics.cc:197
normalMatrix
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
triangMatrix
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
pi
#define pi
Definition: pi.h:57
ComplexMatrix::copy
void copy(const ComplexMatrix &X)
Definition: tdhf_dynamics.cc:178
SCF::MatOptions::inversePermutationHML
std::vector< int > inversePermutationHML
Definition: scf.h:279
scf_utils.h
Various utilities used by self-consistent field (SCF) code. For example, interface routines convertin...
IntegralInfo
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
get_curr_electric_field
static void get_curr_electric_field(ergo_real *electricField, ergo_real t)
Definition: tdhf_dynamics.cc:330
ComplexMatrix::initialize
void initialize(mat::SizesAndBlocks szblinfo)
Definition: tdhf_dynamics.cc:173
ED::Params::max_time
ergo_real max_time
Definition: electron_dynamics.h:48
print_matrix
void print_matrix(std::vector< ergo_real > const &A)
Definition: random_matrices.cc:52
integrals_2el_explicit.h
Code for explicit computation of 4-index 2-electron integrals.
template_blas_sin
Treal template_blas_sin(Treal x)
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
LOG_AREA_ED
#define LOG_AREA_ED
Definition: output.h:65
Molecule::getAtom
const Atom & getAtom(int i) const
Definition: molecule.h:113
mat::transpose
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
ComplexMatrix::add
void add(const ComplexMatrix &X, ergo_real a)
Definition: tdhf_dynamics.cc:214
SCF::MatOptions::permutationHML
std::vector< int > permutationHML
Definition: scf.h:278
matrix_typedefs.h
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
basisinfo.h
Code for setting up basis functions starting from shells.
do_tdhf_dynamics
void do_tdhf_dynamics(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, const Molecule &extraCharges, const SCF::MatOptions &matOpts, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, const symmMatrix &FockMatrix, const symmMatrix &densityMatrix, const symmMatrix &S_symm, const triangMatrix &invCholFactor, const ED::Params &params)
Definition: tdhf_dynamics.cc:354
JK::ExchWeights
Definition: integral_info.h:148
compute_U_X_Udagger
static void compute_U_X_Udagger(ComplexMatrix &result, const ComplexMatrix &U, const ComplexMatrix &X, mat::SizesAndBlocks size_block_info)
Definition: tdhf_dynamics.cc:315
tdhf_dynamics.h
Implementation of TDHF electron dynamics, explicitly propagating the electron density in time in the ...
Atom::charge
ergo_real charge
Definition: molecule.h:52
Molecule
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
mat::SizesAndBlocks
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
SCF::MatOptions::size_block_info
mat::SizesAndBlocks size_block_info
Definition: scf.h:277
compute_K_by_boxes_sparse_nosymm
int compute_K_by_boxes_sparse_nosymm(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, normalMatrix &K, normalMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Definition: integral_matrix_wrappers.cc:892
vectorLength
static ergo_real vectorLength(ergo_real x, ergo_real y, ergo_real z)
Definition: tdhf_dynamics.cc:349
ComplexMatrix::rescale_im
void rescale_im(ergo_real a)
Definition: tdhf_dynamics.cc:205
Atom::coords
ergo_real coords[3]
Definition: molecule.h:53
electron_dynamics.h
Parameters related to TDHF electron dynamics.
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
ED::Params::timestep
ergo_real timestep
Definition: electron_dynamics.h:49
ComplexMatrix
Definition: tdhf_dynamics.cc:169
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
output.h
Functionality for writing output messages to a text file.