CURRENT RELEASE IS hammurabi_1.03.tar !!! Known bugs: =========== From hammurabi.tar to hammurabi_1.01.tar: code: ----- -> class_Integrator.cpp 1. line 270 reads "obs_ff_map.SetNside(get_shell_NSIDE(total_shell),NEST);" it should read "obs_ff_map.SetNside(obs_NSIDE,NEST);" This, should you be running the code with a different value for total_shell and obs_shell, would cause the wrong nside to be allocated for the free-free map. in lines 1108 to 1112 it reads " // normalizing for(int n=0;n big_parafile line 11 should read "SunPosX = -8.5" (Thanks to Sam Leach) From hammurabi_1.01.tar to hammurabi_1.02.tar: code: ----- -> class_Integrator.cpp 1. A bug on the free-free emission computation, as well as a minor bug on the tau computation is fixed. The bug on the free-free emission causes differences in the third digit when computing a free-free map at 23GHz. At 22MHz the difference is up to a factor 5 (using all other parameters as in the ff parafile of the release). line 1170 to 1173 reads "// for computing tau // default values have to be zero! double delta_tau=0.; double previous_delta_tau=0.;" add directly afterwards "// later delta_tau_average=(previous_delta_tau+delta_tau)/2. // This is here explicitly, unlike what happens for RM and DM // because we need this value for computing the free-free // integral, which is and integral over the optical depth tau. double delta_tau_average=0.;" line 1278 reads "observables.tau+=(previous_delta_tau/2+delta_tau/2);" substitute it by "delta_tau_average=(previous_delta_tau/2+delta_tau/2); observables.tau+=delta_tau_average;" line 1359 reads "observables.ff+=ne_density.get_temperature(dist, THE,PHI)*(1.-exp(-(previous_delta_tau/2+delta_tau/2)));" substitute it by "double previous_dist=dist-delta_R; if(previous_dist<0) { if(abs(previous_dist)<(delta_R+0.1*delta_R)) { cerr << " previous_dist<-delta_R!! Stopping code! " << endl; exit(1); } else { previous_dist=0.; } } // Here the convention is that tau grows with distance. observables.ff+=0.5*(ne_density.get_temperature(previous_dist, THE, PHI)+ne_density.get_temperature(dist, THE,PHI))*(exp(-(observables.tau)))*(exp(+delta_tau_average)-1.);" (Thanks to annonymous referee) -> namespace_Vec_Handling.cpp 1. An extra error message was added. line 123 to 124 read "vec3 RTHEPHI2cart_vec(double R, double THE, double PHI) {" after line 124, add "if(R<0){cerr << " R<0 in namespace_Vec_Handling.cpp, vec3 RTHEPHI2cart_vec()" << endl; exit(1);}" From hammurabi_1.02.tar to hammurabi_1.03.tar: code: ----- -> class_Integrator.cpp 1. line 1225 "const double RM_forefactor=(CGS_U_qe*CGS_U_qe*CGS_U_qe)/(2.0*CGS_U_pi*CGS_U_MEC2*CGS_U_MEC2);" it should read "const double RM_forefactor=-(CGS_U_qe*CGS_U_qe*CGS_U_qe)/(2.0*CGS_U_pi*CGS_U_MEC2*CGS_U_MEC2);" The wrong sign would not only return RM maps with the reversed sign, but would also cause the Faraday rotation to happen in the wrong direction, therefore affecting Faraday depolarisation. RM should be positive for the field line pointing towards the observer. (Thanks to Alexander Schekochihin)