Use += and -= where appropriate

This commit is contained in:
Ray Speth 2015-07-31 17:46:46 -04:00
parent e4c45b6429
commit f90bf978df
22 changed files with 179 additions and 191 deletions

View file

@ -149,7 +149,7 @@ class XMLnode(object):
if value[0] != ' ': if value[0] != ' ':
value = ' '+value value = ' '+value
if value[-1] != ' ': if value[-1] != ' ':
value = value+' ' value += ' '
s.append(value+'-->') s.append(value+'-->')
def write_attribs(self, s): def write_attribs(self, s):
@ -2176,7 +2176,7 @@ class lattice_solid(phase):
for lat in lattices: for lat in lattices:
_sp = "" _sp = ""
for spp in lat._species: for spp in lat._species:
_sp = _sp + spp _sp += spp
s = _sp.split() s = _sp.split()
for sp in s: for sp in s:
if not sp in slist: if not sp in slist:

View file

@ -214,7 +214,7 @@ class MixtureFrame(Frame):
k = s.index k = s.index
if row > 25: if row > 25:
row = 0 row = 0
col = col + 2 col += 2
l = Label(self.entries,text='Species') l = Label(self.entries,text='Species')
l.grid(column=col,row=row,sticky=E+W) l.grid(column=col,row=row,sticky=E+W)
e1 = Entry(self.entries) e1 = Entry(self.entries)
@ -222,7 +222,7 @@ class MixtureFrame(Frame):
e1['textvariable'] = self.var e1['textvariable'] = self.var
e1.config(state=DISABLED) e1.config(state=DISABLED)
e1.config(bg='lightyellow',relief=RIDGE) e1.config(bg='lightyellow',relief=RIDGE)
row = row + 1 row += 1
spname = s.name spname = s.name
val = self.comp[k] val = self.comp[k]
@ -240,8 +240,8 @@ class MixtureFrame(Frame):
if showit: if showit:
l.grid(column= col ,row=row,sticky=E) l.grid(column= col ,row=row,sticky=E)
entry1.grid(column=col+1,row=row) entry1.grid(column=col+1,row=row)
n=n+1 n += 1
row = row + 1 row += 1
if equil == 1: if equil == 1:
entry1.config(state=DISABLED,bg='lightgray') entry1.config(state=DISABLED,bg='lightgray')
## if self.c.hide.get(): ## if self.c.hide.get():

View file

@ -94,7 +94,7 @@ class ControlWindow(Frame):
i = 0 i = 0
for f in funcs: for f in funcs:
filemenu.add_command(label=f[0], command=f[1]) filemenu.add_command(label=f[0], command=f[1])
i = i + 1 i += 1
filebutton['menu']=filemenu filebutton['menu']=filemenu
return filemenu return filemenu

View file

@ -338,8 +338,8 @@ class DataFrame(Frame):
ymax = ymax*1.1 ymax = ymax*1.1
dy = abs(ymax - ymin) dy = abs(ymax - ymin)
else: else:
ymin = ymin - 0.1*dy ymin -= 0.1*dy
ymax = ymax + 0.1*dy ymax += 0.1*dy
dy = abs(ymax - ymin) dy = abs(ymax - ymin)
p10 = math.floor(math.log10(0.1*dy)) p10 = math.floor(math.log10(0.1*dy))
@ -348,7 +348,7 @@ class DataFrame(Frame):
i = 0 i = 0
while dy/fctr > 5: while dy/fctr > 5:
fctr = mm[i % 3]*fctr fctr = mm[i % 3]*fctr
i = i + 1 i += 1
ymin = fctr*math.floor(ymin/fctr) ymin = fctr*math.floor(ymin/fctr)
ymax = fctr*(math.floor(ymax/fctr + 1)) ymax = fctr*(math.floor(ymax/fctr + 1))
return (ymin, ymax, fctr) return (ymin, ymax, fctr)

View file

@ -33,8 +33,8 @@ def plotLimits(ypts, f=0.0, ndiv=5, logscale=0):
## dy = abs(ymax - ymin) ## dy = abs(ymax - ymin)
## else: ## else:
else: else:
ymin = ymin - f*dy ymin -= f*dy
ymax = ymax + f*dy ymax += f*dy
dy = abs(ymax - ymin) dy = abs(ymax - ymin)
try: try:
@ -46,7 +46,7 @@ def plotLimits(ypts, f=0.0, ndiv=5, logscale=0):
i = 0 i = 0
while dy/fctr > ndiv: while dy/fctr > ndiv:
fctr = mm[i % 3]*fctr fctr = mm[i % 3]*fctr
i = i + 1 i += 1
ymin = fctr*math.floor(ymin/fctr) ymin = fctr*math.floor(ymin/fctr)
ymax = fctr*(math.floor(ymax/fctr+0.999)) ymax = fctr*(math.floor(ymax/fctr+0.999))
@ -212,7 +212,7 @@ class DataGraph(Frame):
if self.logscale[1]: if self.logscale[1]:
ytick *= 10.0 ytick *= 10.0
n = 10 n = 10
else: ytick = ytick + dy else: ytick += dy
if ytick <= ymax: if ytick <= ymax:
self.minorTicks(ytick0, ytick, xmin, n, 5, 1) self.minorTicks(ytick0, ytick, xmin, n, 5, 1)
self.minorTicks(ytick0, ytick, xmax, n, -5, 1) self.minorTicks(ytick0, ytick, xmax, n, -5, 1)
@ -228,7 +228,7 @@ class DataGraph(Frame):
if self.logscale[0]: if self.logscale[0]:
xtick *= 10.0 xtick *= 10.0
n = 10 n = 10
else: xtick = xtick + dx else: xtick += dx
if xtick <= xmax: if xtick <= xmax:
self.minorTicks(xtick - dx, xtick, ymin, n, 5, 0) self.minorTicks(xtick - dx, xtick, ymin, n, 5, 0)
self.minorTicks(xtick - dx, xtick, ymax, n, -5, 0) self.minorTicks(xtick - dx, xtick, ymax, n, -5, 0)

View file

@ -54,7 +54,7 @@ class EditFrame(Frame):
x = Label(self.eframe,text=el,fg='darkblue') x = Label(self.eframe,text=el,fg='darkblue')
x.grid(column = n, row=0) x.grid(column = n, row=0)
self.element_labels.append(x) self.element_labels.append(x)
n = n + 1 n += 1
b=Button(self.eframe,text='Element',command=self.chooseElements, default=ACTIVE) b=Button(self.eframe,text='Element',command=self.chooseElements, default=ACTIVE)
b.grid(column=0, row=1, columnspan=10) b.grid(column=0, row=1, columnspan=10)
@ -77,7 +77,7 @@ class EditFrame(Frame):
onvalue = 1, offvalue = 0) ) onvalue = 1, offvalue = 0) )
self.spcheck[i].grid(row = r, column = c, sticky = N+W) self.spcheck[i].grid(row = r, column = c, sticky = N+W)
self.spcheck[i].bind("<Button-3>", self.editSpecies) self.spcheck[i].bind("<Button-3>", self.editSpecies)
c = c + 1 c += 1
if c > 4: if c > 4:
c, r = 0, r + 1 c, r = 0, r + 1
@ -106,7 +106,7 @@ class EditFrame(Frame):
i = 0 i = 0
for el in self.app.mech.elementNames(): for el in self.app.mech.elementNames():
self.addEntry(elframe,el,i,0,self.mech.nAtoms(sp, el)) self.addEntry(elframe,el,i,0,self.mech.nAtoms(sp, el))
i = i + 1 i += 1
# thermo # thermo
thframe = Frame(e) thframe = Frame(e)
@ -194,6 +194,6 @@ class EditFrame(Frame):
x = Label(self.eframe,text=el.symbol(),fg='darkblue') x = Label(self.eframe,text=el.symbol(),fg='darkblue')
x.grid(column = n, row=0) x.grid(column = n, row=0)
self.element_labels.append(x) self.element_labels.append(x)
n = n + 1 n += 1
self.app.makeWindows() self.app.makeWindows()

View file

@ -58,7 +58,7 @@ class PeriodicTable(Frame):
self.c[el].pack() self.c[el].pack()
self.c[el].bind("<Button-1>",self.setColors) 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) 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) 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, row=n,
sticky=W, sticky=W,
padx=10) padx=10)
n = n + 1 n += 1
# utility functions # utility functions

View file

@ -76,7 +76,7 @@ class Graph(Frame):
last_x, last_y, last_color = pt last_x, last_y, last_color = pt
else: else:
last_x, last_y, last_color = self.last_points[i] 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 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 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 last_xpt = (last_x - self.minX)/(float(self.maxX - self.minX)/self.graph_w) + 1.5

View file

@ -150,7 +150,7 @@ class SpeciesKineticsFrame(Frame):
k = s.index k = s.index
if row > 15: if row > 15:
row = 0 row = 0
col = col + 2 col += 2
l = Label(self.entries,text='Species') l = Label(self.entries,text='Species')
l.grid(column=col,row=row,sticky=E+W) l.grid(column=col,row=row,sticky=E+W)
e1 = Entry(self.entries) e1 = Entry(self.entries)
@ -158,7 +158,7 @@ class SpeciesKineticsFrame(Frame):
e1['textvariable'] = self.var e1['textvariable'] = self.var
e1.config(state=DISABLED) e1.config(state=DISABLED)
e1.config(bg='lightyellow',relief=RIDGE) e1.config(bg='lightyellow',relief=RIDGE)
row = row + 1 row += 1
spname = s.name spname = s.name
val = self.comp[k] val = self.comp[k]
@ -176,8 +176,8 @@ class SpeciesKineticsFrame(Frame):
if showit: if showit:
l.grid(column= col ,row=row,sticky=E) l.grid(column= col ,row=row,sticky=E)
entry1.grid(column=col+1,row=row) entry1.grid(column=col+1,row=row)
n=n+1 n += 1
row = row + 1 row += 1
entry1.config(state=DISABLED,bg='lightgray') entry1.config(state=DISABLED,bg='lightgray')

View file

@ -40,7 +40,7 @@ class MechManager(Frame):
i = 1 i = 1
#for m in self.mechanisms: #for m in self.mechanisms:
# self.mlist.append((m[0], self.setMechanism, 'check', self.mechindx, i)) # self.mlist.append((m[0], self.setMechanism, 'check', self.mechindx, i))
# i = i + 1 # i += 1
#self.mlist.append([]) #self.mlist.append([])
self.mechmenu = make_menu('Mixtures', self, self.mlist) self.mechmenu = make_menu('Mixtures', self, self.mlist)
@ -76,7 +76,7 @@ class MechManager(Frame):
## Radiobutton(self.mfr, text=name, variable=self.mechindx, ## Radiobutton(self.mfr, text=name, variable=self.mechindx,
## value = i, ## value = i,
## command=self.setMechanism).grid(row=i,column=0) ## command=self.setMechanism).grid(row=i,column=0)
## i = i + 1 ## i += 1
## print 'end' ## print 'end'

View file

@ -84,7 +84,7 @@ class NewFlowFrame(Frame):
## k = s.index ## k = s.index
## if row > 15: ## if row > 15:
## row = 0 ## row = 0
## col = col + 2 ## col += 2
## l = Label(self.entries,text='Species') ## l = Label(self.entries,text='Species')
## l.grid(column=col,row=row,sticky=E+W) ## l.grid(column=col,row=row,sticky=E+W)
## e1 = Entry(self.entries) ## e1 = Entry(self.entries)
@ -92,7 +92,7 @@ class NewFlowFrame(Frame):
## e1['textvariable'] = self.var ## e1['textvariable'] = self.var
## e1.config(state=DISABLED) ## e1.config(state=DISABLED)
## e1.config(bg='lightyellow',relief=RIDGE) ## e1.config(bg='lightyellow',relief=RIDGE)
## row = row + 1 ## row += 1
## spname = s.name ## spname = s.name
## val = self.comp[k] ## val = self.comp[k]
@ -110,8 +110,8 @@ class NewFlowFrame(Frame):
## if showit: ## if showit:
## l.grid(column= col ,row=row,sticky=E) ## l.grid(column= col ,row=row,sticky=E)
## entry1.grid(column=col+1,row=row) ## entry1.grid(column=col+1,row=row)
## n=n+1 ## n+=1
## row = row + 1 ## row += 1
## if self.c.hide.get(): ## if self.c.hide.get():
## b=Button(self.entries,height=1,command=self.maximize) ## b=Button(self.entries,height=1,command=self.maximize)
## else: ## else:

View file

@ -48,9 +48,9 @@ class SpeciesFrame(Frame):
self.c[el].pack() self.c[el].pack()
self.c[el].bind("<Button-1>",self.setColors) self.c[el].bind("<Button-1>",self.setColors)
self.species[el].grid(row= rw, column = col,sticky=W+N+E+S) self.species[el].grid(row= rw, column = col,sticky=W+N+E+S)
col = col + 1 col += 1
if col > ncol: if col > ncol:
rw = rw + 1 rw += 1
col = 0 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) 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, ## row=n,
## sticky=W, ## sticky=W,
## padx=10) ## padx=10)
## n = n + 1 ## n += 1
# utility functions # utility functions

View file

@ -50,7 +50,7 @@ class SpeciesInfo(Label):
.grid(row=0,column=0,sticky=N+W) .grid(row=0,column=0,sticky=N+W)
for el, c in self.sp.composition(): for el, c in self.sp.composition():
Label(self.eframe,text=repr(int(c))+' '+el).grid(row=0,column=r) Label(self.eframe,text=repr(int(c))+' '+el).grid(row=0,column=r)
r = r + 1 r += 1
# thermodynamic properties # thermodynamic properties
@ -73,7 +73,7 @@ class SpeciesInfo(Label):
p.grid(row=r,column=1,sticky=W) p.grid(row=r,column=1,sticky=W)
p.v.config(state=DISABLED,bg='lightgray') p.v.config(state=DISABLED,bg='lightgray')
self.prop.append(p) self.prop.append(p)
r = r + 1 r += 1
tmin = self.sp.minTemp tmin = self.sp.minTemp
tmax = self.sp.maxTemp tmax = self.sp.maxTemp
@ -100,7 +100,7 @@ class SpeciesInfo(Label):
self.cpdata.append((t,self.sp.cp_R(t))) self.cpdata.append((t,self.sp.cp_R(t)))
self.hdata.append((t,self.sp.enthalpy_RT(t))) self.hdata.append((t,self.sp.enthalpy_RT(t)))
self.sdata.append((t,self.sp.entropy_R(t))) self.sdata.append((t,self.sp.entropy_R(t)))
t = t + n t += n
# specific heat # specific heat
@ -210,8 +210,8 @@ class SpeciesInfo(Label):
ymax = ymax*1.1 ymax = ymax*1.1
dy = abs(ymax - ymin) dy = abs(ymax - ymin)
else: else:
ymin = ymin - 0.1*dy ymin -= 0.1*dy
ymax = ymax + 0.1*dy ymax += 0.1*dy
dy = abs(ymax - ymin) dy = abs(ymax - ymin)
p10 = math.floor(math.log10(0.1*dy)) p10 = math.floor(math.log10(0.1*dy))
@ -220,7 +220,7 @@ class SpeciesInfo(Label):
i = 0 i = 0
while dy/fctr > 5: while dy/fctr > 5:
fctr = mm[i % 3]*fctr fctr = mm[i % 3]*fctr
i = i + 1 i += 1
ymin = fctr*math.floor(ymin/fctr) ymin = fctr*math.floor(ymin/fctr)
ymax = fctr*(math.floor(ymax/fctr + 1)) ymax = fctr*(math.floor(ymax/fctr + 1))
return (ymin, ymax, fctr) return (ymin, ymax, fctr)
@ -241,7 +241,7 @@ class SpeciesInfo(Label):
plot.join([(tmax - 0.05*(tmax - tmin), ytick, 'gray')]) plot.join([(tmax - 0.05*(tmax - tmin), ytick, 'gray')])
plot.last_points = [] plot.last_points = []
ytick = ytick + dtick ytick += dtick
def finished(self,event=None): def finished(self,event=None):
self.new.destroy() self.new.destroy()

View file

@ -57,11 +57,11 @@ class UnitVar(Frame):
value=each, value=each,
command=self.update, command=self.update,
).grid(column=c, row=r, sticky=W) ).grid(column=c, row=r, sticky=W)
r=r+1 r += 1
if (r>10): if (r>10):
r=0 r=0
c=c+1 c += 1
r=r+1 r += 1
b=Button(self.new,text='OK',command=self.finished, default=ACTIVE) b=Button(self.new,text='OK',command=self.finished, default=ACTIVE)
b.grid(column=c, row=r) b.grid(column=c, row=r)

View file

@ -103,9 +103,9 @@ class unit(object):
exponent = self.derivation[i] exponent = self.derivation[i]
if exponent == 0: continue if exponent == 0: continue
if exponent == 1: if exponent == 1:
str = str + " %s" % (self._labels[i]) str += " %s" % (self._labels[i])
else: else:
str = str + " %s^%d" % (self._labels[i], exponent) str += " %s^%d" % (self._labels[i], exponent)
return str return str

View file

@ -531,7 +531,7 @@ int ChemEquil::equilibrate(thermo_t& s, const char* XYstr,
dt = 0.5*((t0) + tmaxPhase) - t0; dt = 0.5*((t0) + tmaxPhase) - t0;
} }
// update the T estimate // update the T estimate
t0 = t0 + dt; t0 += dt;
if (t0 <= tminPhase || t0 >= tmaxPhase || t0 < 100.0) { if (t0 <= tminPhase || t0 >= tmaxPhase || t0 < 100.0) {
throw CanteraError("ChemEquil::equilibrate", "T out of bounds"); throw CanteraError("ChemEquil::equilibrate", "T out of bounds");
} }

View file

@ -225,7 +225,7 @@ bool VCS_SOLVE::vcs_wellPosed(VCS_PROB* vprob)
{ {
double sum = 0.0; double sum = 0.0;
for (size_t e = 0; e < vprob->ne; e++) { for (size_t e = 0; e < vprob->ne; e++) {
sum = sum + vprob->gai[e]; sum += vprob->gai[e];
} }
if (sum < 1.0E-20) { if (sum < 1.0E-20) {
plogf("vcs_wellPosed: Element abundance is close to zero\n"); plogf("vcs_wellPosed: Element abundance is close to zero\n");

View file

@ -1936,14 +1936,14 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
* and the other is negative * and the other is negative
*/ */
if (charge(i)*charge(j) < 0) { 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 * Both species have a non-zero charge, and they
* have the same sign * have the same sign
*/ */
if (charge(i)*charge(j) > 0) { 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) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
printf(" F = %10.6f \n", F); printf(" F = %10.6f \n", F);
@ -1984,8 +1984,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(j) < 0.0) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
sum1 = sum1 + molality[j]* sum1 += molality[j] *
(2.0*BMX[counterIJ] + molarcharge*CMX[counterIJ]); (2.0*BMX[counterIJ] + molarcharge*CMX[counterIJ]);
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
std::string snj = speciesName(j) + ":"; std::string snj = speciesName(j) + ":";
printf(" Bin term with %-13s 2 m_j BMX = %10.5f\n", snj.c_str(), printf(" Bin term with %-13s 2 m_j BMX = %10.5f\n", snj.c_str(),
@ -2003,7 +2003,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
// an inner sum over all anions // an inner sum over all anions
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
n = k + j * m_kk + i * m_kk * m_kk; 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (psi_ijk[n] != 0.0) { if (psi_ijk[n] != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2019,7 +2019,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(j) > 0.0) { if (charge(j) > 0.0) {
// sum over all cations // sum over all cations
if (j != i) { 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j] * Phi[counterIJ])!= 0.0) { if ((molality[j] * Phi[counterIJ])!= 0.0) {
std::string snj = speciesName(j) + ":"; std::string snj = speciesName(j) + ":";
@ -2032,7 +2032,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
// two inner sums over anions // two inner sums over anions
n = k + j * m_kk + i * m_kk * m_kk; 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (psi_ijk[n] != 0.0) { if (psi_ijk[n] != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2045,7 +2045,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + (fabs(charge(i))* sum4 += (fabs(charge(i))*
molality[j]*molality[k]*CMX[counterIJ2]); molality[j]*molality[k]*CMX[counterIJ2]);
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) { if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) {
@ -2062,7 +2062,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
* Handle neutral j species * Handle neutral j species
*/ */
if (charge(j) == 0) { 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) { if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) {
std::string snj = speciesName(j) + ":"; 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; n = izeta * m_kk * m_kk + jzeta * m_kk + k;
double zeta = psi_ijk[n]; double zeta = psi_ijk[n];
if (zeta != 0.0) { if (zeta != 0.0) {
sum5 = sum5 + molality[j]*molality[k]*zeta; sum5 += molality[j]*molality[k]*zeta;
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
printf(" Zeta term on %-16s m_n m_a zeta_nMa = %10.5f\n", snj.c_str(), 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. * For Anions, do the cation interactions.
*/ */
if (charge(j) > 0) { if (charge(j) > 0) {
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX[counterIJ]+molarcharge*CMX[counterIJ]); (2.0*BMX[counterIJ]+molarcharge*CMX[counterIJ]);
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
std::string snj = speciesName(j) + ":"; std::string snj = speciesName(j) + ":";
@ -2149,7 +2149,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
// an inner sum over all cations // an inner sum over all cations
if (charge(k) > 0) { if (charge(k) > 0) {
n = k + j * m_kk + i * m_kk * m_kk; 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (psi_ijk[n] != 0.0) { if (psi_ijk[n] != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2168,7 +2168,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(j) < 0.0) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
if (j != i) { 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j] * Phi[counterIJ])!= 0.0) { if ((molality[j] * Phi[counterIJ])!= 0.0) {
std::string snj = speciesName(j) + ":"; std::string snj = speciesName(j) + ":";
@ -2181,7 +2181,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(k) > 0.0) { if (charge(k) > 0.0) {
// two inner sums over cations // two inner sums over cations
n = k + j * m_kk + i * m_kk * m_kk; 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (psi_ijk[n] != 0.0) { if (psi_ijk[n] != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2194,9 +2194,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + sum4 += fabs(charge(i))*
(fabs(charge(i))* molality[j]*molality[k]*CMX[counterIJ2];
molality[j]*molality[k]*CMX[counterIJ2]);
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) { if ((molality[j]*molality[k]*CMX[counterIJ2]) != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2212,7 +2211,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
* for Anions, do the neutral species interaction * for Anions, do the neutral species interaction
*/ */
if (charge(j) == 0.0) { 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) { if ((molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) {
std::string snj = speciesName(j) + ":"; 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; n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
double zeta = psi_ijk[n]; double zeta = psi_ijk[n];
if (zeta != 0.0) { if (zeta != 0.0) {
sum5 = sum5 + molality[j]*molality[k]*zeta; sum5 += molality[j]*molality[k]*zeta;
if (DEBUG_MODE_ENABLED && m_debugCalc) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
printf(" Zeta term on %-16s m_n m_c zeta_ncX = %10.5f\n", snj.c_str(), 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 sum1 = 0.0;
double sum3 = 0.0; double sum3 = 0.0;
for (size_t j = 1; j < m_kk; j++) { 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (m_Lambda_nj(i,j) != 0.0) { if (m_Lambda_nj(i,j) != 0.0) {
std::string snj = speciesName(j) + ":"; std::string snj = speciesName(j) + ":";
@ -2278,7 +2277,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
for (size_t k = 1; k < m_kk; k++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
size_t n = k + j * m_kk + i * m_kk * m_kk; 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 (DEBUG_MODE_ENABLED && m_debugCalc) {
if (psi_ijk[n] != 0.0) { if (psi_ijk[n] != 0.0) {
std::string snj = speciesName(j) + "," + speciesName(k) + ":"; std::string snj = speciesName(j) + "," + speciesName(k) + ":";
@ -2343,8 +2342,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
size_t n = m_kk*j + k; size_t n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; size_t counterIJ = m_CounterIJ[n];
sum1 = sum1 + molality[j]*molality[k]* sum1 += molality[j]*molality[k]*
(BphiMX[counterIJ] + molarcharge*CMX[counterIJ]); (BphiMX[counterIJ] + molarcharge*CMX[counterIJ]);
} }
} }
@ -2361,13 +2360,12 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
*/ */
size_t n = m_kk*j + k; size_t n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) < 0.0) { if (charge(m) < 0.0) {
// species m is an anion // species m is an anion
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum2 = sum2 + sum2 += molality[j]*molality[k]*molality[m]*psi_ijk[n];
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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) > 0.0) { if (charge(m) > 0.0) {
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum3 = sum3 + sum3 += molality[j]*molality[k]*molality[m]*psi_ijk[n];
molality[j]*molality[k]*molality[m]*psi_ijk[n];
} }
} }
} }
@ -2409,16 +2406,16 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const
if (charge(j) == 0) { if (charge(j) == 0) {
for (size_t k = 1; k < m_kk; k++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { 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) { 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 (charge(k) == 0.0) {
if (k > j) { 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) { } 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) { if (charge(k) < 0.0) {
@ -2840,14 +2837,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
* and the other is negative * and the other is negative
*/ */
if (charge(i)*charge(j) < 0) { 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 * Both species have a non-zero charge, and they
* have the same sign, e.g., both positive or both negative. * have the same sign, e.g., both positive or both negative.
*/ */
if (charge(i)*charge(j) > 0) { 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) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
printf(" dFdT = %10.6f \n", dFdT); printf(" dFdT = %10.6f \n", dFdT);
@ -2879,8 +2876,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
if (charge(j) < 0.0) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]); (2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
/* /*
* This term is the ternary interaction involving the * This term is the ternary interaction involving the
@ -2891,7 +2888,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
// an inner sum over all anions // an inner sum over all anions
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) > 0.0) {
// sum over all cations // sum over all cations
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
// two inner sums over anions // two inner sums over anions
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the j,k interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + (fabs(charge(i))* sum4 += fabs(charge(i))*
molality[j]*molality[k]*CMX_L[counterIJ2]); molality[j]*molality[k]*CMX_L[counterIJ2];
} }
} }
} }
@ -2922,7 +2919,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
* Handle neutral j species * Handle neutral j species
*/ */
if (charge(j) == 0) { 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 * Zeta interaction term
@ -2934,7 +2931,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
n = izeta * m_kk * m_kk + jzeta * m_kk + k; n = izeta * m_kk * m_kk + jzeta * m_kk + k;
double zeta_L = psi_ijk_L[n]; double zeta_L = psi_ijk_L[n];
if (zeta_L != 0.0) { 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. * For Anions, do the cation interactions.
*/ */
if (charge(j) > 0) { if (charge(j) > 0) {
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]); (2.0*BMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
for (size_t k = j+1; k < m_kk; k++) { for (size_t k = j+1; k < m_kk; k++) {
// an inner sum over all cations // an inner sum over all cations
if (charge(k) > 0) { if (charge(k) > 0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) > 0.0) { if (charge(k) > 0.0) {
// two inner sums over cations // two inner sums over cations
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the symmetric binary interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + sum4 += fabs(charge(i)) *
(fabs(charge(i))* molality[j]*molality[k]*CMX_L[counterIJ2];
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 * for Anions, do the neutral species interaction
*/ */
if (charge(j) == 0.0) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) > 0.0) { if (charge(k) > 0.0) {
size_t izeta = j; 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; n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
double zeta_L = psi_ijk_L[n]; double zeta_L = psi_ijk_L[n];
if (zeta_L != 0.0) { 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 sum1 = 0.0;
double sum3 = 0.0; double sum3 = 0.0;
for (size_t j = 1; j < m_kk; j++) { 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 * 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
size_t n = k + j * m_kk + i * m_kk * m_kk; 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,8 +3109,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const
*/ */
size_t n = m_kk*j + k; size_t n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; size_t counterIJ = m_CounterIJ[n];
sum1 = sum1 + molality[j]*molality[k]* sum1 += molality[j]*molality[k]*
(BphiMX_L[counterIJ] + molarcharge*CMX_L[counterIJ]); (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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) < 0.0) { if (charge(m) < 0.0) {
// species m is an anion // species m is an anion
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum2 = sum2 + sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) > 0.0) { if (charge(m) > 0.0) {
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum3 = sum3 + sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_L[n];
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) { if (charge(j) == 0) {
for (size_t k = 1; k < m_kk; k++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { 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) { 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 (charge(k) == 0.0) {
if (k > j) { 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) { } 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) { if (charge(k) < 0.0) {
@ -3597,14 +3591,14 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
* and the other is negative * and the other is negative
*/ */
if (charge(i)*charge(j) < 0) { 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 * Both species have a non-zero charge, and they
* have the same sign, e.g., both positive or both negative. * have the same sign, e.g., both positive or both negative.
*/ */
if (charge(i)*charge(j) > 0) { 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) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
printf(" d2FdT2 = %10.6f \n", d2FdT2); printf(" d2FdT2 = %10.6f \n", d2FdT2);
@ -3636,8 +3630,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
if (charge(j) < 0.0) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]); (2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
/* /*
* This term is the ternary interaction involving the * This term is the ternary interaction involving the
@ -3648,7 +3642,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
// an inner sum over all anions // an inner sum over all anions
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) > 0.0) {
// sum over all cations // sum over all cations
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
// two inner sums over anions // two inner sums over anions
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the j,k interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + (fabs(charge(i))* sum4 += fabs(charge(i)) *
molality[j]*molality[k]*CMX_LL[counterIJ2]); molality[j]*molality[k]*CMX_LL[counterIJ2];
} }
} }
} }
@ -3679,7 +3673,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
* Handle neutral j species * Handle neutral j species
*/ */
if (charge(j) == 0) { 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 * Zeta interaction term
*/ */
@ -3690,7 +3684,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
n = izeta * m_kk * m_kk + jzeta * m_kk + k; n = izeta * m_kk * m_kk + jzeta * m_kk + k;
double zeta_LL = psi_ijk_LL[n]; double zeta_LL = psi_ijk_LL[n];
if (zeta_LL != 0.0) { 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. * For Anions, do the cation interactions.
*/ */
if (charge(j) > 0) { if (charge(j) > 0) {
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]); (2.0*BMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
for (size_t k = j+1; k < m_kk; k++) { for (size_t k = j+1; k < m_kk; k++) {
// an inner sum over all cations // an inner sum over all cations
if (charge(k) > 0) { if (charge(k) > 0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) > 0.0) { if (charge(k) > 0.0) {
// two inner sums over cations // two inner sums over cations
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the symmetric binary interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + sum4 += fabs(charge(i)) *
(fabs(charge(i))* molality[j]*molality[k]*CMX_LL[counterIJ2];
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 * for Anions, do the neutral species interaction
*/ */
if (charge(j) == 0.0) { 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 * Zeta interaction term
*/ */
@ -3787,7 +3780,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta; n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
double zeta_LL = psi_ijk_LL[n]; double zeta_LL = psi_ijk_LL[n];
if (zeta_LL != 0.0) { 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 sum1 = 0.0;
double sum3 = 0.0; double sum3 = 0.0;
for (size_t j = 1; j < m_kk; j++) { 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 * 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
size_t n = k + j * m_kk + i * m_kk * m_kk; 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,8 +3865,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const
size_t n = m_kk*j + k; size_t n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; size_t counterIJ = m_CounterIJ[n];
sum1 = sum1 + molality[j]*molality[k]* sum1 += molality[j]*molality[k] *
(BphiMX_LL[counterIJ] + molarcharge*CMX_LL[counterIJ]); (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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) < 0.0) { if (charge(m) < 0.0) {
// species m is an anion // species m is an anion
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum2 = sum2 + sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) > 0.0) { if (charge(m) > 0.0) {
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum3 = sum3 + sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_LL[n];
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) { if (charge(j) == 0) {
for (size_t k = 1; k < m_kk; k++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { 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) { 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 (charge(k) == 0.0) {
if (k > j) { 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) { } 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) { if (charge(k) < 0.0) {
@ -4355,14 +4346,14 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
* and the other is negative * and the other is negative
*/ */
if (charge(i)*charge(j) < 0) { 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 * Both species have a non-zero charge, and they
* have the same sign, e.g., both positive or both negative. * have the same sign, e.g., both positive or both negative.
*/ */
if (charge(i)*charge(j) > 0) { 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) { if (DEBUG_MODE_ENABLED && m_debugCalc) {
printf(" dFdP = %10.6f \n", dFdP); printf(" dFdP = %10.6f \n", dFdP);
@ -4394,8 +4385,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
if (charge(j) < 0.0) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
sum1 = sum1 + molality[j]* sum1 += molality[j]*
(2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]); (2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
/* /*
* This term is the ternary interaction involving the * This term is the ternary interaction involving the
@ -4406,7 +4397,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
// an inner sum over all anions // an inner sum over all anions
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) > 0.0) {
// sum over all cations // sum over all cations
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
// two inner sums over anions // two inner sums over anions
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the j,k interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + (fabs(charge(i))* sum4 += fabs(charge(i)) *
molality[j]*molality[k]*CMX_P[counterIJ2]); 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 * for Anions, do the neutral species interaction
*/ */
if (charge(j) == 0) { 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 * Zeta interaction term
*/ */
@ -4449,7 +4440,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
n = izeta * m_kk * m_kk + jzeta * m_kk + k; n = izeta * m_kk * m_kk + jzeta * m_kk + k;
double zeta_P = psi_ijk_P[n]; double zeta_P = psi_ijk_P[n];
if (zeta_P != 0.0) { 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. * For Anions, do the cation interactions.
*/ */
if (charge(j) > 0) { if (charge(j) > 0) {
sum1 = sum1 + molality[j]* sum1 += molality[j] *
(2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]); (2.0*BMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]);
if (j < m_kk-1) { if (j < m_kk-1) {
for (size_t k = j+1; k < m_kk; k++) { for (size_t k = j+1; k < m_kk; k++) {
// an inner sum over all cations // an inner sum over all cations
if (charge(k) > 0) { if (charge(k) > 0) {
n = k + j * m_kk + i * m_kk * m_kk; 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) { if (charge(j) < 0.0) {
// sum over all anions // sum over all anions
if (j != i) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) > 0.0) { if (charge(k) > 0.0) {
// two inner sums over cations // two inner sums over cations
n = k + j * m_kk + i * m_kk * m_kk; 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 * Find the counterIJ for the symmetric binary interaction
*/ */
n = m_kk*j + k; n = m_kk*j + k;
size_t counterIJ2 = m_CounterIJ[n]; size_t counterIJ2 = m_CounterIJ[n];
sum4 = sum4 + sum4 += fabs(charge(i))*
(fabs(charge(i))* molality[j]*molality[k]*CMX_P[counterIJ2];
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 * for Anions, do the neutral species interaction
*/ */
if (charge(j) == 0.0) { 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 * Zeta interaction term
*/ */
@ -4548,7 +4538,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta; n = izeta * m_kk * m_kk + jzeta * m_kk + kzeta;
double zeta_P = psi_ijk_P[n]; double zeta_P = psi_ijk_P[n];
if (zeta_P != 0.0) { 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++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { if (charge(k) < 0.0) {
size_t n = k + j * m_kk + i * m_kk * m_kk; 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,8 +4620,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const
*/ */
size_t n = m_kk*j + k; size_t n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; size_t counterIJ = m_CounterIJ[n];
sum1 = sum1 + molality[j]*molality[k]* sum1 += molality[j]*molality[k]*
(BphiMX_P[counterIJ] + molarcharge*CMX_P[counterIJ]); (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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) < 0.0) { if (charge(m) < 0.0) {
// species m is an anion // species m is an anion
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum2 = sum2 + sum2 += molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
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 n = m_kk*j + k;
size_t counterIJ = m_CounterIJ[n]; 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++) { for (size_t m = 1; m < m_kk; m++) {
if (charge(m) > 0.0) { if (charge(m) > 0.0) {
n = m + k * m_kk + j * m_kk * m_kk; n = m + k * m_kk + j * m_kk * m_kk;
sum3 = sum3 + sum3 += molality[j]*molality[k]*molality[m]*psi_ijk_P[n];
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) { if (charge(j) == 0) {
for (size_t k = 1; k < m_kk; k++) { for (size_t k = 1; k < m_kk; k++) {
if (charge(k) < 0.0) { 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) { 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 (charge(k) == 0.0) {
if (k > j) { 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) { } 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) { if (charge(k) < 0.0) {

View file

@ -1039,7 +1039,7 @@ doublereal WaterPropsIAPWSphi::dfind(doublereal p_red, doublereal tau, double
/* /*
* updated the reduced density value * updated the reduced density value
*/ */
dd = dd + deldd; dd += deldd;
if (fabs(deldd/dd) < 1.0E-14) { if (fabs(deldd/dd) < 1.0E-14) {
conv = true; conv = true;
break; break;

View file

@ -41,7 +41,7 @@ double Substance::dPsdT()
{ {
double tsave = T; double tsave = T;
double ps1 = Ps(); double ps1 = Ps();
T = T + DeltaT; T += DeltaT;
double dpdt = (Ps() - ps1)/DeltaT; double dpdt = (Ps() - ps1)/DeltaT;
T = tsave; T = tsave;
return dpdt; return dpdt;
@ -103,7 +103,7 @@ double Substance::Tsat(double p)
if (dta > dtm) { if (dta > dtm) {
dt = dt*dtm/dta; dt = dt*dtm/dta;
} }
T = T + dt; T += dt;
LoopCount++; LoopCount++;
if (LoopCount > 100) { if (LoopCount > 100) {
T = Tsave; T = Tsave;

View file

@ -82,7 +82,7 @@ int main(int argc, char** argv)
if (Is > 6.146) { if (Is > 6.146) {
Is = 6.146; Is = 6.146;
doneSp = true; doneSp = true;
i = i - 1; i--;
} }
} }
moll[i1] = Is; moll[i1] = Is;

View file

@ -177,7 +177,7 @@ int main(int argc, char** argv)
double Gibbs0_kgWater = molarGibbs0 / (Xmol[0] * Mo); double Gibbs0_kgWater = molarGibbs0 / (Xmol[0] * Mo);
double osm1 = HMW->osmoticCoefficient(); double osm1 = HMW->osmoticCoefficient();
osm1 = osm1 - 1.0; osm1 -= 1.0;
/* /*
* Need the gas constant in kJ/gmolK * Need the gas constant in kJ/gmolK
*/ */