forked from GGC-SD/FreeRadicals
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
mstiller7
committed
Mar 20, 2019
1 parent
e7438ee
commit 8654767
Showing
1 changed file
with
160 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,161 @@ | ||
console.log("write the conjugate base or acid associated using quotation marks"); | ||
|
||
<?xml version="1.0" encoding="utf-8"?> | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
<html> | ||
<head> | ||
<title>503 Maximum threads for service reached</title> | ||
</head> | ||
<body> | ||
<h1>Error 503 Maximum threads for service reached</h1> | ||
<p>Maximum threads for service reached</p> | ||
<h3>Guru Mediation:</h3> | ||
<p>Details: cache-atl6242-ATL 1553105868 526817195</p> | ||
<hr> | ||
<p>Varnish cache server</p> | ||
</body> | ||
</html> | ||
var ConjugateBase = "So4"; //temprary hard code untill input is created | ||
var ConjugateAcid = "Na" // same | ||
var volR1 = 100; | ||
var volR2 = 100; | ||
var MofR1 = 2.0; | ||
var MofR2 = 1.5; | ||
|
||
//discover Acid | ||
var acid, base; | ||
|
||
switch (ConjugateBase) { | ||
case "HCl" : acid = "Cl"; break; | ||
case "HBr" : acid ="Br"; break; | ||
case "HF" : acid ="F"; break; | ||
case "HI": acid ="I"; break; | ||
case "HNO3":acid ="NO3"; break; | ||
case "HClO" : acid ="ClO"; break; | ||
case "H2SO4" :acid ="SO4"; break; | ||
case "H3PO4":acid = "PO4"; break; | ||
} | ||
//discover Base | ||
switch (ConjugateAcid) { | ||
case 'Na': base = 'NaOH'; break; | ||
case 'K': base ='KOH'; break; | ||
case 'Rb': base ='RbOH'; break; | ||
case 'Li': base ='LiOH'; break; | ||
case 'Mg': base ='Mg(OH)2'; break; | ||
case 'Ca': base ='Ca(OH)2'; break; | ||
case 'Al': base ='Al(OH)3'; break; | ||
} | ||
|
||
var water = []; | ||
|
||
switch (acid) { | ||
case "HCl" : water.push(1); break; | ||
case "HBr" : water.push(1); break; | ||
case "HF" : water.push(1); break; | ||
case "HI": water.push(1); break; | ||
case "HNO3":water.push(1); break; | ||
case "HClO" : water.push(1); break; | ||
case "H2SO4" :water.push(2); break; | ||
case "H3PO4":water.push(3); break; | ||
} | ||
|
||
switch (base) { | ||
case "NaOH" : water.push(1); break; | ||
case "KOH" :water.push(1); break; | ||
case "RbOH": water.push(1); break; | ||
case "LiOH": water.push(1);break; | ||
case "Mg(OH)2" :water.push(2); break; | ||
case "Ca(OH)2":water.push(2); break; | ||
case "Al(OH)3" : water.push(3); break; | ||
} | ||
var cation; | ||
if (base.indexOf("(OH)3") != -1) { | ||
cation = base.substring(0, base.indexOf("(OH)3")) | ||
} | ||
if (base.indexOf("(OH)2") != -1) { | ||
cation = base.substring(0, base.indexOf("(OH)2")) | ||
} | ||
if (base.indexOf("OH") != -1) { | ||
cation = base.substring(0, base.indexOf("OH")) | ||
} | ||
if (base.indexOf("OH") != -1) { | ||
cation = base.substring(0, base.indexOf("OH)")) | ||
} | ||
switch (acid) { | ||
case "HCl": water.push("Cl"); break; | ||
case "HBr": water.push("Br"); break; | ||
case "HF": water.push("F"); break; | ||
case "HI": water.push("I");break; | ||
case "HNO3":water.push("NO3"); break; | ||
case "HClO": water.push("ClO"); break; | ||
case "H2SO4" :water.push("SO4"); break; | ||
case "H3PO4":water.push("PO4"); break; | ||
} | ||
if (water[0] > water[1]) { | ||
var acidCoeff = 1; | ||
var baseCoeff = water[0]/water[1]; | ||
var saltCoeff = acidCoeff; | ||
var waterCoeff = baseCoeff; | ||
water.push(acidCoeff); | ||
water.push(baseCoeff); | ||
water.push(saltCoeff); | ||
water.push(waterCoeff); | ||
}else if (water[0] < water[1]) { | ||
var acidCoeff = water[1]/water[0]; | ||
var baseCoeff = 1; | ||
var saltCoeff = baseCoeff; | ||
var waterCoeff = acidCoeff; | ||
water.push(acidCoeff); | ||
water.push(baseCoeff); | ||
water.push(saltCoeff); | ||
water.push(waterCoeff); | ||
}else{ | ||
water.push(water[0]/water[1]); | ||
water.push(1); | ||
water.push(1); | ||
water.push(1); | ||
water.push(1); | ||
} | ||
|
||
if (water[6] == 1.5) { | ||
water[6] = 4*water[6]; | ||
water[5] = water[5]; | ||
water[4] = 2*water[4]; | ||
water[3] = 2*water[3]; | ||
} | ||
|
||
//output this properly later with proper formating | ||
//console.log("The balanced reactions is: \n\n {0}{1} + {2}{3} --> {6}{4}{2}{5}{0} + {7}H2O" .format(water[3], Acid, water[4], Base, cation, water[2],water[5], water[6] )) # --> {}{}{}{} + H2O" | ||
|
||
var molofR1 = MofR1*volR1/1000; | ||
var molofR2 = MofR2*volR2/1000; | ||
|
||
var molSaltGivenR1 = molofR1*water[5]/water[3]; | ||
var molWaterGivenR1 = molofR1*water[6]/water[3]; | ||
var molSaltGivenR2 = molofR1*water[5]/water[4]; | ||
var molWaterGivenR2 = molofR1*water[6]/water[4]; | ||
|
||
var atomic_weights = { "He": 4.002, "Li" : 6.94, "Be" : 9.012, | ||
"B" : 10.81, "C" : 12.011, "N" : 14.007, "O" : 15.999, "F" : 19.00, | ||
"Ne" : 20.1797, "Na" : 22.989, "Mg" : 24.305, "Al" : 26.981, "Si": 28.085, | ||
"P": 30.973, "S" : 32.06, "Cl" : 35.45, "Ar" : 39.948, "K": 39.0983, "Ca": 40.078, | ||
"Sc": 44.955, "Ti" : 47.867, "V" : 50.941, "Cr" : 51.996, "Mn": 54.938, "Fe": 55.845, | ||
"Co": 58.933, "Ni": 58.693, "Cu" : 63.546, "Zn" : 65.38, "Ga": 69.723, "Ge": 72.630, | ||
"As" : 74.921, "Se": 78.971, "Br": 79.904, "Kr": 83.798, "Rb": 85.4678, "Sr": 87.62, | ||
"Y": 88.905, "Zr" : 91.224, "Nb": 92.906, "Mo": 95.95, "Tc": 97, "Ru": 101.07, "Rh": 102.905, | ||
"Pd": 106.42, "Ag": 107.868, "Cd": 112.414, "In": 114.818, "Sn": 118.710, "Sb": 121.760, "Te": 127.760, | ||
"I": 126.904, "Xe" : 131.293, "Cs": 132.905, "Ba": 137.327, "La": 138.905, "Ce": 140.116, "Pr": 140.907, | ||
"Nd": 144.242, "Pm": 145, "Sm": 150.36, "Eu": 151.964, "Gd": 157.25, "Tb": 158.925, "Dy": 162.500, "Ho":164.930, | ||
"Er" : 167.259, "Tm":168.934, "Yb": 173.045, "Lu": 174.9668, "Hf": 178.49, "Ta":180.947, "W": 183.84, "Re": 186.207, | ||
"Os": 190.23, "Ir": 192.21, "Pt": 195.084, "Au": 196.966, "Hg": 200.592, "Tl": 204.38, "Pb": 207.2, "Bi": 208.980, | ||
"Po" : 209, "At": 210, "Rn": 222, "Fr": 223, "Ra": 222, "Ac": 227, "Th": 232.0377, "Pa": 231.035, "U": 238.028, "(NO3)": 62.00, | ||
"O2": 32.00, "(CO3)": 60.01, "(ClO3)": 83.447, "OH": 17.01, "(PO4)": 94.9714, "SO4": 96.06, "(Cr2O7)":215.985, "(NH4)" : 18.00}; | ||
|
||
var formula_weight_acid = water[0]* 1.008 + atomic_weights[ConjugateBase] | ||
var formula_weight_base = water[1]*atomic_weights["OH"] + atomic_weights[ConjugateAcid] | ||
var formula_weight_water = 2*1.008 + 15.999 | ||
var formula_weight_salt = water[1]*atomic_weights[ConjugateBase] + water[0]*atomic_weights[ConjugateAcid] | ||
console.log(formula_weight_acid) | ||
console.log(formula_weight_base) | ||
console.log(formula_weight_water) | ||
console.log(formula_weight_salt) | ||
|
||
if (molSaltGivenR1 < molSaltGivenR2) { | ||
var grams_of_salt = molSaltGivenR2 * formula_weight_salt | ||
//print("{} is the limiting reactant giving {} moles and {} grams of salt". format(Acid,mol_salt_given_R1, grams_of_salt)) | ||
}else { | ||
var grams_of_salt = molSaltGivenR2 * formula_weight_salt | ||
//print("{} is the limiting reactant giving {} moles and {} grams of salt". format(Base,mol_salt_given_R2, grams_of_salt)) | ||
} | ||
if (molWaterGivenR1 < molWaterGivenR1) { | ||
var grams_of_water = molWaterGivenR1 * formula_weight_water | ||
//print("{} is the limiting reactant giving {} moles and {} grams of water". format(Acid,mol_water_given_R1, grams_of_water)) | ||
}else { | ||
grams_of_water = molWaterGivenR2 * formula_weight_water | ||
//print("{} is the limiting reactant giving {} moles and {} grams of water". format(Base,mol_water_given_R2, grams_of_water)) | ||
} |