home *** CD-ROM | disk | FTP | other *** search
-
- int hdrbtrap_init()
- {
- title_label = "HDRB Trapped Ion";
-
- mapping_on = 0;
- inverse_on = 1;
- fderiv_on = 0;
- enable_polar = 1;
- enable_period = 0;
-
- var_dim = 4;
- param_dim = 3;
- func_dim = 2;
-
- (void) malloc_init();
-
- var_label[0] = "x";
- var_label[1] = "y";
- var_label[2] = "z";
- var_label[3] = "w";
- var_polar_label[0] = "r";
- var_polar_label[1] = "rp";
- var_polar_label[2] = "theta";
- var_polar_label[3] = "thetap";
- param_label[0] = "gamma";
- param_label[1] = "alpha";
- param_label[2] = "q";
- func_label[0] = "Energy";
- func_label[1] = "AngMom";
-
- param[0] = 2;
- param[1] = 0;
- param[1] = 0;
-
- var_i[0] = 0;
- var_i[1] = 0;
- var_i[2] = 0;
- var_i[3] = 0;
- var_polar_i[0] = 0;
- var_polar_i[1] = 0;
- var_polar_i[2] = 0;
- var_polar_i[3] = 0;
-
- param_min[0]= -5; param_max[0]= 5;
- param_min[1]= -5; param_max[1]= 5;
- param_min[2]= -5; param_max[2]= 5;
-
- var_min[0]= -5; var_max[0]= 5;
- var_min[1]= -5; var_max[1]= 5;
- var_min[2]= -5; var_max[2]= 5;
- var_min[3]= -5; var_max[3]= 5;
-
- var_polar_min[0]= -5; var_polar_max[0]= 5;
- var_polar_min[1]= -5; var_polar_max[1]= 5;
- var_polar_min[2]= -pi; var_polar_max[2]= pi;
- var_polar_min[3]= -5; var_polar_max[3]= 5;
-
- f_p = hdrbtrap_f;
- func_p = hdrbtrap_func;
- }
- int hdrbtrap_f(f,index,x,p,t,dim)
- int index,dim;
- double f[],x[],p[],t;
- {
- double v0sq,v2sq,vtmp1,vtmp2,cos();
- if(index !=2) {
- f[0] = x[1];
- f[2] = x[3];
- }
- if(index !=1){
- v0sq = x[0] * x[0];
- v2sq = x[2] * x[2];
- vtmp1 = p[1] / (v0sq + v2sq) / sqrt(v0sq + v2sq);
- vtmp2 = p[2] * cos(2 * t);
- f[1] = - p[0] * x[1] + x[0] * (vtmp1 - 2 * vtmp2);
- f[3] = - p[0] * x[3] + x[2] * (vtmp1 + vtmp2);
- }
- }
- int hdrbtrap_func(f,x,p,t,dim)
- double f[],x[],p[],t;
- int dim;
- {
- double v0sq,v1sq,v2sq,v3sq;
-
- /* energy and angular momentum are defined in euclidean
- coordinates */
- v0sq = x[0] * x[0];
- v2sq = x[2] * x[2];
- f[0] = 0.5 * (( x[1] * x[1] + x[3] * x[3]) - p[0]*(v0sq+v2sq)
- + 0.5 * (v0sq+v2sq)*(v0sq+v2sq) - p[1] * v0sq* v2sq);
- f[1] = x[1] * x[2] - x[0] * x[3];
- }
-