00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef INTEGRATE_H
00011 #define INTEGRATE_H
00012
00013 #include "param.h"
00014 #include "master_equation.h"
00015
00016 #include <gsl/gsl_matrix.h>
00017
00018 #define RK_REC_MAX_LEVEL 15
00019
00020 typedef int (*ode_func_drho_dt)(gsl_matrix_complex *rho_t, gsl_matrix_complex *drho_dt, double t,
00021 quantum_system *qs, solver_param *p);
00022
00023 int odeint_complex_rk(quantum_system *qs, solver_param *p, gsl_matrix_complex *rho0,
00024 ode_func_drho_dt f_drho_dt, rho_cb_func_t rho_cb_func);
00025
00026 int odeint_complex_rk_adaptive(quantum_system *qs, solver_param *p, gsl_matrix_complex *rho0,
00027 ode_func_drho_dt f_drho_dt, rho_cb_func_t rho_cb_func);
00028
00029 int odeint_rk_adaptive_rec(quantum_system *qs, solver_param *p, ode_func_drho_dt f_drho_dt,
00030 gsl_matrix_complex *rho0, gsl_matrix_complex *rho_final,
00031 int level, double ti, double tf, double etol, double *e);
00032
00033 double max_deviation(gsl_matrix_complex *m1, gsl_matrix_complex *m2, double etol);
00034
00035
00036 #endif
00037