ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
module_rt::Propagator Class Reference

#include <propagator.h>

Collaboration diagram for module_rt::Propagator:

Public Member Functions

 Propagator (const int ptype, const Parallel_Orbitals *pv, const double &dt)
 
 ~Propagator ()
 
void compute_propagator (const int nlocal, const std::complex< double > *Stmp, const std::complex< double > *Htmp, const std::complex< double > *H_laststep, std::complex< double > *U_operator, std::ofstream &ofs_running, const int print_matrix) const
 compute propagator
 
template<typename Device >
void compute_propagator_tensor (const int nlocal, const ct::Tensor &Stmp, const ct::Tensor &Htmp, const ct::Tensor &H_laststep, ct::Tensor &U_operator, std::ofstream &ofs_running, const int print_matrix, const bool use_lapack) const
 

Private Member Functions

void compute_propagator_cn2 (const int nlocal, const std::complex< double > *Stmp, const std::complex< double > *Htmp, std::complex< double > *U_operator, std::ofstream &ofs_running, const int print_matrix) const
 compute propagator of method Crank-Nicolson
 
void compute_propagator_cn2_tensor (const int nlocal, const ct::Tensor &Stmp, const ct::Tensor &Htmp, ct::Tensor &U_operator, std::ofstream &ofs_running, const int print_matrix) const
 
template<typename Device >
void compute_propagator_cn2_tensor_lapack (const int nlocal, const ct::Tensor &Stmp, const ct::Tensor &Htmp, ct::Tensor &U_operator, std::ofstream &ofs_running, const int print_matrix) const
 
void compute_propagator_taylor (const int nlocal, const std::complex< double > *Stmp, const std::complex< double > *Htmp, std::complex< double > *U_operator, std::ofstream &ofs_running, const int print_matrix, const int tag) const
 compute propagator of method 4th Taylor
 
void compute_propagator_etrs (const int nlocal, const std::complex< double > *Stmp, const std::complex< double > *Htmp, const std::complex< double > *H_laststep, std::complex< double > *U_operator, std::ofstream &ofs_running, const int print_matrix) const
 compute propagator of method ETRS
 

Private Attributes

int ptype
 
const Parallel_OrbitalsParaV
 
double dt
 

Constructor & Destructor Documentation

◆ Propagator()

module_rt::Propagator::Propagator ( const int  ptype,
const Parallel_Orbitals pv,
const double &  dt 
)
inline

◆ ~Propagator()

module_rt::Propagator::~Propagator ( )

Member Function Documentation

◆ compute_propagator()

void module_rt::Propagator::compute_propagator ( const int  nlocal,
const std::complex< double > *  Stmp,
const std::complex< double > *  Htmp,
const std::complex< double > *  H_laststep,
std::complex< double > *  U_operator,
std::ofstream &  ofs_running,
const int  print_matrix 
) const

compute propagator

Parameters
[in]nlocalnumber of orbitals
[in]Stmpoverlap matrix
[in]HtmpH(t+dt/2) or H(t+dt)
[in]H_laststepH(t)
[in]print_matirxprint internal matrix or not
[out]U_operatoroperator of propagator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_propagator_cn2()

void module_rt::Propagator::compute_propagator_cn2 ( const int  nlocal,
const std::complex< double > *  Stmp,
const std::complex< double > *  Htmp,
std::complex< double > *  U_operator,
std::ofstream &  ofs_running,
const int  print_matrix 
) const
private

compute propagator of method Crank-Nicolson

Parameters
[in]nlocalnumber of orbitals
[in]Stmpoverlap matrix
[in]HtmpH(t+dt/2) or H(t+dt)
[in]print_matirxprint internal matrix or not
[out]U_operatoroperator of propagator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_propagator_cn2_tensor()

void module_rt::Propagator::compute_propagator_cn2_tensor ( const int  nlocal,
const ct::Tensor Stmp,
const ct::Tensor Htmp,
ct::Tensor U_operator,
std::ofstream &  ofs_running,
const int  print_matrix 
) const
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_propagator_cn2_tensor_lapack()

template<typename Device >
void module_rt::Propagator::compute_propagator_cn2_tensor_lapack ( const int  nlocal,
const ct::Tensor Stmp,
const ct::Tensor Htmp,
ct::Tensor U_operator,
std::ofstream &  ofs_running,
const int  print_matrix 
) const
private
Here is the call graph for this function:

◆ compute_propagator_etrs()

void module_rt::Propagator::compute_propagator_etrs ( const int  nlocal,
const std::complex< double > *  Stmp,
const std::complex< double > *  Htmp,
const std::complex< double > *  H_laststep,
std::complex< double > *  U_operator,
std::ofstream &  ofs_running,
const int  print_matrix 
) const
private

compute propagator of method ETRS

Parameters
[in]nlocalnumber of orbitals
[in]Stmpoverlap matrix
[in]HtmpH(t+dt/2) or H(t+dt)
[in]H_laststepH(t)
[in]print_matirxprint internal matrix or not
[out]U_operatoroperator of propagator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_propagator_taylor()

void module_rt::Propagator::compute_propagator_taylor ( const int  nlocal,
const std::complex< double > *  Stmp,
const std::complex< double > *  Htmp,
std::complex< double > *  U_operator,
std::ofstream &  ofs_running,
const int  print_matrix,
const int  tag 
) const
private

compute propagator of method 4th Taylor

Parameters
[in]nlocalnumber of orbitals
[in]Stmpoverlap matrix
[in]HtmpH(t+dt/2) or H(t+dt)
[in]print_matirxprint internal matrix or not
[in]taga parametre different for 4th Taylor and ETRS
[out]U_operatoroperator of propagator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_propagator_tensor()

template<typename Device >
void module_rt::Propagator::compute_propagator_tensor ( const int  nlocal,
const ct::Tensor Stmp,
const ct::Tensor Htmp,
const ct::Tensor H_laststep,
ct::Tensor U_operator,
std::ofstream &  ofs_running,
const int  print_matrix,
const bool  use_lapack 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ dt

double module_rt::Propagator::dt
private

◆ ParaV

const Parallel_Orbitals* module_rt::Propagator::ParaV
private

◆ ptype

int module_rt::Propagator::ptype
private

The documentation for this class was generated from the following files: