pyEQL 0.5.2__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. pyEQL/__init__.py +50 -43
  2. pyEQL/activity_correction.py +481 -707
  3. pyEQL/database/geothermal.dat +5693 -0
  4. pyEQL/database/llnl.dat +19305 -0
  5. pyEQL/database/phreeqc_license.txt +54 -0
  6. pyEQL/database/pyeql_db.json +35902 -0
  7. pyEQL/engines.py +793 -0
  8. pyEQL/equilibrium.py +148 -228
  9. pyEQL/functions.py +121 -416
  10. pyEQL/pint_custom_units.txt +2 -2
  11. pyEQL/presets/Ringers lactate.yaml +20 -0
  12. pyEQL/presets/normal saline.yaml +17 -0
  13. pyEQL/presets/rainwater.yaml +17 -0
  14. pyEQL/presets/seawater.yaml +29 -0
  15. pyEQL/presets/urine.yaml +26 -0
  16. pyEQL/presets/wastewater.yaml +21 -0
  17. pyEQL/salt_ion_match.py +53 -284
  18. pyEQL/solute.py +126 -191
  19. pyEQL/solution.py +2163 -2090
  20. pyEQL/utils.py +165 -0
  21. pyEQL-1.1.0.dist-info/AUTHORS.md +13 -0
  22. {pyEQL-0.5.2.dist-info → pyEQL-1.1.0.dist-info}/COPYING +1 -1
  23. pyEQL-0.5.2.dist-info/LICENSE → pyEQL-1.1.0.dist-info/LICENSE.txt +3 -7
  24. pyEQL-1.1.0.dist-info/METADATA +129 -0
  25. pyEQL-1.1.0.dist-info/RECORD +27 -0
  26. {pyEQL-0.5.2.dist-info → pyEQL-1.1.0.dist-info}/WHEEL +2 -1
  27. pyEQL/chemical_formula.py +0 -1006
  28. pyEQL/database/Erying_viscosity.tsv +0 -18
  29. pyEQL/database/Jones_Dole_B.tsv +0 -32
  30. pyEQL/database/Jones_Dole_B_inorganic_Jenkins.tsv +0 -75
  31. pyEQL/database/LICENSE +0 -4
  32. pyEQL/database/dielectric_parameter.tsv +0 -30
  33. pyEQL/database/diffusion_coefficient.tsv +0 -116
  34. pyEQL/database/hydrated_radius.tsv +0 -35
  35. pyEQL/database/ionic_radius.tsv +0 -35
  36. pyEQL/database/partial_molar_volume.tsv +0 -22
  37. pyEQL/database/pitzer_activity.tsv +0 -169
  38. pyEQL/database/pitzer_volume.tsv +0 -132
  39. pyEQL/database/template.tsv +0 -14
  40. pyEQL/database.py +0 -300
  41. pyEQL/elements.py +0 -4552
  42. pyEQL/logging_system.py +0 -53
  43. pyEQL/parameter.py +0 -435
  44. pyEQL/tests/__init__.py +0 -32
  45. pyEQL/tests/test_activity.py +0 -578
  46. pyEQL/tests/test_bulk_properties.py +0 -86
  47. pyEQL/tests/test_chemical_formula.py +0 -279
  48. pyEQL/tests/test_debye_length.py +0 -79
  49. pyEQL/tests/test_density.py +0 -106
  50. pyEQL/tests/test_dielectric.py +0 -153
  51. pyEQL/tests/test_effective_pitzer.py +0 -276
  52. pyEQL/tests/test_mixed_electrolyte_activity.py +0 -154
  53. pyEQL/tests/test_osmotic_coeff.py +0 -99
  54. pyEQL/tests/test_pyeql_volume_concentration.py +0 -428
  55. pyEQL/tests/test_salt_matching.py +0 -337
  56. pyEQL/tests/test_solute_properties.py +0 -251
  57. pyEQL/water_properties.py +0 -352
  58. pyEQL-0.5.2.dist-info/AUTHORS +0 -7
  59. pyEQL-0.5.2.dist-info/METADATA +0 -72
  60. pyEQL-0.5.2.dist-info/RECORD +0 -47
  61. pyEQL-0.5.2.dist-info/entry_points.txt +0 -3
  62. {pyEQL-0.5.2.dist-info → pyEQL-1.1.0.dist-info}/top_level.txt +0 -0
pyEQL/water_properties.py DELETED
@@ -1,352 +0,0 @@
1
- """
2
- pyEQL water properties library
3
-
4
- This file contains functions for retrieving various physical properties
5
- of water substance
6
-
7
- :copyright: 2013-2020 by Ryan S. Kingsbury
8
- :license: LGPL, see LICENSE for more details.
9
-
10
- """
11
- import math
12
-
13
- from pyEQL import unit
14
-
15
- # logging system
16
- import logging
17
-
18
- # add a filter to emit only unique log messages to the handler
19
- from pyEQL.logging_system import Unique
20
-
21
- logger = logging.getLogger(__name__)
22
- unique = Unique()
23
- logger.addFilter(unique)
24
-
25
- # add a handler for console output, since pyEQL is meant to be used interactively
26
- ch = logging.StreamHandler()
27
-
28
- # create formatter for the log
29
- formatter = logging.Formatter("(%(name)s) - %(levelname)s - %(message)s")
30
-
31
- # add formatter to the handler
32
- ch.setFormatter(formatter)
33
- logger.addHandler(ch)
34
-
35
-
36
- def water_density(temperature=25 * unit("degC"), pressure=1 * unit("atm")):
37
- # TODO add pressure??
38
- # TODO more up to date equation??
39
- """
40
- Return the density of water in kg/m3 at the specified temperature and pressure.
41
-
42
- Parameters
43
- ----------
44
- temperature : float or int, optional
45
- The temperature in Celsius. Defaults to 25 degrees if not specified.
46
- pressure : float or int, optional
47
- The ambient pressure of the solution in Pascals (N/m2).
48
- Defaults to atmospheric pressure (101325 Pa) if not specified.
49
-
50
- Returns
51
- -------
52
- float
53
- The density of water in kg/m3.
54
-
55
- Notes
56
- -----
57
- Based on the following empirical equation reported in [#]_
58
-
59
-
60
- .. math:: \\rho_W = 999.65 + 0.20438 T - 6.1744e-2 T ^ {1.5}
61
-
62
- Where :math:`T` is the temperature in Celsius.
63
-
64
-
65
- .. [#] Sohnel, O and Novotny, P. *Densities of Aqueous Solutions of Inorganic Substances.* Elsevier Science,
66
- Amsterdam, 1985.
67
-
68
- Examples
69
- --------
70
- >>> water_density(25*unit('degC')) #doctest: +ELLIPSIS
71
- <Quantity(997.0415, 'kilogram / meter ** 3')>
72
-
73
- """
74
- # calculate the magnitude
75
- density = (
76
- 999.65
77
- + 0.20438 * temperature.to("degC").magnitude
78
- - 6.1744e-2 * temperature.to("degC").magnitude ** 1.5
79
- )
80
- # assign the proper units
81
- density = density * unit("kg/m**3")
82
- logger.info(
83
- "Computed density of water as %s at T= %s and P = %s"
84
- % (density, temperature, pressure)
85
- )
86
- logger.debug(
87
- "Computed density of water using empirical relation in Sohnel and Novotny, "
88
- "Densities of Aqueous Solutions of Inorganic Substances, 1985"
89
- )
90
- return density.to("kg/m**3")
91
-
92
-
93
- def water_specific_weight(temperature=25 * unit("degC"), pressure=1 * unit("atm")):
94
- """
95
- Return the specific weight of water in N/m3 at the specified temperature and pressure.
96
-
97
- Parameters
98
- ----------
99
- temperature : Quantity, optional
100
- The temperature. Defaults to 25 degC if omitted.
101
- pressure : Quantity, optional
102
- The ambient pressure of the solution.
103
- Defaults to atmospheric pressure (1 atm) if omitted.
104
-
105
- Returns
106
- -------
107
- Quantity
108
- The specific weight of water in N/m3.
109
-
110
- Examples
111
- --------
112
- >>> water_specific_weight() #doctest: +ELLIPSIS
113
- <Quantity(9777.637025975, 'newton / meter ** 3')>
114
-
115
- See Also
116
- --------
117
- water_density
118
-
119
- """
120
- spweight = water_density(temperature, pressure) * unit.g_n
121
- logger.info(
122
- "Computed specific weight of water as %s at T=%s and P = %s"
123
- % (spweight, temperature, pressure)
124
- )
125
- return spweight.to("N/m ** 3")
126
-
127
-
128
- def water_viscosity_dynamic(temperature=25 * unit("degC"), pressure=1 * unit("atm")):
129
- """
130
- Return the dynamic (absolute) viscosity of water in N-s/m2 = Pa-s = kg/m-s
131
- at the specified temperature.
132
-
133
- Parameters
134
- ----------
135
- temperature : Quantity, optional
136
- The temperature. Defaults to 25 degC if omitted.
137
- pressure : Quantity, optional
138
- The ambient pressure of the solution.
139
- Defaults to atmospheric pressure (1 atm) if omitted.
140
-
141
- Returns
142
- -------
143
- Quantity
144
- The dynamic (absolute) viscosity of water in N-s/m2 = Pa-s = kg/m-s
145
-
146
- Notes
147
- -----
148
- Implements the international equation for viscosity of water as specified by NIST [#]_
149
-
150
- Valid for 273 < temperature < 1073 K and 0 < pressure < 100,000,000 Pa
151
-
152
- References
153
- ----------
154
- .. [#] Sengers, J.V. "Representative Equations for the Viscosity of Water Substance."
155
- *J. Phys. Chem. Ref. Data* 13(1), 1984.http://www.nist.gov/data/PDFfiles/jpcrd243.pdf
156
-
157
- Examples
158
- --------
159
- >>> water_viscosity_dynamic(20*unit('degC')) #doctest: +ELLIPSIS
160
- <Quantity(0.000998588610804179, 'kilogram / meter / second')>
161
- >>> water_viscosity_dynamic(unit('100 degC'),unit('25 MPa')) #doctest: +ELLIPSIS
162
- <Quantity(0.00028165034364318573, 'kilogram / meter / second')>
163
- >>> water_viscosity_dynamic(25*unit('degC'),0.1*unit('MPa')) #doctest: +ELLIPSIS
164
- <Quantity(0.0008872817880143659, 'kilogram / meter / second')>
165
-
166
- #TODO - check these again after I implement pressure-dependent density function
167
-
168
- """
169
- # generate warnings if temp or pressure are outside valid range of equation
170
- if temperature < 273 * unit("K") or temperature > 1073 * unit("K"):
171
- logger.error(
172
- "Specified temperature (%s) exceeds valid range of NIST equation for viscosity of water. "
173
- " Cannot extrapolate."
174
- % temperature
175
- )
176
- return None
177
-
178
- if pressure < 0 * unit("Pa") or pressure > 100000000 * unit("Pa"):
179
- logger.error(
180
- "Specified pressure (%s) exceeds valid range of NIST equation for viscosity of water. Cannot extrapolate."
181
- % pressure
182
- )
183
- return None
184
-
185
- # calculate dimensionless temperature and pressure
186
- T_star = 647.27 # K
187
- P_star = 22115000 # Pa
188
- rho_star = 317.763 # kg/m3
189
-
190
- T_bar = temperature.to("K").magnitude / T_star
191
- P_bar = pressure.to("Pa").magnitude / P_star
192
- rho_bar = water_density(temperature, pressure).magnitude / rho_star
193
-
194
- # calculate the first function, mu_o
195
- mu_star = 1e-6 # Pa-s
196
- a = [0.0181583, 0.0177624, 0.0105287, -0.0036477]
197
- sum_o = 0
198
- mu_temp = 0
199
- for index in range(len(a)):
200
- sum_o += a[index] * T_bar ** -index
201
-
202
- mu_o = mu_star * math.sqrt(T_bar) / sum_o
203
-
204
- # calculate the second fucntion, mu_1
205
- b = [
206
- [0.501938, 0.235622, -0.274637, 0.145831, -0.0270448],
207
- [0.162888, 0.789393, -0.743539, 0.263129, -0.0253093],
208
- [-0.130356, 0.673665, -0.959456, 0.347247, -0.0267758],
209
- [0.907919, 1.207552, -0.687343, 0.213486, -0.0822904],
210
- [-0.551119, 0.0670665, -0.497089, 0.100754, 0.0602253],
211
- [0.146543, -0.0843370, 0.195286, -0.032932, -0.0202595],
212
- ]
213
- mu_1 = 0
214
-
215
- for i in range(len(b)):
216
- for j in range(len(b[i])):
217
- mu_temp += rho_bar * b[i][j] * (1 / T_bar - 1) ** i * (rho_bar - 1) ** j
218
-
219
- mu_1 = math.exp(mu_temp)
220
- # multiply the functions to return the viscosity
221
- viscosity = mu_o * mu_1 * unit("kg/m/s")
222
-
223
- logger.info(
224
- "Computed dynamic (absolute) viscosity of water as %s at T=%s and P = %s"
225
- % (viscosity, temperature, pressure)
226
- )
227
-
228
- logger.debug(
229
- "Computed dynamic (absolute) viscosity of water using empirical NIST equation described in Sengers, J.V. "
230
- "Representative Equations for the Viscosity of Water Substance. J. Phys. Chem. Ref. Data 13(1), 1984."
231
- )
232
-
233
- return viscosity.to("kg/m/s")
234
-
235
-
236
- def water_viscosity_kinematic(temperature=25 * unit("degC"), pressure=1 * unit("atm")):
237
- """
238
- Return the kinematic viscosity of water in m2/s = Stokes
239
- at the specified temperature.
240
-
241
- Parameters
242
- ----------
243
- temperature : Quantity, optional
244
- The temperature. Defaults to 25 degC if omitted.
245
- pressure : Quantity, optional
246
- The ambient pressure of the solution.
247
- Defaults to atmospheric pressure (1 atm) if omitted.
248
-
249
- Returns
250
- -------
251
- Quantity
252
- The kinematic viscosity of water in Stokes (m2/s)
253
-
254
- Examples
255
- --------
256
- >>> water_viscosity_kinematic() #doctest: +ELLIPSIS
257
- <Quantity(8.899146003595295e-07, 'meter ** 2 / second')>
258
-
259
- See Also
260
- --------
261
- water_viscosity_dynamic
262
- water_density
263
-
264
- """
265
- kviscosity = water_viscosity_dynamic(temperature, pressure) / water_density(
266
- temperature, pressure
267
- )
268
- logger.info(
269
- "Computed kinematic viscosity of water as %s at T=%s and P = %s "
270
- % (kviscosity, temperature, pressure)
271
- )
272
- return kviscosity.to("m**2 / s")
273
-
274
-
275
- def water_dielectric_constant(temperature=25 * unit("degC")):
276
- """
277
- Return the dielectric constant of water at the specified temperature.
278
-
279
- Parameters
280
- ----------
281
- temperature : Quantity, optional
282
- The temperature. Defaults to 25 degC if omitted.
283
-
284
- Returns
285
- -------
286
- float
287
- The dielectric constant (or permittivity) of water relative to the
288
- permittivity of a vacuum. Dimensionless.
289
-
290
- Notes
291
- -----
292
- This function implements a quadratic fit of measured permittivity data as
293
- reported in the CRC Handbook [#]_. The parameters given are valid over the
294
- range 273 K to 372 K. Permittivity should not be extrapolated beyond this
295
- range.
296
-
297
- .. math:: \\epsilon(T) = a + b T + c T^2
298
-
299
- References
300
- ----------
301
- .. [#] "Permittivity (Dielectric Constant) of Liquids." *CRC Handbook of
302
- Chemistry and Physics*, 92nd ed, pp 6-187 - 6-208.
303
-
304
- Examples
305
- --------
306
- >>> water_dielectric_constant(unit('20 degC')) #doctest: +ELLIPSIS
307
- 80.15060...
308
-
309
- Display an error if 'temperature' is outside the valid range
310
-
311
- >>> water_dielectric_constant(-5*unit('degC'))
312
-
313
-
314
- """
315
- # do not return anything if 'temperature' is outside the range for which
316
- # this fit applies
317
- if temperature < 273 * unit("K") or temperature > 372 * unit("K"):
318
- logger.error(
319
- "Specified temperature (%s) exceeds valid range of data. Cannot extrapolate."
320
- % temperature.to("K")
321
- )
322
- return None
323
-
324
- # otherwise, calculate the dielectric constant using the quadratic fit
325
- a = 0.24921e3
326
- b = -0.79069e0
327
- c = 0.72997e-3
328
- dielectric = (
329
- a + b * temperature.to("K").magnitude + c * temperature.to("K").magnitude ** 2
330
- )
331
-
332
- logger.info(
333
- "Computed dielectric constant of water as %s at %s" % (dielectric, temperature)
334
- )
335
-
336
- logger.debug(
337
- "Computed dielectric constant of water using empirical equation given in Permittivity (Dielectric Constant) "
338
- "of Liquids. CRC Handbook of Chemistry and Physics, 92nd ed, pp 6-187 - 6-208."
339
- )
340
-
341
- return dielectric
342
-
343
-
344
- def water_conductivity(temperature):
345
- pass
346
-
347
-
348
- # TODO - turn doctest back on when the nosigint error is gone
349
- if __name__ == "__main__":
350
- import doctest
351
-
352
- doctest.testmod()
@@ -1,7 +0,0 @@
1
- pyEQL is written and maintained by Ryan S. Kingsbury <RyanSKingsbury@alumni.unc.edu>
2
-
3
- Other contributors, listed alphabetically, are:
4
-
5
- * Hernan Grecco <hernan.grecco@gmail.com>
6
-
7
- (If you think that your name belongs here, please let the maintainer know)
@@ -1,72 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pyEQL
3
- Version: 0.5.2
4
- Summary: A Python library for solution chemistry
5
- Home-page: https://github.com/rkingsbury/pyEQL
6
- Author: Ryan S. Kingsbury
7
- Author-email: RyanSKingsbury@alumni.unc.edu
8
- License: GNU Lesser General Public License v3 (LGPLv3)
9
- Keywords: thermodynamics chemistry chemical equilibrium desalination MinEQL ChemEQL PHREEQC
10
- Platform: UNKNOWN
11
- Classifier: Development Status :: 3 - Alpha
12
- Classifier: Intended Audience :: Science/Research
13
- Classifier: Topic :: Scientific/Engineering
14
- Classifier: Topic :: Software Development :: Libraries
15
- Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.2
18
- Classifier: Programming Language :: Python :: 3.3
19
- Classifier: Programming Language :: Python :: 3.4
20
- Classifier: Programming Language :: Python :: 3.5
21
- Requires-Dist: pint
22
- Requires-Dist: scipy
23
-
24
- ![](pyeql-logo.png)
25
-
26
- A Python library for solution chemistry
27
- =======================================
28
-
29
- pyEQL is a Python library that provides tools for modeling aqueous electrolyte
30
- solutions. It allows the user to manipulate solutions as Python
31
- objects, providing methods to populate them with solutes, calculate
32
- species-specific properties (such as activity and diffusion coefficients),
33
- and retreive bulk properties (such as density, conductivity, or volume).
34
-
35
- ![](pyeql-demo.png)
36
- ---
37
-
38
- pyEQL is designed to be customizable and easy to integrate into projects
39
- that require modeling of chemical thermodyanmics of aqueous solutions.
40
- It aspires to provide a flexible, extensible framework for the user, with a
41
- high level of transparency about data sources and calculation methods.
42
-
43
- pyEQL runs on Python 3.0+ and is licensed under LGPL.
44
-
45
- Key Features
46
- ------------
47
-
48
- - Build accurate solution properties using a minimum of inputs. Just specify
49
- the identity and quantity of a solute and pyEQL will do the rest.
50
-
51
- - "Graceful Decay" from more sophisticated, data-intensive modeling approaches
52
- to simpler, less accurate ones depending on the amount of data supplied.
53
-
54
- - Not limited to dilute solutions. pyEQL contains out of the box support for
55
- the Pitzer Model and other methods for modeling concentrated solutions.
56
-
57
- - Extensible database system that allows one to supplement pyEQL's default
58
- parameters with project-specific data.
59
-
60
- - Units-aware calculations (by means of the [pint](https://github.com/hgrecco/pint) library)
61
-
62
- Documentation
63
- -------------
64
- Detailed documentation is available at <https://pyeql.readthedocs.io/>
65
-
66
- Dependencies
67
- ------------
68
- - Python 3
69
- - [pint](https://github.com/hgrecco/pint) - for units-aware calculations
70
- - [scipy](https://www.scipy.org/) - for certain nonlinear equation solvers
71
-
72
-
@@ -1,47 +0,0 @@
1
- pyEQL/__init__.py,sha256=VMtj7Cj_PbI-pkLjcKBddzruXi2ujTwbOCi0iyWl5Ck,1323
2
- pyEQL/activity_correction.py,sha256=SzDfIvU1R_l0khDXBrsXyExWiYfvIcnZAs_R5ezjBl8,37965
3
- pyEQL/chemical_formula.py,sha256=eVTRdGppkqjIg1-i3k8-voZZziaR3hzwDrUzrW8XoI8,30286
4
- pyEQL/database.py,sha256=tFgUS_Q-Ey2CeC1DvP3BfiYxLAWiu1FT5DGsQOLtCsI,11576
5
- pyEQL/elements.py,sha256=jAIK4jWHgtKOenGwvKuIDvjkckeEETdnhkL5kdVFff4,137341
6
- pyEQL/equilibrium.py,sha256=FQ1lPwAOwefk3GAPQklu5T2JP2CiBnMP_D4R5Zqjhsw,9281
7
- pyEQL/functions.py,sha256=l15Rfonu7mJD6vWRT_-kDvIBdDt6Ic_-SbMFVEvo0kk,18893
8
- pyEQL/logging_system.py,sha256=MUjaz6V5iJEMAaFbtMfOr-y7vew44vfDfxPrs1_JEFI,1895
9
- pyEQL/parameter.py,sha256=tF9eKzhaBOE_NEQ1ZrsVPD1UFJ2Ldl3v67Ld1xK5tqU,16593
10
- pyEQL/pint_custom_units.txt,sha256=WwyfWmRRwBgglDS7sBKAcqrSqwqqxpz55x8flryzadk,2887
11
- pyEQL/salt_ion_match.py,sha256=On_SoGcwerjGkKgvg5AHHNIhMtxwLJX1l5fkehO1Js4,10757
12
- pyEQL/solute.py,sha256=7XDu37pal5b_rDqURUpiQvM2OVJWzruTni8YEhj9oiE,7096
13
- pyEQL/solution.py,sha256=oYdB9LABSRvgZbX7VIZWMTwWE-Z0449TRfNZiJQg9Ws,94225
14
- pyEQL/water_properties.py,sha256=wrINLulAuSXYkeNyEzIL2u2UxHQmkGqHXJPICAReqZA,10933
15
- pyEQL/database/Erying_viscosity.tsv,sha256=8i51TjhE-oKc0aPx2BjnVGSUWfDB2A1DNp5FIRwTRxU,717
16
- pyEQL/database/Jones_Dole_B.tsv,sha256=Kf5ob78bPqz_MYiEjsEW4skeEeiRu_bydL28AGxVejw,804
17
- pyEQL/database/Jones_Dole_B_inorganic_Jenkins.tsv,sha256=L3ERJVglUAifG1fIUNKUdzQ2uAfXphdxl6bk4PXK8MU,1211
18
- pyEQL/database/LICENSE,sha256=HvJ5_cU8LwB3LYPJ8QMCebe6lDufb3Lrd57BzU4TUY0,243
19
- pyEQL/database/dielectric_parameter.tsv,sha256=Ayd608by4iGHzUPD4mLKaMDWvE03NybMYRFgaKnVRsQ,659
20
- pyEQL/database/diffusion_coefficient.tsv,sha256=8vXDaxilPSkiOgmHhnB8HSFIb62IEJHLFMePkefzYLs,2042
21
- pyEQL/database/hydrated_radius.tsv,sha256=jrpY-CByCodPxRuTmYERcHG_EInJAoEXXBZVu6ZMfoI,672
22
- pyEQL/database/ionic_radius.tsv,sha256=KfR_d66qHQSqPmNWzR-Wwl-Ip87z-jW3cZtVe00qWK8,737
23
- pyEQL/database/partial_molar_volume.tsv,sha256=62SlUGzTmrYMKU56I37mavaELIM3521r_dGiFuXZILo,487
24
- pyEQL/database/pitzer_activity.tsv,sha256=nwlnb30r9vk8SmBgTD7eJ4WU7pStPHsqNJvlkmWJfyI,6418
25
- pyEQL/database/pitzer_volume.tsv,sha256=GuoFkWtjJkyssiKWP8f5ZTlSC3hXvYqm8_6A8OO8U5E,6632
26
- pyEQL/database/template.tsv,sha256=eqU1IYlMQNfn_PzbHj9IifziT8BsFDsTFnu1mzhJLFw,668
27
- pyEQL/tests/__init__.py,sha256=KnPsldLXqwhHwIu8NSpQfDY5a6BIE6kwRNlDIXENweI,699
28
- pyEQL/tests/test_activity.py,sha256=0rBQK_OiweHQAQwcR0esStos_DEAPxL9Zw_QChCxV4E,20101
29
- pyEQL/tests/test_bulk_properties.py,sha256=o6jSdMNp53ej48IJ6_Ax5lbFi694c9YrqfKj8O-5qi4,2600
30
- pyEQL/tests/test_chemical_formula.py,sha256=A1uW0BVMapQlyhDAeWLjX190yyG5mu_uhLMVBVvXIsM,8284
31
- pyEQL/tests/test_debye_length.py,sha256=ImjKxih4oU2nrzgQWtHGpMIqrJ9VW8VMl-IRMcvztxk,1947
32
- pyEQL/tests/test_density.py,sha256=4ISEmTf7SKGzmFdsNeoAz3IDC6f2rdLifskG9icmR9Y,3371
33
- pyEQL/tests/test_dielectric.py,sha256=7mrPbyexNJEr-RInwZByas23CRcBZ8cahQcqbxJVhrM,4373
34
- pyEQL/tests/test_effective_pitzer.py,sha256=D4fwo3Zo6sUk2J6RMqMslf2XaEcRRnmV9PtT45nCKvw,9830
35
- pyEQL/tests/test_mixed_electrolyte_activity.py,sha256=P1N5bnand5VDbMh6wOy9j8H55nFD6ttSLtMthQqQj_U,6112
36
- pyEQL/tests/test_osmotic_coeff.py,sha256=mYttL2_tONyWBiwDCaZ9y9FYWC0gYVnFMxg2peHyFqU,3589
37
- pyEQL/tests/test_pyeql_volume_concentration.py,sha256=Q-7I1F0FLyJvyabH1w_IejrXZeonaYOxFGSfCPZiQ8U,15304
38
- pyEQL/tests/test_salt_matching.py,sha256=nbdGJOxadeSol-w8qd8vnfcC9FTcy6J_yiMU288Ixxo,8691
39
- pyEQL/tests/test_solute_properties.py,sha256=4cm6T9TlwrBIZIJTQHw4wAS4MqTBzt5pWV6FE4PMjwA,9876
40
- pyEQL-0.5.2.dist-info/AUTHORS,sha256=zx09hchqmbsKPaO3PNJYjCSxgv3oVjCvfsnWUn2MOyE,253
41
- pyEQL-0.5.2.dist-info/COPYING,sha256=4_dNaZemS9vMORtVnqEbYLCMeyqxRS92o_KTQnB0DFk,7648
42
- pyEQL-0.5.2.dist-info/LICENSE,sha256=wOgaPqK-namm93G2qZ5mx-o3Sqaop47M_mOjh1lTCsg,1153
43
- pyEQL-0.5.2.dist-info/METADATA,sha256=uIfq6tR9qZAYPye4lwP34Cdjs9jdWLYpKj-kJtCKdtI,2770
44
- pyEQL-0.5.2.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
45
- pyEQL-0.5.2.dist-info/entry_points.txt,sha256=TmTEUVZcwU6Ine3HfbTSTKiRezBhhAwGFmakO-AbbfY,38
46
- pyEQL-0.5.2.dist-info/top_level.txt,sha256=QMOaZjCAm_lS4Njsjh4L0B5aWnJFGQMYKhuH88CG1co,6
47
- pyEQL-0.5.2.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- pyEQL = pyEQL:main
3
-