00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <math.h>
00010
00011 #include <gsl/gsl_matrix.h>
00012 #include "quantum_system.h"
00013
00014 #ifndef PARAM_H
00015 #define PARAM_H
00016
00017 typedef void*(*hamiltonian_func_t)(void *, void *);
00018 typedef int(*hamiltonian_td_func_t)(void *, void *, void *, double, void *);
00019 typedef double(*ho_w_func_t)(double, void*);
00020
00021
00022 typedef struct {
00023 quantum_system *qs;
00024
00025
00026 double Ti;
00027 double Tf;
00028 double dT;
00029
00030 char simsig[1024];
00031
00032
00033 double wT;
00034
00035
00036 int N;
00037 int n_offset;
00038
00039 double *epsilon;
00040 double *delta;
00041 double **lambda;
00042
00043 gsl_matrix_complex *H0;
00044 gsl_matrix_complex *H1;
00045 gsl_matrix_complex *H_t;
00046
00047
00048
00049 gsl_matrix_complex *do_a[10];
00050 gsl_matrix_complex *do_aad[10];
00051 gsl_matrix_complex *do_ada[10];
00052
00053 gsl_matrix_complex *ws1;
00054 gsl_matrix_complex *ws2;
00055
00056 double do_g1[10];
00057 double do_g2[10];
00058
00059 int do_n;
00060
00061
00062 gsl_matrix_complex *dSSt;
00063 ho_w_func_t ho_w_func;
00064 int cont_basis_transform;
00065
00066
00067 double *ho_w;
00068 double ho_g;
00069 double ho_g2;
00070 double g_qc;
00071 double g_cr;
00072
00073 gsl_matrix_complex *N_op[10];
00074 gsl_matrix_complex *a, *ad, *b, *bd, *b2, *bd2, *rho_f, *A, *B;
00075 gsl_matrix_complex *n_op, *n_op_2, *x1, *x1_2, *x2, *x2_2;
00076
00077
00078
00079 double f_A;
00080 double f_w;
00081 double phi;
00082
00083 double Nexpt[2];
00084
00085
00086 hamiltonian_func_t H0_func;
00087 hamiltonian_func_t H1_func;
00088 hamiltonian_td_func_t Ht_func;
00089
00090 } solver_param;
00091
00092 #endif