//--------------------------------------------------------------------------- function drawPot() { var pts=200,i,j,k,l,min,max; // OM /* var pot_om=new CountPotential(); X=new Array(); Y=new Array(); pot_om.setReaction(PROJ.getZ(),PROJ.getA(),TARG.getZ(),TARG.getA()); pot_om.setCoulombParameters(R0_COUL.getValue()); switch (POT_OM.getPotType()) { case "volume" : pot_om.setNuclearParameters("Volume",POT_OM.getValue("_VOL_V"),POT_OM.getValue("_VOL_R"),POT_OM.getValue("_VOL_A"),0.0,0.0,0.0); break; case "surface" : pot_om.setNuclearParameters("Surface",POT_OM.getValue("_SURF_V"),POT_OM.getValue("_SURF_R"),POT_OM.getValue("_SURF_A"),0.0,0.0,0.0); break; case "superposition": pot_om.setNuclearParameters("Superposition",POT_OM.getValue("_SUP_VOL_V"),POT_OM.getValue("_SUP_VOL_R"),POT_OM.getValue("_SUP_VOL_A"), POT_OM.getValue("_SUP_SURF_V"),POT_OM.getValue("_SUP_SURF_R"),POT_OM.getValue("_SUP_SURF_A")); break; case "gaussian" : pot_om.setNuclearParameters("Gaussian",POT_OM.getValue("_GAUS_V"),POT_OM.getValue("_GAUS_R"),0.0,0.0,0.0,0.0); break; } pot_om.Calculate(0.001,15,pts,X,Y); var gf_om=createArray(pts,4); min=1.e5; max=-1.e5; for (i=0;imax) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]max) max=Y[i]; if (Y[i]500) Lmax=500; document.getElementById("ID_LMAX").value=Math.floor(Lmax); } //--------------------------------------------------------------------------- function check_R_max() { var A1,A2,Z1,Z2,m,R_turn,delta,RC_match,amax=0,a,r0=0,r,Rmax; A1=document.getElementById("ID_PROJ_A").value; A2=document.getElementById("ID_TARG_A").value; Z1=document.getElementById("ID_PROJ_Z").value; Z2=document.getElementById("ID_TARG_Z").value; m=1.0*A1*A2/(1.0*A1+1.0*A2); sys=document.getElementById("ID_ENV_SYS").value; if (sys=="lab") Ecm=1.0*document.getElementById("ID_ENV_E").value*A2/(1.0*A1+1.0*A2); else if (sys=="E/A") Ecm=1.0*document.getElementById("ID_ENV_E").value*A1*A2/(1.0*A1+1.0*A2); else if (sys=="cm") Ecm=1.0*document.getElementById("ID_ENV_E").value; k = Math.sqrt(2.0*m*Ecm/41.47); // (Coulomb turning point + 2pi/k) - min distance in the case of energy under Coulomb barrier R_turn = 1.43986*Z1*Z2/Ecm; delta = 2*3.1415926/k; RC_match = R_turn + delta; //alert(R_turn+"|"+RC_match); for (i=0;ir0) r0=POT_OM.r0[i]; if (1*POT_OM.a[i]>amax) amax=POT_OM.a[i]; } for (i=0;ir0) r0=POT_AB.r0[i]; if (1*POT_AB.a[i]>amax) amax=POT_AB.a[i]; } Rmax=document.getElementById("ID_RMAX").value; if (isNaN(Number(Rmax))) Rmax=Number(2*r*(Math.pow(A1,1./3.)+Math.pow(A2,1./3.))+5*amax); if (1*Rmax < 15) Rmax = 15; if (1*Rmax > 75) Rmax = 75; if (1*Rmax < RC_match) Rmax = RC_match; Rmax = Number(Rmax).toFixed(1); document.getElementById("ID_RMAX").value=Rmax; } //--------------------------------------------------------------------------- function check_int_step() { var A1,A2,Ecm,Elab,EA,E,m,k,Lmax; A1=1*PROJ.getA(); A2=1*TARG.getA(); m=1*A1*A2/(1*A1+1*A2); sys=ENV.getSystem(); E=1*ENV.getE(); if (sys=="lab") Ecm=E*A2/(A1+A2); else if (sys=="E/A") Ecm=E*A1*A2/(A1+A2); else if (sys=="cm") Ecm=E; k=Math.sqrt(2*m*Ecm/41.47); if (1*INTEGRATION_STEP.getValue()>=0.2/k) { m=0.2/k; m=m.toFixed(3); INTEGRATION_STEP.setValue(m); } } //--------------------------------------------------------------------------- function def_int_params() { document.getElementById("ID_INITIAL_ANGLE").value=0; document.getElementById("ID_MAXIMAL_ANGLE").value=180; document.getElementById("ID_STEP_ANGLE").value=1; document.getElementById("ID_INTEGRATION_STEP").value=0.05; RMAX.setValue("none"); // Портим значение, чтобы оно пересчиталось check_R_max(); // Сперва R потом L, потому что L зависит от R LMAX.setValue("none"); // Портим значение, чтобы оно пересчиталось check_L_max(); check_int_step(); } //--------------------------------------------------------------------------- function update_expdata_list() { $.ajax({ url: "../save/show_exp_data.php", type: "GET", data: { task: "inelastic" }, success: function( data ) { var V,s=" "; V=eval('(' +data+ ')'); for (i=0;i"+Nuclei.Name[TARG.getZ()]+"("+PROJ.getA()+""+Nuclei.Name[PROJ.getZ()]+","+PROJ.getA()+""+Nuclei.Name[PROJ.getZ()]+p1+")"+TARG.getA()+""+Nuclei.Name[TARG.getZ()]+p2+", E"+ENV.getSystem()+"="+ENV.getE()+" MeV"; // Создаём Chart var myChart=new Chart('canvas_result','14px Arial','black','16px Calibri','black',"Θcm (deg)","dσ/dΩ (mb/sr)",1,true,"gray","lightgoldenrodyellow",6,true,false,true); // Находим Ecm var A1,A2,Ecm,Elab,EA,E,m; A1=1*PROJ.getA(); A2=1*TARG.getA(); m=1*A1*A2/(1*A1+1*A2); sys=ENV.getSystem(); E=1*ENV.getE(); if (sys=="lab") Ecm=E*A2/(A1+A2); else if (sys=="E/A") Ecm=E*A1*A2/(A1+A2); else if (sys=="cm") Ecm=E; // Строим насчитанные графики D=data.split("\n"); for (i=0;i<6;i++) { // Цикл по файлам результатам if (D[i]!="") { // Находим кол-во точек C=D[i].split("\\n"); pts=C.length; var gf=createArray(pts,2); // Определяем значения for (j=0;j99) s[2]=99; dCS[j]=1*s[2]; } } Ecm=energy_recalculate2(obj.E,obj.A_PROJ,obj.A_TARG,obj.E_SYS,"cm"); if (obj.ANGLE=="lab") CS_lab_to_cm(obj.A_PROJ,obj.A_TARG,obj.A_PROJ,obj.A_TARG,Ecm,0,pts,Angle,CS,dCS,obj.CROSS_SECTION,obj.ERROR); if (obj.CROSS_SECTION=="σ/σ(Ruth)") CS_Ratio_to_mb(obj.Z_PROJ,obj.A_PROJ,obj.Z_TARG,obj.A_TARG,Ecm,pts,Angle,CS,dCS,"cm",obj.CROSS_SECTION,obj.ERROR); for (i=0;i nuzhno ego pereschitat' v cm. dlya vychisleniya J*ds/dO if(cm_or_lab == 'lab') { cos2_lab = Math.cos(th); sin_lab = Math.sin(th); sin2_lab = 1.*sin_lab*sin_lab, cos_cm, xx, m12 = 1.*Ap/At; cos2_lab = 1.*cos2_lab*cos2_lab; xx=1.*m12*m12*(sin2_lab-1.)*sin2_lab + 1.*cos2_lab; if(th_deg<90) cos_cm = (-1.*m12*sin2_lab + 1.*Math.sqrt(xx)); else cos_cm = (-1.*m12*sin2_lab - 1.*Math.sqrt(xx)); s = Math.sqrt(0.5*(1.-cos_cm));// sin(th_cm/2) xx=1.*1+1.*m12*m12+2.*m12*cos_cm; Jacobian = 1.*xx*Math.sqrt(xx)/Math.abs(1.+1.*m12*cos_cm); } //--------------------------------------------------------------------------- if(Ap==At && Zp==Zt) { sin2_th = 1.*s*s; cos2_th = 1 - 1.*sin2_th; ln_sin2_th = Math.log(1./sin2_th); ln_cos2_th = Math.log(1./cos2_th); re = 1.*Math.cos(eta*ln_sin2_th)/sin2_th + 1.*Math.cos(eta*ln_cos2_th)/cos2_th; im = 1.*Math.sin(eta*ln_sin2_th)/sin2_th + 1.*Math.sin(eta*ln_cos2_th)/cos2_th; cs = 10.*x*x*(re*re + im*im); } else cs = 10.*x*x/(s*s*s*s); //--------------------------------------------------------------------------- return cs*Jacobian; } //----------------------------------------------------------------------- // Aplf - mass of projectile in exit channel // Atlf - mass of target in exit channel // Q - Q-value: Q = Ecm(exit) - Ecm(entrance) function CS_lab_to_cm(Ap,At,Aplf,Atlf,Ecm,Q,Npoint,Angle,CS,dCS,cs_unit,dcs_unit) { m12=1.*Ap/At, mu = 1.*Ap*At/(1.*Ap + 1.*At); _mu = 1.*Aplf*Atlf/(1.*Aplf + 1.*Atlf); alpha = Math.sqrt(_mu*(1.0 + Q/Ecm)/mu); for(i=0;i