glue.py
Go to the documentation of this file.
1 from atomicdata import *
2 from util import *
3 
4 compositions = {
5  # Methacrylic acid
6  'adhesive MAA' : { 'C':4, 'H':6, 'O':2 },
7 
8  # methyl methacrylate
9  'adhesive MMA' : { 'C':5, 'H':8, 'O':2 },
10 
11  # Cholorosulfonated polyethylene
12  'adhesive CSP' : { 'C':101, 'H':173, 'Cl':13, 'O':2, 'S':1 },
13 
14  # Carbon tetrachloride
15  'adhesive CCl4' : { 'C':1, 'Cl':4 },
16 
17  # p(BD/MMA/STY), CAS 25053092,
18  # 2-Propenoic acid, 2-methyl-, methyl ester, polymer with
19  # 1,3-butadiene and ethenylbenzene
20  # Not sure this is really an exact formula. Given on one data sheet and
21  # listed as "trade secret" on another.
22  'adhesive other': { 'C':17, 'H': 22, 'O': 2 },
23 
24  'activator MMA': { 'C':5, 'H':8, 'O':2 },
25 
26  # 3,5-Diethyl-1,2-dihydro-1-phenyl-2-propylpyridine
27  'activator PDHP': { 'C':18, 'H':25, 'N': 1}
28 }
29 
30 fractions = {
31  # Trade secret components are ignored, since we have no idea
32  # what they are. The rest is scaled up to match.
33 
34  # One data sheet says 1-10 and another says 5-10...
35  'adhesive MAA': 6,
36 
37  # Listed as 30-60 on one sheet and 40-60 on another. Take into account
38  # that doc-8946 suggests that 5% of the cured mixture is lost to
39  # outgassing MMA vapors.
40  'adhesive MMA': 47.7-2*5,
41 
42  # Listed as 20-30 on one sheet and 30-60 on another. What.
43  'adhesive CSP': 30,
44 
45  # 0.1-1 on one sheet, <1 on another.
46  'adhesive CCl4': 0.3,
47 
48  # Both sheets say 60-100. Amazing!
49  'activator MMA': 80,
50 
51  # 1-5 on one sheet and 1-10 on another
52  'activator PDHP': 4,
53 }
54 
55 
56 def tot_weight(compos):
57  weight = 0
58  for element, number in compos.items():
59  weight += number * atomic_weight[element]
60  return weight
61 
63  tions = 0
64  for material, fraction in fractions.items():
65  tions += fraction
66  return tions
67 
68 def elem_frac(compos, elem):
69  if elem in compos:
70  return compos[elem] * atomic_weight[elem] / tot_weight(compos)
71  else:
72  return 0
73 
74 def elem_frac_total(elem):
75  frac = 0
76  for material, compos in compositions.items():
77  frac += elem_frac(compos, elem) * fractions[material]
78  return frac / tot_fractions()
79 
81  return make_composition("glue", fractions, compositions)
def tot_weight(compos)
Definition: glue.py:56
def glue_composition()
Definition: glue.py:80
def elem_frac_total(elem)
Definition: glue.py:74
def elem_frac(compos, elem)
Definition: glue.py:68
def tot_fractions()
Definition: glue.py:62
def make_composition(name, fractions, compositions)
Definition: util.py:46