SOLIDstate
A C++ library for solid state physics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Static Public Attributes | List of all members
solid::AdiabaticSolver< T1, T2, T3 > Class Template Reference

Adiabatic Solver header. More...

#include <AdiabaticSolver.hpp>

Inheritance diagram for solid::AdiabaticSolver< T1, T2, T3 >:
Inheritance graph
[legend]
Collaboration diagram for solid::AdiabaticSolver< T1, T2, T3 >:
Collaboration graph
[legend]

Public Member Functions

std::string getLabel () override
 Get the Label object (IQuantumDynamicSolver override) More...
 
void Propagate (double time, double dtime, QuantumDynamics< T1, T2, T3 > &qDynamics)
 Propagate the state \(|\psi\rangle\) (IQuantumDynamicSolver override) More...
 
- Public Member Functions inherited from solid::IQuantumDynamicSolver< T1, T2, T3 >
virtual ~IQuantumDynamicSolver ()
 

Static Public Attributes

static constexpr auto label = "adia"
 label, default = "adia" More...
 

Detailed Description

template<template< typename > class T1, typename T2, typename T3>
class solid::AdiabaticSolver< T1, T2, T3 >

Adiabatic Solver header.

It propagates the state assuming that \(|\psi\rangle\) is a ground state \(|GS\rangle\) on the entire dynamics path:

\[ \hat H | GS \rangle = E_0 | GS \rangle \]

Template Parameters
T1matrix type: arma::Mat and arma:SpMat are supported
T2data type of QuantumSystem: double, std::complex<double> are supported
T3data type of QuantumState: double, std::complex<double> are supported

Member Function Documentation

template<template< typename > class T1, typename T2 , typename T3 >
std::string solid::AdiabaticSolver< T1, T2, T3 >::getLabel ( )
inlineoverridevirtual

Get the Label object (IQuantumDynamicSolver override)

Returns
std::string label

Implements solid::IQuantumDynamicSolver< T1, T2, T3 >.

template<template< typename > class T1, typename T2 , typename T3 >
void solid::AdiabaticSolver< T1, T2, T3 >::Propagate ( double  time,
double  dtime,
QuantumDynamics< T1, T2, T3 > &  qDynamics 
)
inlinevirtual

Propagate the state \(|\psi\rangle\) (IQuantumDynamicSolver override)

Parameters
timecurrent time
dtimetime step
qDynamicsQuantumDynamics<T1,T2,T3> object

Implements solid::IQuantumDynamicSolver< T1, T2, T3 >.

Member Data Documentation

template<template< typename > class T1, typename T2 , typename T3 >
constexpr auto solid::AdiabaticSolver< T1, T2, T3 >::label = "adia"
inlinestatic

label, default = "adia"


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