|
| 1 | +"Test collection for potentiometry data fitting." |
| 2 | + |
| 3 | +import numpy as np |
| 4 | +from libeq.data_structure import SolverData, PotentiometryOptions, PotentiometryTitrationsParameters |
| 5 | +from libeq.optimizers.potentiometry import Flags |
| 6 | + |
| 7 | + |
| 8 | +def load_data(): |
| 9 | + titration1 = PotentiometryTitrationsParameters( |
| 10 | + electro_active_compoment=1, |
| 11 | + e0=405.0, |
| 12 | + e0_sigma=0.01, |
| 13 | + slope=59.16, |
| 14 | + v0=25.0, |
| 15 | + v0_sigma=0.01, |
| 16 | + c0 = np.array([5e-3, 30.0e-3]), |
| 17 | + ct = np.array([0.0, -0.1]), |
| 18 | + c0_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 19 | + ct_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 20 | + ignored = 89*[False], |
| 21 | + v_add = np.array([ 0.00, 0.12, 0.24, 0.36, 0.48, 0.60, 0.72, 0.84, 0.96, 1.08, 1.20, 1.32, 1.44, 1.56, 1.68, 1.80, 1.92, 2.04, 2.16, 2.28, 2.40, 2.52, 2.64, 2.76, 2.88, 3.00, 3.12, 3.24, 3.36, 3.48, 3.60, 3.72, 3.84, 3.96, 4.08, 4.20, 4.32, 4.44, 4.56, 4.68, 4.80, 4.92, 5.04, 5.16, 5.28, 5.40, 5.52, 5.64, 5.76, 5.88, 6.00, 6.12, 6.24, 6.36, 6.48, 6.60, 6.72, 6.84, 6.96, 7.08, 7.20, 7.32, 7.44, 7.56, 7.68, 7.80, 7.92, 8.04, 8.16, 8.28, 8.40, 8.52, 8.64, 8.76, 8.88, 9.00, 9.12, 9.24, 9.36, 9.48, 9.72, 10.08, 10.32, 10.56, 10.80, 10.92, 11.28, 11.64, 12.00]), |
| 22 | + emf = np.array([ 265.6, 263.5, 261.4, 259.1, 256.7, 254.2, 251.6, 248.8, 245.9, 242.9, 239.7, 236.3, 232.8, 229.1, 225.2, 221.1, 216.9, 212.4, 207.8, 203.0, 197.9, 192.7, 187.2, 181.5, 175.5, 169.2, 162.4, 155.0, 146.7, 137.1, 125.6, 112.2, 98.0, 84.9, 73.6, 63.6, 54.2, 45.1, 35.7, 25.5, 14.0, 0.6, -14.0, -27.9, -40.1, -50.6, -60.2, -69.4, -78.6, -88.4, -99.2, -111.6, -125.6, -139.7, -152.3, -163.0, -172.5, -181.1, -189.3, -197.2, -205.1, -212.9, -220.4, -227.5, -234.0, -239.7, -244.8, -249.2, -253.0, -256.5, -259.5, -262.3, -264.8, -267.1, -269.1, -271.0, -272.9, -274.5, -276.0, -277.5, -280.2, -283.7, -285.8, -287.6, -289.4, -290.2, -292.5, -294.6, -296.5]) |
| 23 | + ) |
| 24 | + titration2 = PotentiometryTitrationsParameters( |
| 25 | + electro_active_compoment=1, |
| 26 | + e0=405.0, |
| 27 | + e0_sigma=0.01, |
| 28 | + slope=59.16, |
| 29 | + v0=25.0, |
| 30 | + v0_sigma=0.01, |
| 31 | + c0 = np.array([2.0e-3, 12.0e-3]), |
| 32 | + c0_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 33 | + ct_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 34 | + ct = np.array([0.0, -0.100]), |
| 35 | + ignored = 89*[False], |
| 36 | + v_add = np.array([ 0.000, 0.070, 0.140, 0.210, 0.280, 0.350, 0.420, 0.490, 0.560, 0.630, 0.700, 0.770, 0.840, 0.910, 0.980, 1.050, 1.120, 1.190, 1.260, 1.330, 1.400, 1.470, 1.540, 1.610, 1.680, 1.750, 1.820, 1.890, 1.960, 2.030, 2.100, 2.170, 2.240, 2.310, 2.380, 2.450, 2.520, 2.590, 2.660, 2.730, 2.800, 2.870, 2.940, 3.010, 3.080, 3.150, 3.220, 3.290, 3.360, 3.430, 3.500, 3.570, 3.640, 3.710, 3.780, 3.850, 3.920, 3.990, 4.060, 4.130, 4.200, 4.270, 4.340, 4.410, 4.480, 4.620, 4.760, 4.970, 5.180, 5.390, 5.600, 5.950, 6.230, 6.580 ]), |
| 37 | + emf = np.array([ 248.8, 246.4, 243.8, 241.1, 238.1, 234.9, 231.5, 227.8, 223.8, 219.5, 214.8, 209.7, 204.2, 198.2, 191.7, 184.6, 176.9, 168.5, 159.1, 148.1, 134.5, 116.8, 96.6, 78.5, 63.5, 50.0, 36.4, 21.3, 2.9, -18.2, -37.2, -52.7, -66.3, -79.7, -94.4, -111.8, -131.9, -150.3, -164.9, -177.0, -187.5, -197.2, -206.0, -214.1, -221.2, -227.5, -232.9, -237.7, -241.8, -245.4, -248.6, -251.5, -254.2, -256.5, -258.7, -260.7, -262.6, -264.3, -265.9, -267.5, -268.9, -270.3, -271.5, -272.7, -273.9, -276.0, -278.0, -280.7, -283.1, -285.3, -287.2, -290.1, -292.3, -294.6 ]) |
| 38 | + ) |
| 39 | + titration3 = PotentiometryTitrationsParameters( |
| 40 | + electro_active_compoment=1, |
| 41 | + e0=405.0, |
| 42 | + e0_sigma=0.01, |
| 43 | + slope=59.16, |
| 44 | + v0=25.0, |
| 45 | + v0_sigma=0.01, |
| 46 | + c0 = np.array([4.0e-3, 24e-3]), |
| 47 | + c0_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 48 | + ct_flags = [Flags.CONSTANT, Flags.CONSTANT], |
| 49 | + ct = np.array([0.0, -0.1000]), |
| 50 | + ignored = 89*[False], |
| 51 | + v_add = np.array([ 0.000, 0.090, 0.180, 0.270, 0.360, 0.450, 0.540, 0.630, 0.720, 0.810, 0.900, 0.990, 1.080, 1.170, 1.260, 1.350, 1.440, 1.530, 1.620, 1.710, 1.800, 1.890, 1.980, 2.070, 2.160, 2.250, 2.340, 2.430, 2.520, 2.610, 2.700, 2.790, 2.880, 2.970, 3.060, 3.150, 3.240, 3.330, 3.420, 3.510, 3.600, 3.690, 3.780, 3.870, 3.960, 4.050, 4.140, 4.230, 4.320, 4.410, 4.500, 4.590, 4.680, 4.770, 4.860, 4.950, 5.040, 5.130, 5.220, 5.310, 5.400, 5.490, 5.580, 5.670, 5.760, 5.850, 5.940, 6.030, 6.120, 6.210, 6.300, 6.390, 6.480, 6.570, 6.660, 6.750, 6.840, 6.930, 7.020, 7.110, 7.200, 7.290, 7.380, 7.560, 7.740, 7.920, 8.010, 8.280, 8.460, 8.640, 8.910, 9.000]), |
| 52 | + emf = np.array([ 261.6, 259.8, 257.9, 255.9, 253.8, 251.6, 249.4, 247.0, 244.4, 241.8, 239.1, 236.2, 233.2, 230.0, 226.7, 223.2, 219.5, 215.7, 211.7, 207.6, 203.2, 198.6, 193.9, 189.0, 183.9, 178.5, 172.8, 166.8, 160.4, 153.3, 145.4, 136.3, 125.5, 113.0, 99.7, 87.3, 76.3, 66.6, 57.7, 49.0, 40.4, 31.3, 21.3, 10.0, -3.0, -16.8, -29.5, -40.8, -50.6, -59.6, -68.2, -76.9, -85.9, -95.6, -106.7, -119.3, -132.6, -145.2, -156.2, -165.7, -174.2, -182.0, -189.5, -196.7, -203.8, -210.7, -217.3, -223.6, -229.4, -234.6, -239.4, -243.5, -247.2, -250.6, -253.6, -256.3, -258.8, -261.0, -263.1, -265.0, -266.8, -268.5, -270.1, -273.0, -275.5, -277.8, -278.9, -281.8, -283.6, -285.3, -287.5, -288.2 ]) |
| 53 | + ) |
| 54 | + pot = PotentiometryOptions( |
| 55 | + titrations = [ titration1, titration2, titration3 ], |
| 56 | + beta_flags = [ Flags.REFINE, Flags.REFINE, Flags.REFINE, Flags.REFINE, Flags.REFINE, Flags.REFINE,Flags.CONSTANT] |
| 57 | + ) |
| 58 | + sd = SolverData( |
| 59 | + components = ['L', 'H'], |
| 60 | + charges = [ -6, 1 ], |
| 61 | + stoichiometry = np.array([[1, 1], |
| 62 | + [1, 2], |
| 63 | + [1, 3], |
| 64 | + [1, 4], |
| 65 | + [1, 5], |
| 66 | + [1, 6], |
| 67 | + [0,-1]], dtype=int).T, |
| 68 | + solid_stoichiometry = np.array([[]], dtype=int), |
| 69 | + log_beta = np.array([ 10.00, |
| 70 | + 18.00, |
| 71 | + 24.00, |
| 72 | + 28.00, |
| 73 | + 31.00, |
| 74 | + 33.00, |
| 75 | + -13.77]), |
| 76 | + potentiometry_opts = pot |
| 77 | + ) |
| 78 | + return sd |
0 commit comments