Use += and -= where appropriate
This commit is contained in:
parent
e4c45b6429
commit
f90bf978df
22 changed files with 179 additions and 191 deletions
|
|
@ -149,7 +149,7 @@ class XMLnode(object):
|
|||
if value[0] != ' ':
|
||||
value = ' '+value
|
||||
if value[-1] != ' ':
|
||||
value = value+' '
|
||||
value += ' '
|
||||
s.append(value+'-->')
|
||||
|
||||
def write_attribs(self, s):
|
||||
|
|
@ -2176,7 +2176,7 @@ class lattice_solid(phase):
|
|||
for lat in lattices:
|
||||
_sp = ""
|
||||
for spp in lat._species:
|
||||
_sp = _sp + spp
|
||||
_sp += spp
|
||||
s = _sp.split()
|
||||
for sp in s:
|
||||
if not sp in slist:
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ class MixtureFrame(Frame):
|
|||
k = s.index
|
||||
if row > 25:
|
||||
row = 0
|
||||
col = col + 2
|
||||
col += 2
|
||||
l = Label(self.entries,text='Species')
|
||||
l.grid(column=col,row=row,sticky=E+W)
|
||||
e1 = Entry(self.entries)
|
||||
|
|
@ -222,7 +222,7 @@ class MixtureFrame(Frame):
|
|||
e1['textvariable'] = self.var
|
||||
e1.config(state=DISABLED)
|
||||
e1.config(bg='lightyellow',relief=RIDGE)
|
||||
row = row + 1
|
||||
row += 1
|
||||
|
||||
spname = s.name
|
||||
val = self.comp[k]
|
||||
|
|
@ -240,8 +240,8 @@ class MixtureFrame(Frame):
|
|||
if showit:
|
||||
l.grid(column= col ,row=row,sticky=E)
|
||||
entry1.grid(column=col+1,row=row)
|
||||
n=n+1
|
||||
row = row + 1
|
||||
n += 1
|
||||
row += 1
|
||||
if equil == 1:
|
||||
entry1.config(state=DISABLED,bg='lightgray')
|
||||
## if self.c.hide.get():
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ class ControlWindow(Frame):
|
|||
i = 0
|
||||
for f in funcs:
|
||||
filemenu.add_command(label=f[0], command=f[1])
|
||||
i = i + 1
|
||||
i += 1
|
||||
filebutton['menu']=filemenu
|
||||
return filemenu
|
||||
|
||||
|
|
|
|||
|
|
@ -338,8 +338,8 @@ class DataFrame(Frame):
|
|||
ymax = ymax*1.1
|
||||
dy = abs(ymax - ymin)
|
||||
else:
|
||||
ymin = ymin - 0.1*dy
|
||||
ymax = ymax + 0.1*dy
|
||||
ymin -= 0.1*dy
|
||||
ymax += 0.1*dy
|
||||
dy = abs(ymax - ymin)
|
||||
|
||||
p10 = math.floor(math.log10(0.1*dy))
|
||||
|
|
@ -348,7 +348,7 @@ class DataFrame(Frame):
|
|||
i = 0
|
||||
while dy/fctr > 5:
|
||||
fctr = mm[i % 3]*fctr
|
||||
i = i + 1
|
||||
i += 1
|
||||
ymin = fctr*math.floor(ymin/fctr)
|
||||
ymax = fctr*(math.floor(ymax/fctr + 1))
|
||||
return (ymin, ymax, fctr)
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ def plotLimits(ypts, f=0.0, ndiv=5, logscale=0):
|
|||
## dy = abs(ymax - ymin)
|
||||
## else:
|
||||
else:
|
||||
ymin = ymin - f*dy
|
||||
ymax = ymax + f*dy
|
||||
ymin -= f*dy
|
||||
ymax += f*dy
|
||||
dy = abs(ymax - ymin)
|
||||
|
||||
try:
|
||||
|
|
@ -46,7 +46,7 @@ def plotLimits(ypts, f=0.0, ndiv=5, logscale=0):
|
|||
i = 0
|
||||
while dy/fctr > ndiv:
|
||||
fctr = mm[i % 3]*fctr
|
||||
i = i + 1
|
||||
i += 1
|
||||
ymin = fctr*math.floor(ymin/fctr)
|
||||
ymax = fctr*(math.floor(ymax/fctr+0.999))
|
||||
|
||||
|
|
@ -212,7 +212,7 @@ class DataGraph(Frame):
|
|||
if self.logscale[1]:
|
||||
ytick *= 10.0
|
||||
n = 10
|
||||
else: ytick = ytick + dy
|
||||
else: ytick += dy
|
||||
if ytick <= ymax:
|
||||
self.minorTicks(ytick0, ytick, xmin, n, 5, 1)
|
||||
self.minorTicks(ytick0, ytick, xmax, n, -5, 1)
|
||||
|
|
@ -228,7 +228,7 @@ class DataGraph(Frame):
|
|||
if self.logscale[0]:
|
||||
xtick *= 10.0
|
||||
n = 10
|
||||
else: xtick = xtick + dx
|
||||
else: xtick += dx
|
||||
if xtick <= xmax:
|
||||
self.minorTicks(xtick - dx, xtick, ymin, n, 5, 0)
|
||||
self.minorTicks(xtick - dx, xtick, ymax, n, -5, 0)
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class EditFrame(Frame):
|
|||
x = Label(self.eframe,text=el,fg='darkblue')
|
||||
x.grid(column = n, row=0)
|
||||
self.element_labels.append(x)
|
||||
n = n + 1
|
||||
n += 1
|
||||
b=Button(self.eframe,text='Element',command=self.chooseElements, default=ACTIVE)
|
||||
b.grid(column=0, row=1, columnspan=10)
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ class EditFrame(Frame):
|
|||
onvalue = 1, offvalue = 0) )
|
||||
self.spcheck[i].grid(row = r, column = c, sticky = N+W)
|
||||
self.spcheck[i].bind("<Button-3>", self.editSpecies)
|
||||
c = c + 1
|
||||
c += 1
|
||||
if c > 4:
|
||||
c, r = 0, r + 1
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ class EditFrame(Frame):
|
|||
i = 0
|
||||
for el in self.app.mech.elementNames():
|
||||
self.addEntry(elframe,el,i,0,self.mech.nAtoms(sp, el))
|
||||
i = i + 1
|
||||
i += 1
|
||||
|
||||
# thermo
|
||||
thframe = Frame(e)
|
||||
|
|
@ -194,6 +194,6 @@ class EditFrame(Frame):
|
|||
x = Label(self.eframe,text=el.symbol(),fg='darkblue')
|
||||
x.grid(column = n, row=0)
|
||||
self.element_labels.append(x)
|
||||
n = n + 1
|
||||
n += 1
|
||||
|
||||
self.app.makeWindows()
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ class PeriodicTable(Frame):
|
|||
self.c[el].pack()
|
||||
self.c[el].bind("<Button-1>",self.setColors)
|
||||
self.element[el].grid(row=_pos[el][0]-1, column = _pos[el][1]-1,sticky=W+N+E+S)
|
||||
n = n + 1
|
||||
n += 1
|
||||
Label(self.entries,text='select the elements to be included, and then press OK.\nTo view the properties of the selected elements, press Display ').grid(row=0, column=2, columnspan=10, sticky=W)
|
||||
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ class ElementPropertyFrame(Frame):
|
|||
row=n,
|
||||
sticky=W,
|
||||
padx=10)
|
||||
n = n + 1
|
||||
n += 1
|
||||
|
||||
|
||||
# utility functions
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class Graph(Frame):
|
|||
last_x, last_y, last_color = pt
|
||||
else:
|
||||
last_x, last_y, last_color = self.last_points[i]
|
||||
i = i + 1
|
||||
i += 1
|
||||
xpt = (x - self.minX)/(float(self.maxX - self.minX)/self.graph_w) + 1.5
|
||||
ypt = (self.maxY-y)/(float(self.maxY - self.minY)/self.graph_h) - 1.5
|
||||
last_xpt = (last_x - self.minX)/(float(self.maxX - self.minX)/self.graph_w) + 1.5
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ class SpeciesKineticsFrame(Frame):
|
|||
k = s.index
|
||||
if row > 15:
|
||||
row = 0
|
||||
col = col + 2
|
||||
col += 2
|
||||
l = Label(self.entries,text='Species')
|
||||
l.grid(column=col,row=row,sticky=E+W)
|
||||
e1 = Entry(self.entries)
|
||||
|
|
@ -158,7 +158,7 @@ class SpeciesKineticsFrame(Frame):
|
|||
e1['textvariable'] = self.var
|
||||
e1.config(state=DISABLED)
|
||||
e1.config(bg='lightyellow',relief=RIDGE)
|
||||
row = row + 1
|
||||
row += 1
|
||||
|
||||
spname = s.name
|
||||
val = self.comp[k]
|
||||
|
|
@ -176,8 +176,8 @@ class SpeciesKineticsFrame(Frame):
|
|||
if showit:
|
||||
l.grid(column= col ,row=row,sticky=E)
|
||||
entry1.grid(column=col+1,row=row)
|
||||
n=n+1
|
||||
row = row + 1
|
||||
n += 1
|
||||
row += 1
|
||||
entry1.config(state=DISABLED,bg='lightgray')
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class MechManager(Frame):
|
|||
i = 1
|
||||
#for m in self.mechanisms:
|
||||
# self.mlist.append((m[0], self.setMechanism, 'check', self.mechindx, i))
|
||||
# i = i + 1
|
||||
# i += 1
|
||||
#self.mlist.append([])
|
||||
|
||||
self.mechmenu = make_menu('Mixtures', self, self.mlist)
|
||||
|
|
@ -76,7 +76,7 @@ class MechManager(Frame):
|
|||
## Radiobutton(self.mfr, text=name, variable=self.mechindx,
|
||||
## value = i,
|
||||
## command=self.setMechanism).grid(row=i,column=0)
|
||||
## i = i + 1
|
||||
## i += 1
|
||||
## print 'end'
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ class NewFlowFrame(Frame):
|
|||
## k = s.index
|
||||
## if row > 15:
|
||||
## row = 0
|
||||
## col = col + 2
|
||||
## col += 2
|
||||
## l = Label(self.entries,text='Species')
|
||||
## l.grid(column=col,row=row,sticky=E+W)
|
||||
## e1 = Entry(self.entries)
|
||||
|
|
@ -92,7 +92,7 @@ class NewFlowFrame(Frame):
|
|||
## e1['textvariable'] = self.var
|
||||
## e1.config(state=DISABLED)
|
||||
## e1.config(bg='lightyellow',relief=RIDGE)
|
||||
## row = row + 1
|
||||
## row += 1
|
||||
|
||||
## spname = s.name
|
||||
## val = self.comp[k]
|
||||
|
|
@ -110,8 +110,8 @@ class NewFlowFrame(Frame):
|
|||
## if showit:
|
||||
## l.grid(column= col ,row=row,sticky=E)
|
||||
## entry1.grid(column=col+1,row=row)
|
||||
## n=n+1
|
||||
## row = row + 1
|
||||
## n+=1
|
||||
## row += 1
|
||||
## if self.c.hide.get():
|
||||
## b=Button(self.entries,height=1,command=self.maximize)
|
||||
## else:
|
||||
|
|
|
|||
|
|
@ -48,9 +48,9 @@ class SpeciesFrame(Frame):
|
|||
self.c[el].pack()
|
||||
self.c[el].bind("<Button-1>",self.setColors)
|
||||
self.species[el].grid(row= rw, column = col,sticky=W+N+E+S)
|
||||
col = col + 1
|
||||
col += 1
|
||||
if col > ncol:
|
||||
rw = rw + 1
|
||||
rw += 1
|
||||
col = 0
|
||||
Label(self.entries,text='select the species to be included, and then press OK.\nTo view the properties of the selected species, press Display ').grid(row=0, column=2, columnspan=10, sticky=W)
|
||||
|
||||
|
|
@ -144,7 +144,7 @@ class SpeciesFrame(Frame):
|
|||
## row=n,
|
||||
## sticky=W,
|
||||
## padx=10)
|
||||
## n = n + 1
|
||||
## n += 1
|
||||
|
||||
|
||||
# utility functions
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class SpeciesInfo(Label):
|
|||
.grid(row=0,column=0,sticky=N+W)
|
||||
for el, c in self.sp.composition():
|
||||
Label(self.eframe,text=repr(int(c))+' '+el).grid(row=0,column=r)
|
||||
r = r + 1
|
||||
r += 1
|
||||
|
||||
|
||||
# thermodynamic properties
|
||||
|
|
@ -73,7 +73,7 @@ class SpeciesInfo(Label):
|
|||
p.grid(row=r,column=1,sticky=W)
|
||||
p.v.config(state=DISABLED,bg='lightgray')
|
||||
self.prop.append(p)
|
||||
r = r + 1
|
||||
r += 1
|
||||
|
||||
tmin = self.sp.minTemp
|
||||
tmax = self.sp.maxTemp
|
||||
|
|
@ -100,7 +100,7 @@ class SpeciesInfo(Label):
|
|||
self.cpdata.append((t,self.sp.cp_R(t)))
|
||||
self.hdata.append((t,self.sp.enthalpy_RT(t)))
|
||||
self.sdata.append((t,self.sp.entropy_R(t)))
|
||||
t = t + n
|
||||
t += n
|
||||
|
||||
# specific heat
|
||||
|
||||
|
|
@ -210,8 +210,8 @@ class SpeciesInfo(Label):
|
|||
ymax = ymax*1.1
|
||||
dy = abs(ymax - ymin)
|
||||
else:
|
||||
ymin = ymin - 0.1*dy
|
||||
ymax = ymax + 0.1*dy
|
||||
ymin -= 0.1*dy
|
||||
ymax += 0.1*dy
|
||||
dy = abs(ymax - ymin)
|
||||
|
||||
p10 = math.floor(math.log10(0.1*dy))
|
||||
|
|
@ -220,7 +220,7 @@ class SpeciesInfo(Label):
|
|||
i = 0
|
||||
while dy/fctr > 5:
|
||||
fctr = mm[i % 3]*fctr
|
||||
i = i + 1
|
||||
i += 1
|
||||
ymin = fctr*math.floor(ymin/fctr)
|
||||
ymax = fctr*(math.floor(ymax/fctr + 1))
|
||||
return (ymin, ymax, fctr)
|
||||
|
|
@ -241,7 +241,7 @@ class SpeciesInfo(Label):
|
|||
plot.join([(tmax - 0.05*(tmax - tmin), ytick, 'gray')])
|
||||
plot.last_points = []
|
||||
|
||||
ytick = ytick + dtick
|
||||
ytick += dtick
|
||||
|
||||
def finished(self,event=None):
|
||||
self.new.destroy()
|
||||
|
|
|
|||
|
|
@ -57,11 +57,11 @@ class UnitVar(Frame):
|
|||
value=each,
|
||||
command=self.update,
|
||||
).grid(column=c, row=r, sticky=W)
|
||||
r=r+1
|
||||
r += 1
|
||||
if (r>10):
|
||||
r=0
|
||||
c=c+1
|
||||
r=r+1
|
||||
c += 1
|
||||
r += 1
|
||||
|
||||
b=Button(self.new,text='OK',command=self.finished, default=ACTIVE)
|
||||
b.grid(column=c, row=r)
|
||||
|
|
|
|||
|
|
@ -103,9 +103,9 @@ class unit(object):
|
|||
exponent = self.derivation[i]
|
||||
if exponent == 0: continue
|
||||
if exponent == 1:
|
||||
str = str + " %s" % (self._labels[i])
|
||||
str += " %s" % (self._labels[i])
|
||||
else:
|
||||
str = str + " %s^%d" % (self._labels[i], exponent)
|
||||
str += " %s^%d" % (self._labels[i], exponent)
|
||||
|
||||
return str
|
||||
|
||||
|
|
|
|||
|
|
@ -531,7 +531,7 @@ int ChemEquil::equilibrate(thermo_t& s, const char* XYstr,
|
|||
dt = 0.5*((t0) + tmaxPhase) - t0;
|
||||
}
|
||||
// update the T estimate
|
||||
t0 = t0 + dt;
|
||||
t0 += dt;
|
||||
if (t0 <= tminPhase || t0 >= tmaxPhase || t0 < 100.0) {
|
||||
throw CanteraError("ChemEquil::equilibrate", "T out of bounds");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ bool VCS_SOLVE::vcs_wellPosed(VCS_PROB* vprob)
|
|||
{
|
||||
double sum = 0.0;
|
||||
for (size_t e = 0; e < vprob->ne; e++) {
|
||||
sum = sum + vprob->gai[e];
|
||||
sum += vprob->gai[e];
|
||||
}
|
||||
if (sum < 1.0E-20) {
|
||||
plogf("vcs_wellPosed: Element abundance is close to zero\n");
|
||||
|
|
|
|||
|
|
@ -1936,14 +1936,14 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
* and the other is negative
|
||||
*/
|
||||
if (charge(i)*charge(j) < 0) {
|
||||
F = F + molality[i]*molality[j] * BprimeMX[counterIJ];
|
||||
F += molality[i]*molality[j] * BprimeMX[counterIJ];
|
||||
}
|
||||
/*
|
||||
* Both species have a non-zero charge, and they
|
||||
* have the same sign
|
||||
*/
|
||||
if (charge(i)*charge(j) > 0) {
|
||||
F = F + molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
F += molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
}
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
printf(" F = %10.6f \n", F);
|
||||
|
|
@ -1984,7 +1984,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
|
||||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j] *
|
||||
(2.0*BMX[counterIJ] + molarcharge*CMX[counterIJ]);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2003,7 +2003,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
// an inner sum over all anions
|
||||
if (charge(k) < 0.0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk[n];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (psi_ijk[n] != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2019,7 +2019,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
if (charge(j) > 0.0) {
|
||||
// sum over all cations
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi[counterIJ]);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j] * Phi[counterIJ])!= 0.0) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2032,7 +2032,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
if (charge(k) < 0.0) {
|
||||
// two inner sums over anions
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk[n];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (psi_ijk[n] != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2045,7 +2045,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 + (fabs(charge(i))*
|
||||
sum4 += (fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX[counterIJ2]);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) {
|
||||
|
|
@ -2062,7 +2062,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
* Handle neutral j species
|
||||
*/
|
||||
if (charge(j) == 0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj(j,i);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2080,7 +2080,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + k;
|
||||
double zeta = psi_ijk[n];
|
||||
if (zeta != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta;
|
||||
sum5 += molality[j]*molality[k]*zeta;
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
printf(" Zeta term on %-16s m_n m_a zeta_nMa = %10.5f\n", snj.c_str(),
|
||||
|
|
@ -2135,7 +2135,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
* For Anions, do the cation interactions.
|
||||
*/
|
||||
if (charge(j) > 0) {
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX[counterIJ]+molarcharge*CMX[counterIJ]);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2149,7 +2149,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
// an inner sum over all cations
|
||||
if (charge(k) > 0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk[n];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (psi_ijk[n] != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2168,7 +2168,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi[counterIJ]);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j] * Phi[counterIJ])!= 0.0) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2181,7 +2181,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
if (charge(k) > 0.0) {
|
||||
// two inner sums over cations
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk[n];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (psi_ijk[n] != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2194,9 +2194,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 +
|
||||
(fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX[counterIJ2]);
|
||||
sum4 += fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX[counterIJ2];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2212,7 +2211,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
* for Anions, do the neutral species interaction
|
||||
*/
|
||||
if (charge(j) == 0.0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj(j,i);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2231,7 +2230,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
|
||||
double zeta = psi_ijk[n];
|
||||
if (zeta != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta;
|
||||
sum5 += molality[j]*molality[k]*zeta;
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
printf(" Zeta term on %-16s m_n m_c zeta_ncX = %10.5f\n", snj.c_str(),
|
||||
|
|
@ -2263,7 +2262,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
double sum1 = 0.0;
|
||||
double sum3 = 0.0;
|
||||
for (size_t j = 1; j < m_kk; j++) {
|
||||
sum1 = sum1 + molality[j]*2.0*m_Lambda_nj(i,j);
|
||||
sum1 += molality[j]*2.0*m_Lambda_nj(i,j);
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (m_Lambda_nj(i,j) != 0.0) {
|
||||
std::string snj = speciesName(j) + ":";
|
||||
|
|
@ -2278,7 +2277,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
size_t n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk[n];
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
if (psi_ijk[n] != 0.0) {
|
||||
std::string snj = speciesName(j) + "," + speciesName(k) + ":";
|
||||
|
|
@ -2343,7 +2342,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
|
||||
sum1 = sum1 + molality[j]*molality[k]*
|
||||
sum1 += molality[j]*molality[k]*
|
||||
(BphiMX[counterIJ] + molarcharge*CMX[counterIJ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -2361,13 +2360,12 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum2 = sum2 + molality[j]*molality[k]*Phiphi[counterIJ];
|
||||
sum2 += molality[j]*molality[k]*Phiphi[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) < 0.0) {
|
||||
// species m is an anion
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum2 = sum2 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk[n];
|
||||
sum2 += molality[j]*molality[k]*molality[m]*psi_ijk[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2391,12 +2389,11 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum3 = sum3 + molality[j]*molality[k]*Phiphi[counterIJ];
|
||||
sum3 += molality[j]*molality[k]*Phiphi[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) > 0.0) {
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum3 = sum3 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk[n];
|
||||
sum3 += molality[j]*molality[k]*molality[m]*psi_ijk[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2409,16 +2406,16 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
|
|||
if (charge(j) == 0) {
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
sum4 = sum4 + molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
sum4 += molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
}
|
||||
if (charge(k) > 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
sum5 += molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
}
|
||||
if (charge(k) == 0.0) {
|
||||
if (k > j) {
|
||||
sum6 = sum6 + molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
sum6 += molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
} else if (k == j) {
|
||||
sum6 = sum6 + 0.5 * molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
sum6 += 0.5 * molality[j]*molality[k]*m_Lambda_nj(j,k);
|
||||
}
|
||||
}
|
||||
if (charge(k) < 0.0) {
|
||||
|
|
@ -2840,14 +2837,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
* and the other is negative
|
||||
*/
|
||||
if (charge(i)*charge(j) < 0) {
|
||||
dFdT = dFdT + molality[i]*molality[j] * BprimeMX_L[counterIJ];
|
||||
dFdT += molality[i]*molality[j] * BprimeMX_L[counterIJ];
|
||||
}
|
||||
/*
|
||||
* Both species have a non-zero charge, and they
|
||||
* have the same sign, e.g., both positive or both negative.
|
||||
*/
|
||||
if (charge(i)*charge(j) > 0) {
|
||||
dFdT = dFdT + molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
dFdT += molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
}
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
printf(" dFdT = %10.6f \n", dFdT);
|
||||
|
|
@ -2879,7 +2876,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
|
||||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
/*
|
||||
|
|
@ -2891,7 +2888,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
// an inner sum over all anions
|
||||
if (charge(k) < 0.0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_L[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_L[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2900,20 +2897,20 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
if (charge(j) > 0.0) {
|
||||
// sum over all cations
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_L[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_L[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
// two inner sums over anions
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_L[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_L[n];
|
||||
/*
|
||||
* Find the counterIJ for the j,k interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 + (fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_L[counterIJ2]);
|
||||
sum4 += fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_L[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2922,7 +2919,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
* Handle neutral j species
|
||||
*/
|
||||
if (charge(j) == 0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_L(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_L(j,i);
|
||||
}
|
||||
/*
|
||||
* Zeta interaction term
|
||||
|
|
@ -2934,7 +2931,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + k;
|
||||
double zeta_L = psi_ijk_L[n];
|
||||
if (zeta_L != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_L;
|
||||
sum5 += molality[j]*molality[k]*zeta_L;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2977,14 +2974,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
* For Anions, do the cation interactions.
|
||||
*/
|
||||
if (charge(j) > 0) {
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
for (size_t k = j+1; k < m_kk; k++) {
|
||||
// an inner sum over all cations
|
||||
if (charge(k) > 0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_L[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_L[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2996,21 +2993,20 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_L[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_L[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) > 0.0) {
|
||||
// two inner sums over cations
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_L[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_L[n];
|
||||
/*
|
||||
* Find the counterIJ for the symmetric binary interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 +
|
||||
(fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_L[counterIJ2]);
|
||||
sum4 += fabs(charge(i)) *
|
||||
molality[j]*molality[k]*CMX_L[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3019,7 +3015,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
* for Anions, do the neutral species interaction
|
||||
*/
|
||||
if (charge(j) == 0.0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_L(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_L(j,i);
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) > 0.0) {
|
||||
size_t izeta = j;
|
||||
|
|
@ -3028,7 +3024,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
|
||||
double zeta_L = psi_ijk_L[n];
|
||||
if (zeta_L != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_L;
|
||||
sum5 += molality[j]*molality[k]*zeta_L;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3054,7 +3050,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
double sum1 = 0.0;
|
||||
double sum3 = 0.0;
|
||||
for (size_t j = 1; j < m_kk; j++) {
|
||||
sum1 = sum1 + molality[j]*2.0*m_Lambda_nj_L(i,j);
|
||||
sum1 += molality[j]*2.0*m_Lambda_nj_L(i,j);
|
||||
/*
|
||||
* Zeta term -> we piggyback on the psi term
|
||||
*/
|
||||
|
|
@ -3062,7 +3058,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
size_t n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_L[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_L[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3113,7 +3109,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum1 = sum1 + molality[j]*molality[k]*
|
||||
sum1 += molality[j]*molality[k]*
|
||||
(BphiMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -3131,13 +3127,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum2 = sum2 + molality[j]*molality[k]*Phiphi_L[counterIJ];
|
||||
sum2 += molality[j]*molality[k]*Phiphi_L[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) < 0.0) {
|
||||
// species m is an anion
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum2 = sum2 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
|
||||
sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3161,12 +3156,11 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum3 = sum3 + molality[j]*molality[k]*Phiphi_L[counterIJ];
|
||||
sum3 += molality[j]*molality[k]*Phiphi_L[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) > 0.0) {
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum3 = sum3 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
|
||||
sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3179,16 +3173,16 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
|
|||
if (charge(j) == 0) {
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
sum4 = sum4 + molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
sum4 += molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
}
|
||||
if (charge(k) > 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
sum5 += molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
}
|
||||
if (charge(k) == 0.0) {
|
||||
if (k > j) {
|
||||
sum6 = sum6 + molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
sum6 += molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
} else if (k == j) {
|
||||
sum6 = sum6 + 0.5 * molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
sum6 += 0.5 * molality[j]*molality[k]*m_Lambda_nj_L(j,k);
|
||||
}
|
||||
}
|
||||
if (charge(k) < 0.0) {
|
||||
|
|
@ -3597,14 +3591,14 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
* and the other is negative
|
||||
*/
|
||||
if (charge(i)*charge(j) < 0) {
|
||||
d2FdT2 = d2FdT2 + molality[i]*molality[j] * BprimeMX_LL[counterIJ];
|
||||
d2FdT2 += molality[i]*molality[j] * BprimeMX_LL[counterIJ];
|
||||
}
|
||||
/*
|
||||
* Both species have a non-zero charge, and they
|
||||
* have the same sign, e.g., both positive or both negative.
|
||||
*/
|
||||
if (charge(i)*charge(j) > 0) {
|
||||
d2FdT2 = d2FdT2 + molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
d2FdT2 += molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
}
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
printf(" d2FdT2 = %10.6f \n", d2FdT2);
|
||||
|
|
@ -3636,7 +3630,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
|
||||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
/*
|
||||
|
|
@ -3648,7 +3642,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
// an inner sum over all anions
|
||||
if (charge(k) < 0.0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3657,20 +3651,20 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
if (charge(j) > 0.0) {
|
||||
// sum over all cations
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_LL[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_LL[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
// two inner sums over anions
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
/*
|
||||
* Find the counterIJ for the j,k interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 + (fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_LL[counterIJ2]);
|
||||
sum4 += fabs(charge(i)) *
|
||||
molality[j]*molality[k]*CMX_LL[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3679,7 +3673,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
* Handle neutral j species
|
||||
*/
|
||||
if (charge(j) == 0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_LL(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_LL(j,i);
|
||||
/*
|
||||
* Zeta interaction term
|
||||
*/
|
||||
|
|
@ -3690,7 +3684,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + k;
|
||||
double zeta_LL = psi_ijk_LL[n];
|
||||
if (zeta_LL != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_LL;
|
||||
sum5 += molality[j]*molality[k]*zeta_LL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3733,14 +3727,14 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
* For Anions, do the cation interactions.
|
||||
*/
|
||||
if (charge(j) > 0) {
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
for (size_t k = j+1; k < m_kk; k++) {
|
||||
// an inner sum over all cations
|
||||
if (charge(k) > 0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3752,21 +3746,20 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_LL[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_LL[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) > 0.0) {
|
||||
// two inner sums over cations
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
/*
|
||||
* Find the counterIJ for the symmetric binary interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 +
|
||||
(fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_LL[counterIJ2]);
|
||||
sum4 += fabs(charge(i)) *
|
||||
molality[j]*molality[k]*CMX_LL[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3775,7 +3768,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
* for Anions, do the neutral species interaction
|
||||
*/
|
||||
if (charge(j) == 0.0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_LL(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_LL(j,i);
|
||||
/*
|
||||
* Zeta interaction term
|
||||
*/
|
||||
|
|
@ -3787,7 +3780,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
|
||||
double zeta_LL = psi_ijk_LL[n];
|
||||
if (zeta_LL != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_LL;
|
||||
sum5 += molality[j]*molality[k]*zeta_LL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3812,7 +3805,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
double sum1 = 0.0;
|
||||
double sum3 = 0.0;
|
||||
for (size_t j = 1; j < m_kk; j++) {
|
||||
sum1 = sum1 + molality[j]*2.0*m_Lambda_nj_LL(i,j);
|
||||
sum1 += molality[j]*2.0*m_Lambda_nj_LL(i,j);
|
||||
/*
|
||||
* Zeta term -> we piggyback on the psi term
|
||||
*/
|
||||
|
|
@ -3820,7 +3813,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
size_t n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_LL[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3872,7 +3865,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
|
||||
sum1 = sum1 + molality[j]*molality[k]*
|
||||
sum1 += molality[j]*molality[k] *
|
||||
(BphiMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -3890,13 +3883,12 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum2 = sum2 + molality[j]*molality[k]*Phiphi_LL[counterIJ];
|
||||
sum2 += molality[j]*molality[k]*Phiphi_LL[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) < 0.0) {
|
||||
// species m is an anion
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum2 = sum2 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
|
||||
sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3921,12 +3913,11 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
|
||||
sum3 = sum3 + molality[j]*molality[k]*Phiphi_LL[counterIJ];
|
||||
sum3 += molality[j]*molality[k]*Phiphi_LL[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) > 0.0) {
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum3 = sum3 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
|
||||
sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3939,16 +3930,16 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
|
|||
if (charge(j) == 0) {
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
sum4 = sum4 + molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
sum4 += molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
}
|
||||
if (charge(k) > 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
sum5 += molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
}
|
||||
if (charge(k) == 0.0) {
|
||||
if (k > j) {
|
||||
sum6 = sum6 + molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
sum6 += molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
} else if (k == j) {
|
||||
sum6 = sum6 + 0.5 * molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
sum6 += 0.5 * molality[j]*molality[k]*m_Lambda_nj_LL(j,k);
|
||||
}
|
||||
}
|
||||
if (charge(k) < 0.0) {
|
||||
|
|
@ -4355,14 +4346,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
* and the other is negative
|
||||
*/
|
||||
if (charge(i)*charge(j) < 0) {
|
||||
dFdP = dFdP + molality[i]*molality[j] * BprimeMX_P[counterIJ];
|
||||
dFdP += molality[i]*molality[j] * BprimeMX_P[counterIJ];
|
||||
}
|
||||
/*
|
||||
* Both species have a non-zero charge, and they
|
||||
* have the same sign, e.g., both positive or both negative.
|
||||
*/
|
||||
if (charge(i)*charge(j) > 0) {
|
||||
dFdP = dFdP + molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
dFdP += molality[i]*molality[j] * Phiprime[counterIJ];
|
||||
}
|
||||
if (DEBUG_MODE_ENABLED && m_debugCalc) {
|
||||
printf(" dFdP = %10.6f \n", dFdP);
|
||||
|
|
@ -4394,7 +4385,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
|
||||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j]*
|
||||
(2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
/*
|
||||
|
|
@ -4406,7 +4397,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
// an inner sum over all anions
|
||||
if (charge(k) < 0.0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_P[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_P[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4415,21 +4406,21 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
if (charge(j) > 0.0) {
|
||||
// sum over all cations
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_P[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_P[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
// two inner sums over anions
|
||||
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_P[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_P[n];
|
||||
/*
|
||||
* Find the counterIJ for the j,k interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 + (fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_P[counterIJ2]);
|
||||
sum4 += fabs(charge(i)) *
|
||||
molality[j]*molality[k]*CMX_P[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4438,7 +4429,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
* for Anions, do the neutral species interaction
|
||||
*/
|
||||
if (charge(j) == 0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_P(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_P(j,i);
|
||||
/*
|
||||
* Zeta interaction term
|
||||
*/
|
||||
|
|
@ -4449,7 +4440,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + k;
|
||||
double zeta_P = psi_ijk_P[n];
|
||||
if (zeta_P != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_P;
|
||||
sum5 += molality[j]*molality[k]*zeta_P;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4494,14 +4485,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
* For Anions, do the cation interactions.
|
||||
*/
|
||||
if (charge(j) > 0) {
|
||||
sum1 = sum1 + molality[j]*
|
||||
sum1 += molality[j] *
|
||||
(2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]);
|
||||
if (j < m_kk-1) {
|
||||
for (size_t k = j+1; k < m_kk; k++) {
|
||||
// an inner sum over all cations
|
||||
if (charge(k) > 0) {
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_P[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_P[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4513,21 +4504,20 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
if (charge(j) < 0.0) {
|
||||
// sum over all anions
|
||||
if (j != i) {
|
||||
sum2 = sum2 + molality[j]*(2.0*Phi_P[counterIJ]);
|
||||
sum2 += molality[j]*(2.0*Phi_P[counterIJ]);
|
||||
}
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) > 0.0) {
|
||||
// two inner sums over cations
|
||||
n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum2 = sum2 + molality[j]*molality[k]*psi_ijk_P[n];
|
||||
sum2 += molality[j]*molality[k]*psi_ijk_P[n];
|
||||
/*
|
||||
* Find the counterIJ for the symmetric binary interaction
|
||||
*/
|
||||
n = m_kk*j + k;
|
||||
size_t counterIJ2 = m_CounterIJ[n];
|
||||
sum4 = sum4 +
|
||||
(fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_P[counterIJ2]);
|
||||
sum4 += fabs(charge(i))*
|
||||
molality[j]*molality[k]*CMX_P[counterIJ2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4536,7 +4526,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
* for Anions, do the neutral species interaction
|
||||
*/
|
||||
if (charge(j) == 0.0) {
|
||||
sum5 = sum5 + molality[j]*2.0*m_Lambda_nj_P(j,i);
|
||||
sum5 += molality[j]*2.0*m_Lambda_nj_P(j,i);
|
||||
/*
|
||||
* Zeta interaction term
|
||||
*/
|
||||
|
|
@ -4548,7 +4538,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
|
||||
double zeta_P = psi_ijk_P[n];
|
||||
if (zeta_P != 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*zeta_P;
|
||||
sum5 += molality[j]*molality[k]*zeta_P;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4580,7 +4570,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
size_t n = k + j * m_kk + i * m_kk * m_kk;
|
||||
sum3 = sum3 + molality[j]*molality[k]*psi_ijk_P[n];
|
||||
sum3 += molality[j]*molality[k]*psi_ijk_P[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4630,7 +4620,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum1 = sum1 + molality[j]*molality[k]*
|
||||
sum1 += molality[j]*molality[k]*
|
||||
(BphiMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -4648,13 +4638,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
*/
|
||||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
sum2 = sum2 + molality[j]*molality[k]*Phiphi_P[counterIJ];
|
||||
sum2 += molality[j]*molality[k]*Phiphi_P[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) < 0.0) {
|
||||
// species m is an anion
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum2 = sum2 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
|
||||
sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4679,12 +4668,11 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
size_t n = m_kk*j + k;
|
||||
size_t counterIJ = m_CounterIJ[n];
|
||||
|
||||
sum3 = sum3 + molality[j]*molality[k]*Phiphi_P[counterIJ];
|
||||
sum3 += molality[j]*molality[k]*Phiphi_P[counterIJ];
|
||||
for (size_t m = 1; m < m_kk; m++) {
|
||||
if (charge(m) > 0.0) {
|
||||
n = m + k * m_kk + j * m_kk * m_kk;
|
||||
sum3 = sum3 +
|
||||
molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
|
||||
sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4697,16 +4685,16 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
|
|||
if (charge(j) == 0) {
|
||||
for (size_t k = 1; k < m_kk; k++) {
|
||||
if (charge(k) < 0.0) {
|
||||
sum4 = sum4 + molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
sum4 += molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
}
|
||||
if (charge(k) > 0.0) {
|
||||
sum5 = sum5 + molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
sum5 += molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
}
|
||||
if (charge(k) == 0.0) {
|
||||
if (k > j) {
|
||||
sum6 = sum6 + molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
sum6 += molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
} else if (k == j) {
|
||||
sum6 = sum6 + 0.5 * molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
sum6 += 0.5 * molality[j]*molality[k]*m_Lambda_nj_P(j,k);
|
||||
}
|
||||
}
|
||||
if (charge(k) < 0.0) {
|
||||
|
|
|
|||
|
|
@ -1039,7 +1039,7 @@ doublereal WaterPropsIAPWSphi::dfind(doublereal p_red, doublereal tau, double
|
|||
/*
|
||||
* updated the reduced density value
|
||||
*/
|
||||
dd = dd + deldd;
|
||||
dd += deldd;
|
||||
if (fabs(deldd/dd) < 1.0E-14) {
|
||||
conv = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ double Substance::dPsdT()
|
|||
{
|
||||
double tsave = T;
|
||||
double ps1 = Ps();
|
||||
T = T + DeltaT;
|
||||
T += DeltaT;
|
||||
double dpdt = (Ps() - ps1)/DeltaT;
|
||||
T = tsave;
|
||||
return dpdt;
|
||||
|
|
@ -103,7 +103,7 @@ double Substance::Tsat(double p)
|
|||
if (dta > dtm) {
|
||||
dt = dt*dtm/dta;
|
||||
}
|
||||
T = T + dt;
|
||||
T += dt;
|
||||
LoopCount++;
|
||||
if (LoopCount > 100) {
|
||||
T = Tsave;
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ int main(int argc, char** argv)
|
|||
if (Is > 6.146) {
|
||||
Is = 6.146;
|
||||
doneSp = true;
|
||||
i = i - 1;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
moll[i1] = Is;
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ int main(int argc, char** argv)
|
|||
double Gibbs0_kgWater = molarGibbs0 / (Xmol[0] * Mo);
|
||||
|
||||
double osm1 = HMW->osmoticCoefficient();
|
||||
osm1 = osm1 - 1.0;
|
||||
osm1 -= 1.0;
|
||||
/*
|
||||
* Need the gas constant in kJ/gmolK
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue