diff --git a/test_problems/cathermo/HMW_graph_GvI/Makefile.in b/test_problems/cathermo/HMW_graph_GvI/Makefile.in
index 10f71a480..4763d3257 100644
--- a/test_problems/cathermo/HMW_graph_GvI/Makefile.in
+++ b/test_problems/cathermo/HMW_graph_GvI/Makefile.in
@@ -11,11 +11,11 @@
.SUFFIXES : .d
# the name of the executable program to be created
-PROG_NAME = HMW_graph_GvT
+PROG_NAME = HMW_graph_GvI
# the object files to be linked together. List those generated from Fortran
# and from C/C++ separately
-OBJS = HMW_graph_GvT.o sortAlgorithms.o
+OBJS = HMW_graph_GvI.o sortAlgorithms.o
# Location of the current build. Will assume that tests are run
# in the source directory tree location
diff --git a/test_problems/cathermo/HMW_test_1/.cvsignore b/test_problems/cathermo/HMW_test_1/.cvsignore
new file mode 100644
index 000000000..8df702c54
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/.cvsignore
@@ -0,0 +1,10 @@
+Makefile
+HMW_test_1
+output.txt
+outputa.txt
+.cvsignore.swp
+.depends
+HMW_test_1.d
+diff_test.out
+table.csv
+
diff --git a/test_problems/cathermo/HMW_test_1/HMW_NaCl.xml b/test_problems/cathermo/HMW_test_1/HMW_NaCl.xml
new file mode 100644
index 000000000..842cbacbf
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/HMW_NaCl.xml
@@ -0,0 +1,182 @@
+
+
+
+
+ H2O(L) Cl- H+ Na+ OH-
+
+
+ 298.15
+ 101325.0
+
+ Na+:6.0954
+ Cl-:6.0954
+ H+:2.1628E-9
+ OH-:1.3977E-6
+
+
+
+
+
+
+
+ 1.175930
+
+ 3.28640E9
+
+
+
+ 0.0765
+ 0.2664
+ 0.0
+ 0.00127
+ 2.0
+
+
+
+ 0.1775
+ 0.2945
+ 0.0
+ 0.0008
+ 2.0
+
+
+
+ 0.0864
+ 0.253
+ 0.0
+ 0.0044
+ 2.0
+
+
+
+ -0.05
+
+
+
+ -0.05
+ -0.006
+
+
+
+ 0.036
+
+
+
+ 0.036
+ -0.004
+
+
+
+ H2O(L)
+
+ O H C Fe Si N Na Cl
+
+
+
+
+
+
+ H:2 O:1
+
+
+
+ 7.255750050E+01, -6.624454020E-01, 2.561987460E-03, -4.365919230E-06,
+ 2.781789810E-09, -4.188654990E+04, -2.882801370E+02
+
+
+
+
+ 0.05555555
+
+
+
+
+ Na:1
+ +1
+
+
+ 0.0
+ 2
+
+ -125.5213, -125.5213
+
+
+ 298.15, 333.15
+
+
+
+
+ 1.3
+
+
+
+
+ Cl:1
+ -1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ -52.8716 , -52.8716
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+ H:1
+ +1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ 0.0 , 0.0
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+ O:1 H:1
+ -1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ -91.523 , -91.523
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+
+
diff --git a/test_problems/cathermo/HMW_test_1/HMW_test_1.cpp b/test_problems/cathermo/HMW_test_1/HMW_test_1.cpp
new file mode 100644
index 000000000..abbefe84f
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/HMW_test_1.cpp
@@ -0,0 +1,164 @@
+/* ======================================================================= */
+/* $RCSfile$ */
+/* $Author$ */
+/* $Date$ */
+/* $Revision$ */
+/* ======================================================================= */
+
+#include
+
+#ifdef SRCDIRTREE
+#include "ct_defs.h"
+#include "HMWSoln.h"
+#else
+#include "cantera/Cantera.h"
+#include "HMWSoln.h"
+#endif
+
+using namespace Cantera;
+
+int CHECK_DEBUG_HKM = 0;
+
+void printUsage() {
+ cout << "usage: HMW_test_1 " << endl;
+ cout <<" -> Everything is hardwired" << endl;
+}
+
+void pAtable(HMWSoln *HMW) {
+ int nsp = HMW->nSpecies();
+ double acMol[100];
+ double mf[100];
+ double activities[100];
+ double moll[100];
+
+ HMW->m_debugCalc = 1;
+ HMW->getMolalityActivityCoefficients(acMol);
+ HMW->getMoleFractions(mf);
+ HMW->getActivities(activities);
+ HMW->m_debugCalc = 0;
+ HMW->getMolalities(moll);
+ string sName;
+ printf(" Name Activity ActCoeffMolal "
+ " MoleFract Molality\n");
+ for (int k = 0; k < nsp; k++) {
+ sName = HMW->speciesName(k);
+ printf("%16s %13g %13g %13g %13g\n",
+ sName.c_str(), activities[k], acMol[k], mf[k], moll[k]);
+ }
+
+}
+
+int main(int argc, char **argv)
+{
+
+ int retn = 0;
+
+ try {
+
+#ifdef DEBUG_HKM
+ CHECK_DEBUG_HKM = 1;
+#endif
+ if (CHECK_DEBUG_HKM != 1) {
+ printf("Check can only be done if DEBUG_HKM is defined\n");
+ exit(-1);
+ }
+ HMWSoln *HMW = new HMWSoln(1);
+
+ int nsp = HMW->nSpecies();
+
+ /*
+ *
+ */
+ double a1 = HMW->AionicRadius(1);
+ printf("a1 = %g\n", a1);
+ double a2 = HMW->AionicRadius(2);
+ printf("a2 = %g\n", a2);
+ double mu0[100];
+ double moll[100];
+ string sName;
+
+ HMW->getMolalities(moll);
+ moll[1] = 6.0997;
+ moll[2] = 2.1628E-9;
+ moll[3] = 6.0997;
+ moll[4] =1.3977E-6;
+ /*
+ * Equalize charge balance and dump into Cl-
+ */
+ double sum = -moll[1] + moll[2] + moll[3] - moll[4];
+ moll[1] += sum;
+
+ HMW->setMolalities(moll);
+ HMW->setState_TP(298.15, 1.01325E5);
+ pAtable(HMW);
+
+ HMW->setState_TP(298.15, 1.01325E5);
+ HMW->getStandardChemPotentials(mu0);
+ // translate from J/kmol to kJ/gmol
+ int k;
+ for (k = 0; k < nsp; k++) {
+ mu0[k] *= 1.0E-6;
+ }
+
+ printf(" Species Standard chemical potentials (kJ/gmol) \n");
+ printf("------------------------------------------------------------\n");
+ for (k = 0; k < nsp; k++) {
+ sName = HMW->speciesName(k);
+ printf("%16s %16.9g\n", sName.c_str(), mu0[k]);
+ }
+ printf("------------------------------------------------------------\n");
+ printf(" Some DeltaSS values: Delta(mu_0)\n");
+ double deltaG;
+ int i1, i2, j1;
+ double RT = 8.314472E-3 * 298.15;
+
+
+
+
+
+ i1 = HMW->speciesIndex("Na+");
+ i2 = HMW->speciesIndex("Cl-");
+ deltaG = -432.6304 - mu0[i1] - mu0[i2];
+ printf(" NaCl(S): Na+ + Cl- -> NaCl(S): %14.7g kJ/gmol \n",
+ deltaG);
+ printf(" : %14.7g (dimensionless) \n",
+ deltaG/RT);
+ printf(" : %14.7g (dimensionless/ln10) \n",
+ deltaG/(RT * log(10.0)));
+ printf(" G0(NaCl(S)) = %14.7g (fixed)\n", -432.6304);
+ printf(" G0(Na+) = %14.7g\n", mu0[i1]);
+ printf(" G0(Cl-) = %14.7g\n", mu0[i2]);
+
+ i1 = HMW->speciesIndex("H+");
+ i2 = HMW->speciesIndex("H2O(L)");
+ j1 = HMW->speciesIndex("OH-");
+ if (i1 < 0 || i2 < 0 || j1 < 0) {
+ printf("problems\n");
+ exit(-1);
+ }
+ deltaG = mu0[j1] + mu0[i1] - mu0[i2];
+ printf(" OH-: H2O(L) - H+ -> OH-: %14.7g kJ/gmol \n",
+ deltaG);
+ printf(" : %14.7g (dimensionless) \n",
+ deltaG/RT);
+ printf(" : %14.7g (dimensionless/ln10) \n",
+ deltaG/(RT * log(10.0)));
+ printf(" G0(OH-) = %14.7g\n", mu0[j1]);
+ printf(" G0(H+) = %14.7g\n", mu0[i1]);
+ printf(" G0(H2O(L)) = %14.7g\n", mu0[i2]);
+
+
+ printf("------------------------------------------------------------\n");
+
+ delete HMW;
+ HMW = 0;
+ Cantera::appdelete();
+
+ return retn;
+
+ } catch (CanteraError) {
+
+ showErrors();
+ return -1;
+ }
+}
diff --git a/test_problems/cathermo/HMW_test_1/Makefile.in b/test_problems/cathermo/HMW_test_1/Makefile.in
new file mode 100644
index 000000000..67e13e60e
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/Makefile.in
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+############################################################################
+#
+# Makefile to compile and link a C++ application to
+# Cantera.
+#
+#############################################################################
+
+# addition to suffixes
+.SUFFIXES : .d
+
+# the name of the executable program to be created
+PROG_NAME = HMW_test_1
+
+# the object files to be linked together. List those generated from Fortran
+# and from C/C++ separately
+OBJS = HMW_test_1
+
+# Location of the current build. Will assume that tests are run
+# in the source directory tree location
+src_dir_tree = 1
+
+# additional flags to be passed to the linker. If your program
+# requires other external libraries, put them here
+LINK_OPTIONS = @EXTRA_LINK@
+
+#############################################################################
+
+# Check to see whether we are in the msvc++ environment
+os_is_win = @OS_IS_WIN@
+
+# Fortran libraries
+FORT_LIBS = @FLIBS@
+
+# the C++ compiler
+CXX = @CXX@
+
+# C++ compile flags
+ifeq ($(src_dir_tree), 1)
+CXX_FLAGS = -DSRCDIRTREE @CXXFLAGS@
+else
+CXX_FLAGS = @CXXFLAGS@
+endif
+
+# Ending C++ linking libraries
+LCXX_END_LIBS = @LCXX_END_LIBS@
+
+# the directory where the Cantera libraries are located
+CANTERA_LIBDIR=@buildlib@
+
+# required Cantera libraries
+CANTERA_LIBS = @LOCAL_LIBS@ -lctcxx
+
+# the directory where Cantera include files may be found.
+ifeq ($(src_dir_tree), 1)
+CANTERA_INCDIR=../../../Cantera/src
+INCLUDES=-I$(CANTERA_INCDIR) -I$(CANTERA_INCDIR)/thermo
+else
+CANTERA_INCDIR=@ctroot@/build/include/cantera
+INCLUDES=-I$(CANTERA_INCDIR) -I$(CANTERA_INCDIR)/kernel
+endif
+
+# flags passed to the C++ compiler/linker for the linking step
+LCXX_FLAGS = -L$(CANTERA_LIBDIR) @LOCAL_LIB_DIRS@ @CXXFLAGS@
+
+# How to compile C++ source files to object files
+.@CXX_EXT@.@OBJ_EXT@:
+ $(CXX) -c $< $(INCLUDES) $(CXX_FLAGS)
+
+# How to compile the dependency file
+.cpp.d:
+ g++ -MM $(INCLUDES) $(CXX_FLAGS) $*.cpp > $*.d
+
+# List of dependency files to be created
+DEPENDS=$(OBJS:.o=.d)
+
+# Program Name
+PROGRAM = $(PROG_NAME)$(EXE_EXT)
+
+all: $(PROGRAM) .depends
+
+$(PROGRAM): $(OBJS) $(CANTERA_LIBDIR)/libcantera.a \
+ $(CANTERA_LIBDIR)/libcaThermo.a
+ $(CXX) -o $(PROGRAM) $(OBJS) $(LCXX_FLAGS) $(LINK_OPTIONS) \
+ $(CANTERA_LIBS) @LIBS@ $(FORT_LIBS) \
+ $(LCXX_END_LIBS)
+
+# depends target -> forces recalculation of dependencies
+depends:
+ @MAKE@ .depends
+
+.depends: $(DEPENDS)
+ cat $(DEPENDS) > .depends
+
+# Do the test -> For the windows vc++ environment, we have to skip checking on
+# whether the program is uptodate, because we don't utilize make
+# in that environment to build programs.
+test:
+ifeq ($(os_is_win), 1)
+else
+ @MAKE@ $(PROGRAM)
+endif
+ ./runtest
+
+clean:
+ $(RM) $(OBJS) $(PROGRAM) $(DEPENDS) .depends
+ ../../../bin/rm_cvsignore
+ (if test -d SunWS_cache ; then \
+ $(RM) -rf SunWS_cache ; \
+ fi )
+
diff --git a/test_problems/cathermo/HMW_test_1/README b/test_problems/cathermo/HMW_test_1/README
new file mode 100644
index 000000000..0c459c97a
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/README
@@ -0,0 +1,2 @@
+This test exercises the basic Pitzer model.
+
diff --git a/test_problems/cathermo/HMW_test_1/output_blessed.txt b/test_problems/cathermo/HMW_test_1/output_blessed.txt
new file mode 100644
index 000000000..454f66319
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/output_blessed.txt
@@ -0,0 +1,246 @@
+Index Name MoleF Molality Charge
+ 0 H2O(L) 8.1992706e-01 5.5508435e+01 0.0
+ 1 Cl- 9.0036447e-02 6.0953986e+00 -1.0
+ 2 H+ 3.1947185e-11 2.1628000e-09 1.0
+ 3 Na+ 9.0036468e-02 6.0954000e+00 1.0
+ 4 OH- 2.0645728e-08 1.3977000e-06 -1.0
+
+ Species Species beta0MX beta1MX beta2MX CphiMX alphaMX thetaij
+ Cl- H+ 0.17750 0.29450 0.00000 0.00080 2.00000 0.00000
+ Cl- Na+ 0.07650 0.26640 0.00000 0.00127 2.00000 0.00000
+ Cl- OH- 0.00000 0.00000 0.00000 0.00000 0.00000 -0.05000
+ H+ Na+ 0.00000 0.00000 0.00000 0.00000 0.00000 0.03600
+ H+ OH- 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
+ Na+ OH- 0.08640 0.25300 0.00000 0.00440 2.00000 0.00000
+
+ Species Species Species psi
+ Cl- H+ Na+ -0.00400
+ Cl- Na+ H+ -0.00400
+ Cl- Na+ OH- -0.00600
+ Cl- OH- Na+ -0.00600
+ H+ Cl- Na+ -0.00400
+ H+ Na+ Cl- -0.00400
+ Na+ Cl- H+ -0.00400
+ Na+ Cl- OH- -0.00600
+ Na+ H+ Cl- -0.00400
+ Na+ OH- Cl- -0.00600
+ OH- Cl- Na+ -0.00600
+ OH- Na+ Cl- -0.00600
+a1 = 3.04284e-10
+a2 = 3.04284e-10
+
+ Debugging information from hmw_act
+ Step 1:
+ ionic strenth = 6.0997000e+00
+ total molar charge = 1.2199400e+01
+ Is = 6.0997
+ ij = 1, elambda = 0.0454012, elambda1 = -0.00306854
+ ij = 2, elambda = 0.200776, elambda1 = -0.014532
+ ij = 3, elambda = 0.47109, elambda1 = -0.0351127
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 6, elambda = 1.98206, elambda1 = -0.153152
+ ij = 8, elambda = 3.57685, elambda1 = -0.279391
+ ij = 9, elambda = 4.55112, elambda1 = -0.356872
+ ij = 12, elambda = 8.18289, elambda1 = -0.646977
+ ij = 16, elambda = 14.6822, elambda1 = -1.16875
+ Step 2:
+ z1= 1 z2= 1 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 1 z2= 2 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 1 z2= 3 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 1 z2= 4 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 2 z2= 1 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 2 z2= 2 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 2 z2= 3 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 2 z2= 4 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 3 z2= 1 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 3 z2= 2 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 3 z2= 3 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 3 z2= 4 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 1 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 4 z2= 2 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 4 z2= 3 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 4 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ Step 3:
+ Species Species g(x) hfunc(x)
+ Cl- H+ 0.07849 -0.07133
+ Cl- Na+ 0.07849 -0.07133
+ Cl- OH- 0.00000 0.00000
+ H+ Na+ 0.00000 0.00000
+ H+ OH- 0.00000 0.00000
+ Na+ OH- 0.07849 -0.07133
+ Step 4:
+ Species Species BMX BprimeMX BphiMX
+1 0.200614: 0.1775 0.2945 0.0784862
+ Cl- H+ 0.2006142 -0.0034438 0.1796081
+2 0.0974087: 0.0765 0.2664 0.0784862
+ Cl- Na+ 0.0974087 -0.0031152 0.0784069
+ Cl- OH- 0.0000000 0.0000000 0.0000000
+ H+ Na+ 0.0000000 0.0000000 0.0000000
+5 0: 0 0 0
+ H+ OH- 0.0000000 0.0000000 0.0000000
+6 0.106257: 0.0864 0.253 0.0784862
+ Na+ OH- 0.1062570 -0.0029585 0.0882110
+ Step 5:
+ Species Species CMX
+ Cl- H+ 0.0004000
+ Cl- Na+ 0.0006350
+ Cl- OH- 0.0000000
+ H+ Na+ 0.0000000
+ H+ OH- 0.0000000
+ Na+ OH- 0.0022000
+ Step 6:
+ Species Species Phi_ij Phiprime_ij Phi^phi_ij
+ Cl- H+ 0.000000 0.000000 0.000000
+ Cl- Na+ 0.000000 0.000000 0.000000
+ Cl- OH- -0.050000 0.000000 -0.050000
+ H+ Na+ 0.036000 0.000000 0.036000
+ H+ OH- 0.000000 0.000000 0.000000
+ Na+ OH- 0.000000 0.000000 0.000000
+ Step 7:
+ initial value of F = -1.143942
+ F = -1.143942
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ Step 8:
+ Cl- lngamma[i]= -0.000641 gamma[i]= 0.999359
+ -1.25985 1.23558 -1.90923e-07 -5.27697e-11 0.023626 0
+ H+ lngamma[i]= 1.531269 gamma[i]= 4.624042
+ -1.25985 2.47714 0.290353 0 0.023626 0
+ Na+ lngamma[i]= -0.000641 gamma[i]= 0.999359
+ -1.25985 1.23558 1.02952e-10 -5.11533e-08 0.023626 0
+ OH- lngamma[i]= -0.609449 gamma[i]= 0.543650
+ -1.25985 1.45998 -0.833208 0 0.023626 0
+ Step 9:
+ term1= -1.489777 sum1= 3.205458 sum2= 0.000000 sum3= -0.000001 sum4= 0.000000 sum5= 0.000000
+ sum_m_phi_minus_1= 3.431360 osmotic_coef= 1.281273
+ Step 10:
+ Weight of Solvent = 18.01528
+ molalitySum = 12.1994
+ ln_a_water= -0.281593 a_water= 0.754581
+
+
+ Debugging information from hmw_act
+ Step 1:
+ ionic strenth = 6.0997000e+00
+ total molar charge = 1.2199400e+01
+ Is = 6.0997
+ ij = 1, elambda = 0.0454012, elambda1 = -0.00306854
+ ij = 2, elambda = 0.200776, elambda1 = -0.014532
+ ij = 3, elambda = 0.47109, elambda1 = -0.0351127
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 6, elambda = 1.98206, elambda1 = -0.153152
+ ij = 8, elambda = 3.57685, elambda1 = -0.279391
+ ij = 9, elambda = 4.55112, elambda1 = -0.356872
+ ij = 12, elambda = 8.18289, elambda1 = -0.646977
+ ij = 16, elambda = 14.6822, elambda1 = -1.16875
+ Step 2:
+ z1= 1 z2= 1 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 1 z2= 2 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 1 z2= 3 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 1 z2= 4 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 2 z2= 1 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 2 z2= 2 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 2 z2= 3 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 2 z2= 4 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 3 z2= 1 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 3 z2= 2 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 3 z2= 3 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 3 z2= 4 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 1 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 4 z2= 2 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 4 z2= 3 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 4 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ Step 3:
+ Species Species g(x) hfunc(x)
+ Cl- H+ 0.07849 -0.07133
+ Cl- Na+ 0.07849 -0.07133
+ Cl- OH- 0.00000 0.00000
+ H+ Na+ 0.00000 0.00000
+ H+ OH- 0.00000 0.00000
+ Na+ OH- 0.07849 -0.07133
+ Step 4:
+ Species Species BMX BprimeMX BphiMX
+1 0.200614: 0.1775 0.2945 0.0784862
+ Cl- H+ 0.2006142 -0.0034438 0.1796081
+2 0.0974087: 0.0765 0.2664 0.0784862
+ Cl- Na+ 0.0974087 -0.0031152 0.0784069
+ Cl- OH- 0.0000000 0.0000000 0.0000000
+ H+ Na+ 0.0000000 0.0000000 0.0000000
+5 0: 0 0 0
+ H+ OH- 0.0000000 0.0000000 0.0000000
+6 0.106257: 0.0864 0.253 0.0784862
+ Na+ OH- 0.1062570 -0.0029585 0.0882110
+ Step 5:
+ Species Species CMX
+ Cl- H+ 0.0004000
+ Cl- Na+ 0.0006350
+ Cl- OH- 0.0000000
+ H+ Na+ 0.0000000
+ H+ OH- 0.0000000
+ Na+ OH- 0.0022000
+ Step 6:
+ Species Species Phi_ij Phiprime_ij Phi^phi_ij
+ Cl- H+ 0.000000 0.000000 0.000000
+ Cl- Na+ 0.000000 0.000000 0.000000
+ Cl- OH- -0.050000 0.000000 -0.050000
+ H+ Na+ 0.036000 0.000000 0.036000
+ H+ OH- 0.000000 0.000000 0.000000
+ Na+ OH- 0.000000 0.000000 0.000000
+ Step 7:
+ initial value of F = -1.143942
+ F = -1.143942
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ F = -1.259847
+ Step 8:
+ Cl- lngamma[i]= -0.000641 gamma[i]= 0.999359
+ -1.25985 1.23558 -1.90923e-07 -5.27697e-11 0.023626 0
+ H+ lngamma[i]= 1.531269 gamma[i]= 4.624042
+ -1.25985 2.47714 0.290353 0 0.023626 0
+ Na+ lngamma[i]= -0.000641 gamma[i]= 0.999359
+ -1.25985 1.23558 1.02952e-10 -5.11533e-08 0.023626 0
+ OH- lngamma[i]= -0.609449 gamma[i]= 0.543650
+ -1.25985 1.45998 -0.833208 0 0.023626 0
+ Step 9:
+ term1= -1.489777 sum1= 3.205458 sum2= 0.000000 sum3= -0.000001 sum4= 0.000000 sum5= 0.000000
+ sum_m_phi_minus_1= 3.431360 osmotic_coef= 1.281273
+ Step 10:
+ Weight of Solvent = 18.01528
+ molalitySum = 12.1994
+ ln_a_water= -0.281593 a_water= 0.754581
+
+ Name Activity ActCoeffMolal MoleFract Molality
+ H2O(L) 0.754581 0.92042 0.819823 55.5084
+ Cl- 6.09579 0.999359 0.0900885 6.0997
+ H+ 1.00009e-08 4.62404 3.19431e-11 2.1628e-09
+ Na+ 6.09579 0.999359 0.0900885 6.0997
+ OH- 7.5986e-07 0.54365 2.06431e-08 1.3977e-06
+ Species Standard chemical potentials (kJ/gmol)
+------------------------------------------------------------
+ H2O(L) -306.685777
+ Cl- -131.064852
+ H+ 0.0017225
+ Na+ -311.160543
+ OH- -226.880122
+------------------------------------------------------------
+ Some DeltaSS values: Delta(mu_0)
+ NaCl(S): Na+ + Cl- -> NaCl(S): 9.594995 kJ/gmol
+ : 3.870573 (dimensionless)
+ : 1.680969 (dimensionless/ln10)
+ G0(NaCl(S)) = -432.6304 (fixed)
+ G0(Na+) = -311.1605
+ G0(Cl-) = -131.0649
+ OH-: H2O(L) - H+ -> OH-: 79.80738 kJ/gmol
+ : 32.1939 (dimensionless)
+ : 13.98163 (dimensionless/ln10)
+ G0(OH-) = -226.8801
+ G0(H+) = 0.0017225
+ G0(H2O(L)) = -306.6858
+------------------------------------------------------------
diff --git a/test_problems/cathermo/HMW_test_1/runtest b/test_problems/cathermo/HMW_test_1/runtest
new file mode 100755
index 000000000..621e5eb70
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_1/runtest
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+#
+temp_success="1"
+/bin/rm -f output.txt outputa.txt
+
+##########################################################################
+prog=HMW_test_1
+if test ! -x $prog ; then
+ echo $prog ' does not exist'
+ exit -1
+fi
+##########################################################################
+/bin/rm -f test.out test.diff output.txt
+
+#################################################################
+#
+CANTERA_DATA=${CANTERA_DATA:=../../../data/inputs}; export CANTERA_DATA
+CANTERA_BIN=${CANTERA_BIN:=../../../bin}
+
+#################################################################
+
+$prog > output.txt
+retnStat=$?
+if [ $retnStat != "0" ]
+then
+ temp_success="0"
+ echo "$prog returned with bad status, $retnStat, check output"
+fi
+
+$CANTERA_BIN/exp3to2.sh output.txt > outputa.txt
+diff -w outputa.txt output_blessed.txt > diff_test.out
+retnStat=$?
+if [ $retnStat = "0" ]
+then
+ echo "successful diff comparison on $prog test"
+else
+ echo "unsuccessful diff comparison on $prog test"
+ echo "FAILED" > csvCode.txt
+ temp_success="0"
+fi
+
diff --git a/test_problems/cathermo/HMW_test_3/.cvsignore b/test_problems/cathermo/HMW_test_3/.cvsignore
new file mode 100644
index 000000000..929315411
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/.cvsignore
@@ -0,0 +1,8 @@
+.depends
+HMW_test_3
+HMW_test_3.d
+Makefile
+diff_test.out
+output.txt
+outputa.txt
+table.csv
diff --git a/test_problems/cathermo/HMW_test_3/HMW_NaCl_tc.xml b/test_problems/cathermo/HMW_test_3/HMW_NaCl_tc.xml
new file mode 100644
index 000000000..42ec12e84
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/HMW_NaCl_tc.xml
@@ -0,0 +1,190 @@
+
+
+
+
+ H2O(L) Cl- H+ Na+ OH-
+
+
+ 298.15
+ 101325.0
+
+ Na+:6.0954
+ Cl-:6.0954
+ H+:2.1628E-9
+ OH-:1.3977E-6
+
+
+
+
+
+
+
+ 1.175930
+
+ 3.28640E9
+
+
+
+ 0.0765, 0.008946, -3.3158E-6,
+ -777.03, -4.4706
+
+ 0.2664, 6.1608E-5, 1.0715E-6
+ 0.0
+ 0.00127, -4.655E-5, 0.0,
+ 33.317, 0.09421
+
+ 2.0
+
+
+
+ 0.1775, 0.0, 0.0,
+ 0.0, 0.0
+
+ 0.2945, 0.0, 0.0
+ 0.0
+ 0.0008, 0.0, 0.0,
+ 0.0, 0.0
+
+ 2.0
+
+
+
+ 0.0864, 0.0, 0.0, 0.0, 0.0
+ 0.253, 0.0, 0.0
+ 0.0
+ 0.0044, 0.0, 0.0, 0.0, 0.0
+ 2.0
+
+
+
+ -0.05
+
+
+
+ -0.05
+ -0.006
+
+
+
+ 0.036
+
+
+
+ 0.036
+ -0.004
+
+
+
+ H2O(L)
+
+ O H C Fe Si N Na Cl
+
+
+
+
+
+
+ H:2 O:1
+
+
+
+ 7.255750050E+01, -6.624454020E-01, 2.561987460E-03, -4.365919230E-06,
+ 2.781789810E-09, -4.188654990E+04, -2.882801370E+02
+
+
+
+
+ 0.05555555
+
+
+
+
+ Na:1
+ +1
+
+
+ 0.0
+ 2
+
+ -125.5213, -125.5213
+
+
+ 298.15, 333.15
+
+
+
+
+ 1.3
+
+
+
+
+ Cl:1
+ -1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ -52.8716 , -52.8716
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+ H:1
+ +1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ 0.0 , 0.0
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+ O:1 H:1
+ -1
+
+ 1.3
+
+
+
+ 0.0
+ 2
+
+ -91.523 , -91.523
+
+
+ 298.15, 333.15
+
+
+
+
+
+
+
+
diff --git a/test_problems/cathermo/HMW_test_3/HMW_test_3.cpp b/test_problems/cathermo/HMW_test_3/HMW_test_3.cpp
new file mode 100644
index 000000000..04ae44eb4
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/HMW_test_3.cpp
@@ -0,0 +1,151 @@
+/* ======================================================================= */
+/* $RCSfile$ */
+/* $Author$ */
+/* $Date$ */
+/* $Revision$ */
+/* ======================================================================= */
+
+#include
+
+#ifdef SRCDIRTREE
+#include "ct_defs.h"
+#include "HMWSoln.h"
+#else
+#include "cantera/Cantera.h"
+#include "HMWSoln.h"
+#endif
+
+using namespace Cantera;
+
+
+void printUsage() {
+ cout << "usage: HMW_test_1 " << endl;
+ cout <<" -> Everything is hardwired" << endl;
+}
+
+void pAtable(HMWSoln *HMW) {
+ int nsp = HMW->nSpecies();
+ double acMol[100];
+ double mf[100];
+ double activities[100];
+ double moll[100];
+
+ HMW->getMolalityActivityCoefficients(acMol);
+ HMW->getMoleFractions(mf);
+ HMW->getActivities(activities);
+ HMW->getMolalities(moll);
+ string sName;
+ printf(" Name Activity ActCoeffMolal "
+ " MoleFract Molality\n");
+ for (int k = 0; k < nsp; k++) {
+ sName = HMW->speciesName(k);
+ printf("%16s %13g %13g %13g %13g\n",
+ sName.c_str(), activities[k], acMol[k], mf[k], moll[k]);
+ }
+
+}
+
+int main(int argc, char **argv)
+{
+ int retn = 0;
+ try {
+
+ HMWSoln *HMW = new HMWSoln("HMW_NaCl_tc.xml");
+
+ int nsp = HMW->nSpecies();
+
+ /*
+ *
+ */
+ double a1 = HMW->AionicRadius(1);
+ printf("a1 = %g\n", a1);
+ double a2 = HMW->AionicRadius(2);
+ printf("a2 = %g\n", a2);
+ double mu0[100];
+ double moll[100];
+ string sName;
+
+ HMW->getMolalities(moll);
+ moll[1] = 6.0997;
+ moll[2] = 2.1628E-9;
+ moll[3] = 6.0997;
+ moll[4] =1.3977E-6;
+ double Temp = 150 + 273.15;
+ /*
+ * Equalize charge balance and dump into Cl-
+ */
+ double sum = -moll[1] + moll[2] + moll[3] - moll[4];
+ moll[1] += sum;
+
+ HMW->setState_TPM(Temp, OneAtm, moll);
+#ifdef DEBUG_HKM
+ HMW->m_debugCalc = true;
+#endif
+ printf(" Temperature = %g K\n", Temp);
+ HMW->printCoeffs();
+ pAtable(HMW);
+
+ HMW->setState_TP(Temp, 1.01325E5);
+ HMW->getStandardChemPotentials(mu0);
+ // translate from J/kmol to kJ/gmol
+ int k;
+ for (k = 0; k < nsp; k++) {
+ mu0[k] *= 1.0E-6;
+ }
+
+ printf(" Species Standard chemical potentials (kJ/gmol) \n");
+ printf("------------------------------------------------------------\n");
+ for (k = 0; k < nsp; k++) {
+ sName = HMW->speciesName(k);
+ printf("%16s %16.9g\n", sName.c_str(), mu0[k]);
+ }
+ printf("------------------------------------------------------------\n");
+ printf(" Some DeltaSS values: Delta(mu_0)\n");
+ double deltaG;
+ int i1, i2, j1;
+ double RT = 8.314472E-3 * 298.15;
+
+
+
+ i1 = HMW->speciesIndex("Na+");
+ i2 = HMW->speciesIndex("Cl-");
+ deltaG = -432.6304 - mu0[i1] - mu0[i2];
+ printf(" NaCl(S): Na+ + Cl- -> NaCl(S): %14.7g kJ/gmol \n",
+ deltaG);
+ printf(" : %14.7g (dimensionless) \n",
+ deltaG/RT);
+ printf(" : %14.7g (dimensionless/ln10) \n",
+ deltaG/(RT * log(10.0)));
+
+ i1 = HMW->speciesIndex("H+");
+ i2 = HMW->speciesIndex("H2O(L)");
+ j1 = HMW->speciesIndex("OH-");
+ if (i1 < 0 || i2 < 0 || j1 < 0) {
+ printf("problems\n");
+ exit(-1);
+ }
+ deltaG = mu0[j1] + mu0[i1] - mu0[i2];
+ printf(" OH-: H2O(L) - H+ -> OH-: %14.7g kJ/gmol \n",
+ deltaG);
+ printf(" : %14.7g (dimensionless) \n",
+ deltaG/RT);
+ printf(" : %14.7g (dimensionless/ln10) \n",
+ deltaG/(RT * log(10.0)));
+
+
+
+ printf("------------------------------------------------------------\n");
+
+
+ delete HMW;
+ HMW = 0;
+ Cantera::appdelete();
+
+ return retn;
+
+ } catch (CanteraError) {
+
+ showErrors();
+ return -1;
+ }
+}
diff --git a/test_problems/cathermo/HMW_test_3/Makefile.in b/test_problems/cathermo/HMW_test_3/Makefile.in
new file mode 100644
index 000000000..deaaa74b9
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/Makefile.in
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+############################################################################
+#
+# Makefile to compile and link a C++ application to
+# Cantera.
+#
+#############################################################################
+
+# addition to suffixes
+.SUFFIXES : .d
+
+# the name of the executable program to be created
+PROG_NAME = HMW_test_3
+
+# the object files to be linked together. List those generated from Fortran
+# and from C/C++ separately
+OBJS = HMW_test_3
+
+# Location of the current build. Will assume that tests are run
+# in the source directory tree location
+src_dir_tree = 1
+
+# additional flags to be passed to the linker. If your program
+# requires other external libraries, put them here
+LINK_OPTIONS = @EXTRA_LINK@
+
+#############################################################################
+
+# Check to see whether we are in the msvc++ environment
+os_is_win = @OS_IS_WIN@
+
+# Fortran libraries
+FORT_LIBS = @FLIBS@
+
+# the C++ compiler
+CXX = @CXX@
+
+# C++ compile flags
+ifeq ($(src_dir_tree), 1)
+CXX_FLAGS = -DSRCDIRTREE @CXXFLAGS@
+else
+CXX_FLAGS = @CXXFLAGS@
+endif
+
+# Ending C++ linking libraries
+LCXX_END_LIBS = @LCXX_END_LIBS@
+
+# the directory where the Cantera libraries are located
+CANTERA_LIBDIR=@buildlib@
+
+# required Cantera libraries
+CANTERA_LIBS = @LOCAL_LIBS@ -lctcxx
+
+# the directory where Cantera include files may be found.
+ifeq ($(src_dir_tree), 1)
+CANTERA_INCDIR=../../../Cantera/src
+INCLUDES=-I$(CANTERA_INCDIR) -I$(CANTERA_INCDIR)/thermo
+else
+CANTERA_INCDIR=@ctroot@/build/include/cantera
+INCLUDES=-I$(CANTERA_INCDIR) -I$(CANTERA_INCDIR)/kernel
+endif
+
+# flags passed to the C++ compiler/linker for the linking step
+LCXX_FLAGS = -L$(CANTERA_LIBDIR) @LOCAL_LIB_DIRS@ @CXXFLAGS@
+
+# How to compile C++ source files to object files
+.@CXX_EXT@.@OBJ_EXT@:
+ $(CXX) -c $< $(INCLUDES) $(CXX_FLAGS)
+
+# How to compile the dependency file
+.cpp.d:
+ g++ -MM $(INCLUDES) $(CXX_FLAGS) $*.cpp > $*.d
+
+# List of dependency files to be created
+DEPENDS=$(OBJS:.o=.d)
+
+# Program Name
+PROGRAM = $(PROG_NAME)$(EXE_EXT)
+
+all: $(PROGRAM) .depends
+
+$(PROGRAM): $(OBJS) $(CANTERA_LIBDIR)/libcantera.a \
+ $(CANTERA_LIBDIR)/libcaThermo.a
+ $(CXX) -o $(PROGRAM) $(OBJS) $(LCXX_FLAGS) $(LINK_OPTIONS) \
+ $(CANTERA_LIBS) @LIBS@ $(FORT_LIBS) \
+ $(LCXX_END_LIBS)
+
+# depends target -> forces recalculation of dependencies
+depends:
+ @MAKE@ .depends
+
+.depends: $(DEPENDS)
+ cat $(DEPENDS) > .depends
+
+# Do the test -> For the windows vc++ environment, we have to skip checking on
+# whether the program is uptodate, because we don't utilize make
+# in that environment to build programs.
+test:
+ifeq ($(os_is_win), 1)
+else
+ @MAKE@ $(PROGRAM)
+endif
+ ./runtest
+
+clean:
+ $(RM) $(OBJS) $(PROGRAM) $(DEPENDS) .depends
+ ../../../bin/rm_cvsignore
+ (if test -d SunWS_cache ; then \
+ $(RM) -rf SunWS_cache ; \
+ fi )
+
diff --git a/test_problems/cathermo/HMW_test_3/README b/test_problems/cathermo/HMW_test_3/README
new file mode 100644
index 000000000..0c459c97a
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/README
@@ -0,0 +1,2 @@
+This test exercises the basic Pitzer model.
+
diff --git a/test_problems/cathermo/HMW_test_3/output_blessed.txt b/test_problems/cathermo/HMW_test_3/output_blessed.txt
new file mode 100644
index 000000000..c4e48a56d
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/output_blessed.txt
@@ -0,0 +1,335 @@
+a1 = 3.04284e-10
+a2 = 3.04284e-10
+ Temperature = 423.15 K
+Index Name MoleF Molality Charge
+ 0 H2O(L) 8.1982292e-01 5.5508435e+01 0.0
+ 1 Cl- 9.0088519e-02 6.0996986e+00 -1.0
+ 2 H+ 3.1943127e-11 2.1628000e-09 1.0
+ 3 Na+ 9.0088540e-02 6.0997000e+00 1.0
+ 4 OH- 2.0643106e-08 1.3977000e-06 -1.0
+
+ Species Species beta0MX beta1MX beta2MX CphiMX alphaMX thetaij
+ Cl- H+ 0.17750 0.29450 0.00000 0.00080 2.00000 0.00000
+ Cl- Na+ 0.10037 0.37071 0.00000 -0.00457 2.00000 0.00000
+ Cl- OH- 0.00000 0.00000 0.00000 0.00000 0.00000 -0.05000
+ H+ Na+ 0.00000 0.00000 0.00000 0.00000 0.00000 0.03600
+ H+ OH- 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
+ Na+ OH- 0.08640 0.25300 0.00000 0.00440 2.00000 0.00000
+
+ Species Species Species psi
+ Cl- H+ Na+ -0.00400
+ Cl- Na+ H+ -0.00400
+ Cl- Na+ OH- -0.00600
+ Cl- OH- Na+ -0.00600
+ H+ Cl- Na+ -0.00400
+ H+ Na+ Cl- -0.00400
+ Na+ Cl- H+ -0.00400
+ Na+ Cl- OH- -0.00600
+ Na+ H+ Cl- -0.00400
+ Na+ OH- Cl- -0.00600
+ OH- Cl- Na+ -0.00600
+ OH- Na+ Cl- -0.00600
+
+ Debugging information from hmw_act
+ Step 1:
+ ionic strenth = 6.0997000e+00
+ total molar charge = 1.2199400e+01
+ Is = 6.0997
+ ij = 1, elambda = 0.0454012, elambda1 = -0.00306854
+ ij = 2, elambda = 0.200776, elambda1 = -0.014532
+ ij = 3, elambda = 0.47109, elambda1 = -0.0351127
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 6, elambda = 1.98206, elambda1 = -0.153152
+ ij = 8, elambda = 3.57685, elambda1 = -0.279391
+ ij = 9, elambda = 4.55112, elambda1 = -0.356872
+ ij = 12, elambda = 8.18289, elambda1 = -0.646977
+ ij = 16, elambda = 14.6822, elambda1 = -1.16875
+ Step 2:
+ z1= 1 z2= 1 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 1 z2= 2 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 1 z2= 3 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 1 z2= 4 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 2 z2= 1 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 2 z2= 2 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 2 z2= 3 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 2 z2= 4 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 3 z2= 1 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 3 z2= 2 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 3 z2= 3 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 3 z2= 4 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 1 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 4 z2= 2 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 4 z2= 3 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 4 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ Step 3:
+ Species Species g(x) hfunc(x)
+ Cl- H+ 0.07849 -0.07133
+ Cl- Na+ 0.07849 -0.07133
+ Cl- OH- 0.00000 0.00000
+ H+ Na+ 0.00000 0.00000
+ H+ OH- 0.00000 0.00000
+ Na+ OH- 0.07849 -0.07133
+ Step 4:
+ Species Species BMX BprimeMX BphiMX
+1 0.200614: 0.1775 0.2945 0.0784862
+ Cl- H+ 0.2006142 -0.0034438 0.1796081
+2 0.129466: 0.10037 0.37071 0.0784862
+ Cl- Na+ 0.1294658 -0.0043350 0.1030237
+ Cl- OH- 0.0000000 0.0000000 0.0000000
+ H+ Na+ 0.0000000 0.0000000 0.0000000
+5 0: 0 0 0
+ H+ OH- 0.0000000 0.0000000 0.0000000
+6 0.106257: 0.0864 0.253 0.0784862
+ Na+ OH- 0.1062570 -0.0029585 0.0882110
+ Step 5:
+ Species Species CMX
+ Cl- H+ 0.0004000
+ Cl- Na+ -0.0022865
+ Cl- OH- 0.0000000
+ H+ Na+ 0.0000000
+ H+ OH- 0.0000000
+ Na+ OH- 0.0022000
+ Step 6:
+ Species Species Phi_ij Phiprime_ij Phi^phi_ij
+ Cl- H+ 0.000000 0.000000 0.000000
+ Cl- Na+ 0.000000 0.000000 0.000000
+ Cl- OH- -0.050000 0.000000 -0.050000
+ H+ Na+ 0.036000 0.000000 0.036000
+ H+ OH- 0.000000 0.000000 0.000000
+ Na+ OH- 0.000000 0.000000 0.000000
+ Step 7:
+ initial value of F = -1.143942
+ F = -1.143942
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ Step 8:
+ Cl- lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 -1.90923e-07 -5.27697e-11 -0.085074 0
+ H+ lngamma[i]= 1.377186 gamma[i]= 3.963731
+ -1.30523 2.47714 0.290353 0 -0.085074 0
+ Na+ lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 1.02952e-10 -5.11533e-08 -0.085074 0
+ OH- lngamma[i]= -0.763533 gamma[i]= 0.466017
+ -1.30523 1.45998 -0.833208 0 -0.085074 0
+ Step 9:
+ term1= -1.489777 sum1= 2.795284 sum2= 0.000000 sum3= -0.000001 sum4= 0.000000 sum5= 0.000000
+ sum_m_phi_minus_1= 2.611013 osmotic_coef= 1.214028
+ Step 10:
+ Weight of Solvent = 18.01528
+ molalitySum = 12.1994
+ ln_a_water= -0.266814 a_water= 0.765816
+
+
+ Debugging information from hmw_act
+ Step 1:
+ ionic strenth = 6.0997000e+00
+ total molar charge = 1.2199400e+01
+ Is = 6.0997
+ ij = 1, elambda = 0.0454012, elambda1 = -0.00306854
+ ij = 2, elambda = 0.200776, elambda1 = -0.014532
+ ij = 3, elambda = 0.47109, elambda1 = -0.0351127
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 6, elambda = 1.98206, elambda1 = -0.153152
+ ij = 8, elambda = 3.57685, elambda1 = -0.279391
+ ij = 9, elambda = 4.55112, elambda1 = -0.356872
+ ij = 12, elambda = 8.18289, elambda1 = -0.646977
+ ij = 16, elambda = 14.6822, elambda1 = -1.16875
+ Step 2:
+ z1= 1 z2= 1 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 1 z2= 2 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 1 z2= 3 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 1 z2= 4 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 2 z2= 1 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 2 z2= 2 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 2 z2= 3 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 2 z2= 4 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 3 z2= 1 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 3 z2= 2 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 3 z2= 3 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 3 z2= 4 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 1 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 4 z2= 2 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 4 z2= 3 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 4 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ Step 3:
+ Species Species g(x) hfunc(x)
+ Cl- H+ 0.07849 -0.07133
+ Cl- Na+ 0.07849 -0.07133
+ Cl- OH- 0.00000 0.00000
+ H+ Na+ 0.00000 0.00000
+ H+ OH- 0.00000 0.00000
+ Na+ OH- 0.07849 -0.07133
+ Step 4:
+ Species Species BMX BprimeMX BphiMX
+1 0.200614: 0.1775 0.2945 0.0784862
+ Cl- H+ 0.2006142 -0.0034438 0.1796081
+2 0.129466: 0.10037 0.37071 0.0784862
+ Cl- Na+ 0.1294658 -0.0043350 0.1030237
+ Cl- OH- 0.0000000 0.0000000 0.0000000
+ H+ Na+ 0.0000000 0.0000000 0.0000000
+5 0: 0 0 0
+ H+ OH- 0.0000000 0.0000000 0.0000000
+6 0.106257: 0.0864 0.253 0.0784862
+ Na+ OH- 0.1062570 -0.0029585 0.0882110
+ Step 5:
+ Species Species CMX
+ Cl- H+ 0.0004000
+ Cl- Na+ -0.0022865
+ Cl- OH- 0.0000000
+ H+ Na+ 0.0000000
+ H+ OH- 0.0000000
+ Na+ OH- 0.0022000
+ Step 6:
+ Species Species Phi_ij Phiprime_ij Phi^phi_ij
+ Cl- H+ 0.000000 0.000000 0.000000
+ Cl- Na+ 0.000000 0.000000 0.000000
+ Cl- OH- -0.050000 0.000000 -0.050000
+ H+ Na+ 0.036000 0.000000 0.036000
+ H+ OH- 0.000000 0.000000 0.000000
+ Na+ OH- 0.000000 0.000000 0.000000
+ Step 7:
+ initial value of F = -1.143942
+ F = -1.143942
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ Step 8:
+ Cl- lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 -1.90923e-07 -5.27697e-11 -0.085074 0
+ H+ lngamma[i]= 1.377186 gamma[i]= 3.963731
+ -1.30523 2.47714 0.290353 0 -0.085074 0
+ Na+ lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 1.02952e-10 -5.11533e-08 -0.085074 0
+ OH- lngamma[i]= -0.763533 gamma[i]= 0.466017
+ -1.30523 1.45998 -0.833208 0 -0.085074 0
+ Step 9:
+ term1= -1.489777 sum1= 2.795284 sum2= 0.000000 sum3= -0.000001 sum4= 0.000000 sum5= 0.000000
+ sum_m_phi_minus_1= 2.611013 osmotic_coef= 1.214028
+ Step 10:
+ Weight of Solvent = 18.01528
+ molalitySum = 12.1994
+ ln_a_water= -0.266814 a_water= 0.765816
+
+ Name Activity ActCoeffMolal MoleFract Molality
+ H2O(L) 0.765816 0.934123 0.819823 55.5084
+ Cl- 6.2164 1.01913 0.0900885 6.0997
+ H+ 8.57276e-09 3.96373 3.19431e-11 2.1628e-09
+ Na+ 6.21641 1.01913 0.0900885 6.0997
+ OH- 6.51352e-07 0.466017 2.06431e-08 1.3977e-06
+
+ Debugging information from hmw_act
+ Step 1:
+ ionic strenth = 6.0997000e+00
+ total molar charge = 1.2199400e+01
+ Is = 6.0997
+ ij = 1, elambda = 0.0454012, elambda1 = -0.00306854
+ ij = 2, elambda = 0.200776, elambda1 = -0.014532
+ ij = 3, elambda = 0.47109, elambda1 = -0.0351127
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 4, elambda = 0.857674, elambda1 = -0.0650149
+ ij = 6, elambda = 1.98206, elambda1 = -0.153152
+ ij = 8, elambda = 3.57685, elambda1 = -0.279391
+ ij = 9, elambda = 4.55112, elambda1 = -0.356872
+ ij = 12, elambda = 8.18289, elambda1 = -0.646977
+ ij = 16, elambda = 14.6822, elambda1 = -1.16875
+ Step 2:
+ z1= 1 z2= 1 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 1 z2= 2 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 1 z2= 3 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 1 z2= 4 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 2 z2= 1 E-theta(I) = -0.059044, E-thetaprime(I) = 0.004790
+ z1= 2 z2= 2 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 2 z2= 3 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 2 z2= 4 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 3 z2= 1 E-theta(I) = -0.355533, E-thetaprime(I) = 0.028969
+ z1= 3 z2= 2 E-theta(I) = -0.178237, E-thetaprime(I) = 0.014566
+ z1= 3 z2= 3 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ z1= 3 z2= 4 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 1 E-theta(I) = -1.068400, E-thetaprime(I) = 0.087216
+ z1= 4 z2= 2 E-theta(I) = -0.951372, E-thetaprime(I) = 0.077813
+ z1= 4 z2= 3 E-theta(I) = -0.357010, E-thetaprime(I) = 0.029220
+ z1= 4 z2= 4 E-theta(I) = 0.000000, E-thetaprime(I) = 0.000000
+ Step 3:
+ Species Species g(x) hfunc(x)
+ Cl- H+ 0.07849 -0.07133
+ Cl- Na+ 0.07849 -0.07133
+ Cl- OH- 0.00000 0.00000
+ H+ Na+ 0.00000 0.00000
+ H+ OH- 0.00000 0.00000
+ Na+ OH- 0.07849 -0.07133
+ Step 4:
+ Species Species BMX BprimeMX BphiMX
+1 0.200614: 0.1775 0.2945 0.0784862
+ Cl- H+ 0.2006142 -0.0034438 0.1796081
+2 0.129466: 0.10037 0.37071 0.0784862
+ Cl- Na+ 0.1294658 -0.0043350 0.1030237
+ Cl- OH- 0.0000000 0.0000000 0.0000000
+ H+ Na+ 0.0000000 0.0000000 0.0000000
+5 0: 0 0 0
+ H+ OH- 0.0000000 0.0000000 0.0000000
+6 0.106257: 0.0864 0.253 0.0784862
+ Na+ OH- 0.1062570 -0.0029585 0.0882110
+ Step 5:
+ Species Species CMX
+ Cl- H+ 0.0004000
+ Cl- Na+ -0.0022865
+ Cl- OH- 0.0000000
+ H+ Na+ 0.0000000
+ H+ OH- 0.0000000
+ Na+ OH- 0.0022000
+ Step 6:
+ Species Species Phi_ij Phiprime_ij Phi^phi_ij
+ Cl- H+ 0.000000 0.000000 0.000000
+ Cl- Na+ 0.000000 0.000000 0.000000
+ Cl- OH- -0.050000 0.000000 -0.050000
+ H+ Na+ 0.036000 0.000000 0.036000
+ H+ OH- 0.000000 0.000000 0.000000
+ Na+ OH- 0.000000 0.000000 0.000000
+ Step 7:
+ initial value of F = -1.143942
+ F = -1.143942
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ F = -1.305230
+ Step 8:
+ Cl- lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 -1.90923e-07 -5.27697e-11 -0.085074 0
+ H+ lngamma[i]= 1.377186 gamma[i]= 3.963731
+ -1.30523 2.47714 0.290353 0 -0.085074 0
+ Na+ lngamma[i]= 0.018952 gamma[i]= 1.019133
+ -1.30523 1.40926 1.02952e-10 -5.11533e-08 -0.085074 0
+ OH- lngamma[i]= -0.763533 gamma[i]= 0.466017
+ -1.30523 1.45998 -0.833208 0 -0.085074 0
+ Step 9:
+ term1= -1.489777 sum1= 2.795284 sum2= 0.000000 sum3= -0.000001 sum4= 0.000000 sum5= 0.000000
+ sum_m_phi_minus_1= 2.611013 osmotic_coef= 1.214028
+ Step 10:
+ Weight of Solvent = 18.01528
+ molalitySum = 12.1994
+ ln_a_water= -0.266814 a_water= 0.765816
+
+ Species Standard chemical potentials (kJ/gmol)
+------------------------------------------------------------
+ H2O(L) -317.175857
+ Cl- -186.014783
+ H+ 0.0017225
+ Na+ -441.615962
+ OH- -322.000801
+------------------------------------------------------------
+ Some DeltaSS values: Delta(mu_0)
+ NaCl(S): Na+ + Cl- -> NaCl(S): 195.0003 kJ/gmol
+ : 78.66216 (dimensionless)
+ : 34.16254 (dimensionless/ln10)
+ OH-: H2O(L) - H+ -> OH-: -4.823222 kJ/gmol
+ : -1.945664 (dimensionless)
+ : -0.8449909 (dimensionless/ln10)
+------------------------------------------------------------
diff --git a/test_problems/cathermo/HMW_test_3/runtest b/test_problems/cathermo/HMW_test_3/runtest
new file mode 100755
index 000000000..7f2d0dd40
--- /dev/null
+++ b/test_problems/cathermo/HMW_test_3/runtest
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+#
+temp_success="1"
+/bin/rm -f output.txt outputa.txt
+
+##########################################################################
+prog=HMW_test_3
+if test ! -x $prog ; then
+ echo $prog ' does not exist'
+ exit -1
+fi
+##########################################################################
+/bin/rm -f test.out test.diff output.txt
+
+#################################################################
+#
+CANTERA_DATA=${CANTERA_DATA:=../../../data/inputs}; export CANTERA_DATA
+CANTERA_BIN=${CANTERA_BIN:=../../../bin}
+
+#################################################################
+
+$prog > output.txt
+retnStat=$?
+if [ $retnStat != "0" ]
+then
+ temp_success="0"
+ echo "$prog returned with bad status, $retnStat, check output"
+fi
+
+$CANTERA_BIN/exp3to2.sh output.txt > outputa.txt
+diff -w outputa.txt output_blessed.txt > diff_test.out
+retnStat=$?
+if [ $retnStat = "0" ]
+then
+ echo "successful diff comparison on $prog test"
+else
+ echo "unsuccessful diff comparison on $prog test"
+ echo "FAILED" > csvCode.txt
+ temp_success="0"
+fi
+
diff --git a/test_problems/cathermo/Makefile.in b/test_problems/cathermo/Makefile.in
index 9747118cc..bea6061b5 100644
--- a/test_problems/cathermo/Makefile.in
+++ b/test_problems/cathermo/Makefile.in
@@ -23,6 +23,8 @@ ifeq ($(test_electrolytes),1)
cd HMW_graph_HvT; @MAKE@ all
cd HMW_graph_CpvT; @MAKE@ all
cd HMW_graph_VvT; @MAKE@ all
+ cd HMW_test_1; @MAKE@ all
+ cd HMW_test_3; @MAKE@ all
endif
test:
@@ -41,6 +43,8 @@ ifeq ($(test_electrolytes),1)
cd HMW_graph_HvT; @MAKE@ test
cd HMW_graph_CpvT; @MAKE@ test
cd HMW_graph_VvT; @MAKE@ test
+ cd HMW_test_1; @MAKE@ test
+ cd HMW_test_3; @MAKE@ test
endif
clean:
@@ -57,6 +61,8 @@ clean:
cd HMW_graph_HvT; @MAKE@ clean
cd HMW_graph_CpvT; @MAKE@ clean
cd HMW_graph_VvT; @MAKE@ clean
+ cd HMW_test_1; @MAKE@ clean
+ cd HMW_test_3; @MAKE@ clean
depends:
ifeq ($(test_issp),1)
@@ -74,4 +80,6 @@ ifeq ($(test_electrolytes),1)
cd HMW_graph_HvT; @MAKE@ depends
cd HMW_graph_CpvT; @MAKE@ depends
cd HMW_graph_VvT; @MAKE@ depends
+ cd HMW_test_1; @MAKE@ depends
+ cd HMW_test_3; @MAKE@ depends
endif