ergo
tdhf_dynamics.cc File Reference

Implementation of TDHF electron dynamics, explicitly propagating the electron density in time in the precence of a time-dependent electric field. More...

#include <cstring>
#include "tdhf_dynamics.h"
#include "scf_utils.h"
#include "output.h"
#include "pi.h"
#include "integral_matrix_wrappers.h"
#include "integrals_2el_explicit.h"

Classes

struct  ComplexMatrix
 

Functions

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)
 
static void compute_exp_of_matrix (ComplexMatrix &U, const ComplexMatrix &X, mat::SizesAndBlocks size_block_info, int n, std::vector< int > const &inversePermutationHML)
 
static void compute_U_X_Udagger (ComplexMatrix &result, const ComplexMatrix &U, const ComplexMatrix &X, mat::SizesAndBlocks size_block_info)
 
static void get_curr_electric_field (ergo_real *electricField, ergo_real t)
 
static ergo_real vectorLength (ergo_real x, ergo_real y, ergo_real z)
 
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)
 

Detailed Description

Implementation of TDHF electron dynamics, explicitly propagating the electron density in time in the precence of a time-dependent electric field.

Author
: Elias Rudberg responsible

This implementation was done to reproduce the results in the article by Li et al: Phys. Chem. Chem. Phys., 2005, 7, 233–239.

DOI link for that article: http://dx.doi.org/10.1039/B415849K

Function Documentation

◆ 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 
)
static

◆ compute_U_X_Udagger()

static void compute_U_X_Udagger ( ComplexMatrix result,
const ComplexMatrix U,
const ComplexMatrix X,
mat::SizesAndBlocks  size_block_info 
)
static

◆ do_tdhf_dynamics()

◆ get_curr_electric_field()

static void get_curr_electric_field ( ergo_real electricField,
ergo_real  t 
)
static

References pi, and template_blas_sin().

Referenced by do_tdhf_dynamics().

◆ 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 
)
static

◆ vectorLength()

static ergo_real vectorLength ( ergo_real  x,
ergo_real  y,
ergo_real  z 
)
static

References template_blas_sqrt().

Referenced by do_tdhf_dynamics().