Gasdynamics Calculator
function calcShock() {
var p1,p2,p5,p2p1,p5p2; //pressure and ratio
var t1,t2,t5,t2t1,t5t2; //temperature and ratio
var d1,d2,d5,d2d1,d5d2; //density and ratio
var a1,a2,a5; //speed of sound
var m,g,gp,gm,mw,ru,r;
var u2,w;
var mr,wr;
var g4,mw4,a4,p4p1,p4,r4,t4,areafactor;
var d4,p4p1exp,p4p1arg;
m = parseFloat(document.Shock.mach.value);
p1 = parseFloat(document.Shock.pinit.value);
t1 = parseFloat(document.Shock.tinit.value);
areafactor = parseFloat(document.Shock.areafact.value);
//decide driven gas;
if (document.Shock.drivengas.value == “1”){
g=parseFloat(1.4020);
mw=parseFloat(28.9660);
}
if (document.Shock.drivengas.value == “2”){
g=parseFloat(1.6700);
mw=parseFloat(39.948000);
}
if (document.Shock.drivengas.value == “3”){
g=parseFloat(1.29700);
mw=parseFloat(44.01000);
}
if (document.Shock.drivengas.value == “4”){
g=parseFloat(1.66700);
mw=parseFloat(4.002602000);
}
if (document.Shock.drivengas.value == “5”){
g=parseFloat(1.66700);
mw=parseFloat(20.179700);
}
if (document.Shock.drivengas.value == “6”){
g=parseFloat(1.40100);
mw=parseFloat(28.0134000);
}
if (document.Shock.drivengas.value == “7”){
g=parseFloat(1.66700);
mw=parseFloat(131.29000);
}
if (document.Shock.drivengas.value == “8”){
g=parseFloat(1.09200);
mw=parseFloat(146.06000);
}
if (document.Shock.drivengas.value == “9”){
g=parseFloat(1.668);
mw=parseFloat(21.98);
}
// decide driver gas
if (document.Shock.drivergas.value == “1”){
g4=parseFloat(1.4020);
mw4=parseFloat(28.9660);
}
if (document.Shock.drivergas.value == “2”){
g4=parseFloat(1.6700);
mw4=parseFloat(39.948000);
}
if (document.Shock.drivergas.value == “3”){
g4=parseFloat(1.29700);
mw4=parseFloat(44.01000);
}
if (document.Shock.drivergas.value == “4”){
g4=parseFloat(1.66700);
mw4=parseFloat(4.002602000);
}
if (document.Shock.drivergas.value == “5”){
g4=parseFloat(1.66700);
mw4=parseFloat(20.179700);
}
if (document.Shock.drivergas.value == “6”){
g4=parseFloat(1.40100);
mw4=parseFloat(28.0134000);
}
if (document.Shock.drivergas.value == “7”){
g4=parseFloat(1.66700);
mw4=parseFloat(131.29000);
}
if (document.Shock.drivergas.value == “8”){
g4=parseFloat(1.09200);
mw4=parseFloat(146.06000);
}
t4 = parseFloat(document.Shock.tid.value);
//document.write(“t4 ” + t4 + ” “);
gp = g + 1.00;
gm = g – 1.00;
//document.write(“gm ” + gm + ” “);
//document.write(“g ” + g + ” “);
//document.write(“mw ” + mw + ” “);
ru=parseFloat(8314.510);
//document.write(“ru ” + ru + ” “);
r=ru/mw;
//document.write(“r ” + r + ” “);
a1=Math.sqrt(g*r*t1);
w=a1*m;
d1=p1/r/t1;
//document.write(“p2 ” + t1 + ” “);
//document.write(“gp ” + gp + ” “);
//document.write(“gm ” + gm + ” “);
//ees p2p1=1+((2*gamma_1)/gp_1)*(M_init^2-1);
//
// State 2 properties
//
p2p1=1+2*g/gp*(Math.pow(m,2)-1);
p2=p2p1*p1;
t2t1=p2p1*((gp/gm+p2p1)/(1+gp/gm*p2p1));
t2=t2t1*t1;
a2=Math.sqrt(g*r*t2);
//ees rho2rho1=(1+gp_1/gm_1*p2p1)/(gp_1/gm_1+p2p1)
d2d1=(1+(gp/gm)*p2p1)/(gp/gm+p2p1);
d2=d2d1*d1;
//ees u_2=c_1/gamma_1*(p2p1-1)*((2*gamma_1/gp_1)/(p2p1+gm_1/gp_1))^0.5
u2=a1/g*(p2p1-1)*(Math.sqrt((2*g/gp)/(p2p1+gm/gp)));
//
// State 4 properties
//
//document.write(“gm ” + gm + ” “);
r4=ru/mw4;
a4=Math.sqrt(g4*r4*t4);
//ees p4p1=p2p1*(1-((gamma_4-1)*(a_1/a_4)*(p2p1-1))/sqrt(2*gamma_1*(2*gamma_1+;
// (gamma_1+1)*(p2p1-1))))^(-2*gamma_4/(gamma_4-1)) ;
p4p1exp=(-2*g4/(g4-1));
p4p1arg=(1-((g4-1)*(a1/a4)*(p2p1-1))/Math.sqrt(2*g*(2*g+gp*(p2p1-1))));
p4p1=p2p1*Math.pow(p4p1arg,p4p1exp);
p4=p4p1*p1;
d4=p4/r4/t4;
//document.write(“t4 ” + t4 + ” “);
//document.write(“a4 ” + a4 + ” “);
//
// State 5 properties
//
p5p2=((3*g-1)*p2p1-gm)/(gm*p2p1+gp);
p5=p5p2*p2;
t5t2=p5p2*((gp/gm+p5p2)/(1+gp/gm*p5p2));
t5=t5t2*t2;
d5d2=(1+(gp/gm)*p5p2)/(gp/gm+p5p2);
d5=d5d2*d2;
a5=Math.sqrt(g*r*t5);
wr=(d2*u2)/(d5-d2);
mr=(wr+u2)/a2;
document.Shock.pdriv.value = p1/1e6;
document.Shock.tdriv.value = t1;
document.Shock.ddriv.value = d1;
document.Shock.adriv.value = a1;
document.Shock.pshocked.value = p2/1e6;
document.Shock.tshocked.value = t2;
document.Shock.dshocked.value = d2;
document.Shock.ashocked.value = a2;
document.Shock.ushocked.value = u2;
document.Shock.pfour.value = p4/1e6;
document.Shock.pfourpsig.value = (((p4-101325.0)/101325.0)*14.696)/areafactor;
document.Shock.tfour.value = t4;
document.Shock.dfour.value = d4;
document.Shock.afour.value = a4;
document.Shock.preflect.value = p5/1e6;
document.Shock.treflect.value = t5;
document.Shock.dreflect.value = d5;
document.Shock.areflect.value = a5;
document.Shock.wreflect.value = wr;
document.Shock.mreflect.value = mr;
document.Shock.wshocked.value = w;
document.Shock.outmw.value = mw;
document.Shock.outgamma.value = g;
}
function calcTime() {
var xwave,xtrig,twave,wactual,mactual,xint;
var tdelayshock,tdelaymembrane,u2;
xwave = parseFloat(document.Timing.xwave.value);
twave = parseFloat(document.Timing.twave.value)/1000.00;
u2 = parseFloat(document.Shock.ushocked.value);
wactual=xwave/twave;
mactual=wactual/parseFloat(document.Shock.adriv.value);
xtrig = parseFloat(document.Timing.xtrig.value);
xint = parseFloat(document.Timing.xint.value);
tdelayshock=xtrig/wactual*1000;
tdelaymembrane=(xint)/wactual*1000+(xtrig-xint)/u2*1000;
document.Timing.wactual.value = wactual;
document.Timing.mactual.value = mactual;
document.Timing.tdelayshock.value = tdelayshock;
document.Timing.tdelaymembrane.value = tdelaymembrane;
}
function calcBoost() {
var drivervol,boostvol,prupture,percless,percmore,ru;
var r,mw4,g4,psig,ppa,ppreboost,ppostboost,pboosttank;
var deltap,deltam,t;
psig=parseFloat(14.696);
ppa=parseFloat(101325);
drivervol = parseFloat(document.Boosttank.drivervol.value);
boostvol = parseFloat(document.Boosttank.boostvol.value);
prupture = parseFloat(document.Boosttank.prupture.value)*ppa/psig;
percless = parseFloat(document.Boosttank.percless.value);
percmore = parseFloat(document.Boosttank.percmore.value);
// decide driver gas
if (document.Shock.drivergas.value == “1”){
g4=parseFloat(1.4020);
mw4=parseFloat(28.9660);
}
if (document.Shock.drivergas.value == “2”){
g4=parseFloat(1.6700);
mw4=parseFloat(39.948000);
}
if (document.Shock.drivergas.value == “3”){
g4=parseFloat(1.29700);
mw4=parseFloat(44.01000);
}
if (document.Shock.drivergas.value == “4”){
g4=parseFloat(1.66700);
mw4=parseFloat(4.002602000);
}
if (document.Shock.drivergas.value == “5”){
g4=parseFloat(1.66700);
mw4=parseFloat(20.179700);
}
if (document.Shock.drivergas.value == “6”){
g4=parseFloat(1.40100);
mw4=parseFloat(28.0134000);
}
if (document.Shock.drivergas.value == “7”){
g4=parseFloat(1.66700);
mw4=parseFloat(131.29000);
}
if (document.Shock.drivergas.value == “8”){
g4=parseFloat(1.09200);
mw4=parseFloat(146.06000);
}
ru=parseFloat(8314.510);
// document.write(“ru ” + ru + ” “);
r=ru/mw4;
ppreboost=prupture*(1-percless/100);
ppostboost=prupture*(1+percmore/100);
deltap=ppostboost-ppreboost;
t=parseFloat(document.Shock.tid.value);
deltam=deltap*drivervol/r/t;
pboosttank=deltam/boostvol*r*t+prupture;
// document.write(“pboosttank ” + pboosttank + ” “);
document.Boosttank.ppreboost.value = ppreboost*psig/ppa
document.Boosttank.ppostboost.value = ppostboost*psig/ppa
document.Boosttank.pboosttank.value = pboosttank*psig/ppa
}