NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library
cntr_differentiation_decl.hpp
Go to the documentation of this file.
1 #ifndef CNTR_DIFFERENTIATION_DECL_H
2 #define CNTR_DIFFERENTIATION_DECL_H
3 
5 #include "integration.hpp"
6 
7 namespace cntr {
8 
9 template <typename T> class herm_matrix;
10 
11 /*###########################################################################################
12 #
13 # DIFFERENTIATION dA(t,t') = id/dt A(t,t') or dA(t,t') = -id/dt' A(t,t')
14 #
15 # ... currently only implemented for herm_matrix
16 # to compute differentiation of contour functions assuming they are known for all times
17 # Matsubara need still working midpoint differentiation (now all bwd except small times
18 (fwd))
19 #
20 ###########################################################################################*/
22 template <typename T>
23 void deriv1_matsubara(herm_matrix<T> &dA, herm_matrix<T> &A, integration::Integrator<T> &I,
24  T beta);
26 template <typename T>
27 void deriv1_element(int tstp1, int tstp2, herm_matrix<T> &dA, herm_matrix<T> &A,
28  herm_matrix<T> &Acc, integration::Integrator<T> &I, T h);
30 template <typename T>
31 void deriv2_element(int tstp1, int tstp2, herm_matrix<T> &dA, herm_matrix<T> &A,
32  herm_matrix<T> &Acc, integration::Integrator<T> &I, T h);
34 template <typename T>
35 void deriv1_tv(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A,
38 template <typename T>
39 void deriv2_tv(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A,
40  integration::Integrator<T> &I, T beta);
42 template <typename T>
43 void deriv1_timestep(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A, herm_matrix<T> &Acc,
44  integration::Integrator<T> &I, T beta, T h);
46 template <typename T>
47 void deriv2_timestep(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A, herm_matrix<T> &Acc,
48  integration::Integrator<T> &I, T beta, T h);
49 
50 
51 template <typename T>
52 void deriv1_matsubara(herm_matrix<T> &dA, herm_matrix<T> &A, T beta, int SolveOrder=MAX_SOLVE_ORDER);
53 template <typename T>
54 void deriv1_element(int tstp1, int tstp2, herm_matrix<T> &dA, herm_matrix<T> &A,
55  herm_matrix<T> &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER);
56 template <typename T>
57 void deriv2_element(int tstp1, int tstp2, herm_matrix<T> &dA, herm_matrix<T> &A,
58  herm_matrix<T> &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER);
59 template <typename T>
60 void deriv1_tv(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A,
61  T h, int SolveOrder=MAX_SOLVE_ORDER);
62 template <typename T>
63 void deriv2_tv(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A,
64  T beta, int SolveOrder=MAX_SOLVE_ORDER);
65 template <typename T>
66 void deriv1_timestep(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A, herm_matrix<T> &Acc,
67  T beta, T h, int SolveOrder=MAX_SOLVE_ORDER);
68 template <typename T>
69 void deriv2_timestep(int tstp, herm_matrix<T> &dA, herm_matrix<T> &A, herm_matrix<T> &Acc,
70  T beta, T h, int SolveOrder=MAX_SOLVE_ORDER);
71 
72 } // namespace cntr
73 
74 #endif // CNTR_DIFFERENTIATION_DECL_H
Class Integrator contains all kinds of weights for integration and differentiation of a function at ...
void deriv1_element(int tstp1, int tstp2, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER)
void deriv1_tv(int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, T h, int SolveOrder=MAX_SOLVE_ORDER)
void deriv2_element(int tstp1, int tstp2, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER)
void deriv2_timestep(int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T beta, T h, int SolveOrder=MAX_SOLVE_ORDER)
Integrator< T > & I(int k)
void deriv1_timestep(int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T beta, T h, int SolveOrder=MAX_SOLVE_ORDER)
void deriv1_matsubara(herm_matrix< T > &dA, herm_matrix< T > &A, T beta, int SolveOrder=MAX_SOLVE_ORDER)
void deriv2_tv(int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, T beta, int SolveOrder=MAX_SOLVE_ORDER)