mirror of
https://github.com/ANL-CEEESA/LLEPE.git
synced 2025-12-06 01:48:53 -06:00
Updated documentation
This commit is contained in:
@@ -10,6 +10,9 @@ font = {'family': 'sans serif',
|
||||
matplotlib.rc('font', **font)
|
||||
plt.rc('xtick', labelsize=18)
|
||||
plt.rc('ytick', labelsize=18)
|
||||
plt.rcParams['lines.linewidth'] = 4
|
||||
matplotlib.rcParams['lines.markersize'] = 10
|
||||
|
||||
|
||||
def ext_to_complex(h0, custom_obj_dict, mini_species):
|
||||
linear_params = custom_obj_dict['lin_param_df']
|
||||
@@ -24,7 +27,8 @@ def mod_lin_param_df(lp_df, input_val, mini_species, mini_lin_param):
|
||||
return new_lp_df
|
||||
|
||||
|
||||
info_df = pd.read_csv('outputs/iterative_fitter_output2.csv')
|
||||
info_df = pd.read_csv('outputs/iterative_fitter_w_mse_output.csv')
|
||||
test_row = 3
|
||||
pitzer_params_filename = "../../data/jsons/min_h0_pitzer_params.txt"
|
||||
with open(pitzer_params_filename) as file:
|
||||
pitzer_params_dict = json.load(file)
|
||||
@@ -33,6 +37,8 @@ species_list = 'Nd,Pr,Ce,La,Dy,Sm,Y'.split(',')
|
||||
pitzer_param_list = ['beta0', 'beta1']
|
||||
labeled_data = pd.read_csv("../../data/csvs/"
|
||||
"PC88A_HCL_NdPrCeLaDySmY.csv")
|
||||
labeled_data = labeled_data.sort_values(['Feed Pr[M]', 'Feed Ce[M]'],
|
||||
ascending=True)
|
||||
exp_data = labeled_data.drop(labeled_data.columns[0], axis=1)
|
||||
xml_file = "PC88A_HCL_NdPrCeLaDySmY_w_pitzer.xml"
|
||||
lin_param_df = pd.read_csv("../../data/csvs"
|
||||
@@ -76,11 +82,11 @@ info_dict = {'(HA)2(org)_h0': {'upper_element_name': 'species',
|
||||
'lower_attrib_value': None,
|
||||
'input_format': '{0}',
|
||||
'input_value':
|
||||
info_df.iloc[-1, :]['best_ext_h0']}}
|
||||
info_df.iloc[test_row, :]['best_ext_h0']}}
|
||||
for species in species_list:
|
||||
for pitzer_param in pitzer_param_list:
|
||||
pitzer_str = "{0}_{1}".format(species, pitzer_param)
|
||||
value = info_df.iloc[-1, :][pitzer_str]
|
||||
value = info_df.iloc[test_row, :][pitzer_str]
|
||||
pitzer_params_dict[pitzer_str]['input_value'] = value
|
||||
lin_str = "{0}_slope".format(species)
|
||||
inner_dict = {'custom_object_name': 'lin_param_df',
|
||||
@@ -91,7 +97,7 @@ for species in species_list:
|
||||
}
|
||||
info_dict[lin_str] = inner_dict
|
||||
lin_str = "{0}_intercept".format(species)
|
||||
value = info_df.iloc[-1, :][lin_str]
|
||||
value = info_df.iloc[test_row, :][lin_str]
|
||||
inner_dict = {'custom_object_name': 'lin_param_df',
|
||||
'function': mod_lin_param_df,
|
||||
'kwargs': {'mini_species': species,
|
||||
@@ -112,15 +118,52 @@ for col in exp_data.columns:
|
||||
if 'aq_i' in col:
|
||||
feed_cols.append(col)
|
||||
exp_data['total_re'] = exp_data[feed_cols].sum(axis=1)
|
||||
label_list = []
|
||||
for index, row in exp_data[feed_cols].iterrows():
|
||||
bool_list = list((row > 0).values)
|
||||
label = ''
|
||||
for species, el in zip(species_list, bool_list):
|
||||
if el:
|
||||
label = '{0}-{1}'.format(label, species)
|
||||
label = label[1:]
|
||||
label_list.append(label)
|
||||
r2s = ""
|
||||
for species in species_list:
|
||||
save_name = 'outputs/parity_iterative_fitter_{0}_org_eq'.format(species)
|
||||
# if species=='La':
|
||||
# save_name = 'outputs' \
|
||||
# '/parity_iterative_fitter_{0}_org_eq'.format(species)
|
||||
save_name = None
|
||||
# fig, ax = estimator.parity_plot('{0}_org_eq'.format(species),
|
||||
# c_data='z_i',
|
||||
# c_label='Feed total RE '
|
||||
# 'molarity (mol/L)',
|
||||
# print_r_squared=True,
|
||||
# save_path=save_name)
|
||||
r2s += str(estimator.r_squared('{0}_org_eq'.format(species))) + ','
|
||||
|
||||
fig, ax = estimator.parity_plot('{0}_org_eq'.format(species),
|
||||
c_data=exp_data[
|
||||
'total_re'].values,
|
||||
c_label='Feed total RE '
|
||||
'molarity (mol/L)',
|
||||
data_labels=label_list,
|
||||
print_r_squared=True,
|
||||
save_path=save_name)
|
||||
ax.legend(loc=4)
|
||||
pred_df = pd.DataFrame(estimator.get_predicted_dict())
|
||||
new_cols = []
|
||||
for col in pred_df.columns:
|
||||
new_cols.append("pred_{0}".format(col))
|
||||
pred_df.columns = new_cols
|
||||
new_cols = ['label',
|
||||
'h_i',
|
||||
'h_eq',
|
||||
'z_i',
|
||||
'z_eq'
|
||||
]
|
||||
for species in species_list:
|
||||
new_cols.append("{0}_aq_i".format(species))
|
||||
new_cols.append("{0}_aq_eq".format(species))
|
||||
new_cols.append("{0}_d_eq".format(species))
|
||||
labeled_data.columns = new_cols
|
||||
total_df = labeled_data.join(pred_df)
|
||||
# total_df.to_csv('if_mse_total_df.csv')
|
||||
# short_info_dict = {}
|
||||
# for key, value in info_dict.items():
|
||||
# short_info_dict[key] = value['input_value']
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<thermo>
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-1376882.3191117246</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-1376882.0784583509</h0>
|
||||
<s0 units="J/mol/K"> 558.9824 </s0>
|
||||
<cp0 units="J/mol/K"> 0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -50,7 +50,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4925566.309854757</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4924298.0880370205</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -67,7 +67,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4938249.845712334</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4935685.119723228</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -85,7 +85,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4920387.823199008</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4920369.042961768</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -103,7 +103,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4933548.865580005</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4928639.61964031</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -120,7 +120,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4932560.171447597</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4931991.722599618</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -138,7 +138,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4944840.781582316</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4944682.264585918</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -157,7 +157,7 @@
|
||||
<const_cp Tmax="300.0" Tmin="298.0">
|
||||
<t0 units="K">298.14999999999998</t0>
|
||||
|
||||
<h0 units="J/mol" updated="Updated at 10:47 7-17-2020">-4924696.189921901</h0>
|
||||
<h0 units="J/mol" updated="Updated at 18:30 7-26-2020">-4924669.3217661735</h0>
|
||||
<s0 units="J/mol/K"> 1117.965 </s0>
|
||||
<cp0 units="J/mol/K">0.0</cp0>
|
||||
</const_cp>
|
||||
@@ -245,10 +245,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Pr+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 0.05879108748614492, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 0.5448324180244323, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 0.058791091500561485, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 0.5448322248125199, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.02066999867229882, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.02066999867229882, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -261,10 +261,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Nd+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 1.2137222016802447, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 7.748226963005033, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 1.213717095858249, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 7.7481294675488375, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.01963615126026457, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.01963615126026457, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -277,10 +277,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="La+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 1.022316535866388, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 0.5296311209773129, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 1.0223168335791355, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 0.5296306654103653, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.024339999997603376, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.024339999997603376, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -293,10 +293,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Dy+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 0.7646397332938777, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 7.849320590516409, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 0.7646372240575223, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 7.849276225207628, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.019699989216349984, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.019699989216349984, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -309,10 +309,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Ce+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 0.2035235053232368, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 21.120426174002823, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 0.20352350320923904, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 21.120419048363047, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.02618999999473301, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.02618999999473301, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -325,10 +325,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Y+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 0.8852802073165494, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 9.334653075341238, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 0.8852797060008407, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 9.334636294454038, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.015467323909969704, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.015467323909969704, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
@@ -341,10 +341,10 @@
|
||||
</binarySaltParameters>
|
||||
|
||||
<binarySaltParameters anion="Cl-" cation="Sm+++">
|
||||
<beta0 updated="Updated at 10:47 7-17-2020"> 0.6989081585234721, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 10:47 7-17-2020"> 6.877882600430561, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta0 updated="Updated at 18:30 7-26-2020"> 0.6989083059080712, 0.0, 0.0, 0.0, 0.0 </beta0>
|
||||
<beta1 updated="Updated at 18:30 7-26-2020"> 6.877881736471866, 0.0, 0.0, 0.0, 0.0 </beta1>
|
||||
<beta2> 0.0, 0.0, 0.0, 0.0, 0.0 </beta2>
|
||||
<Cphi updated="Updated at 10:47 7-17-2020"> -0.019920000110321332, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Cphi updated="Updated at 18:30 7-26-2020"> -0.019920000110321332, 0.0, 0.0, 0.0, 0.0 </Cphi>
|
||||
<Alpha1> 2 </Alpha1>
|
||||
<Alpha2> 0 </Alpha2>
|
||||
<source>
|
||||
|
||||
BIN
docs/build/doctrees/environment.pickle
vendored
BIN
docs/build/doctrees/environment.pickle
vendored
Binary file not shown.
BIN
docs/build/doctrees/guide/install.doctree
vendored
BIN
docs/build/doctrees/guide/install.doctree
vendored
Binary file not shown.
BIN
docs/build/doctrees/guide/quickstart.doctree
vendored
BIN
docs/build/doctrees/guide/quickstart.doctree
vendored
Binary file not shown.
BIN
docs/build/doctrees/modules/reeps.doctree
vendored
BIN
docs/build/doctrees/modules/reeps.doctree
vendored
Binary file not shown.
BIN
docs/build/html/_images/quick_start_output.png
vendored
Normal file
BIN
docs/build/html/_images/quick_start_output.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
119
docs/build/html/_modules/llepe/llepe.html
vendored
119
docs/build/html/_modules/llepe/llepe.html
vendored
@@ -159,7 +159,6 @@
|
||||
<span class="kn">from</span> <span class="nn">scipy.optimize</span> <span class="kn">import</span> <span class="n">minimize</span>
|
||||
<span class="c1"># noinspection PyPep8Naming</span>
|
||||
<span class="kn">import</span> <span class="nn">xml.etree.ElementTree</span> <span class="k">as</span> <span class="nn">ET</span>
|
||||
<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span>
|
||||
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
|
||||
<span class="kn">import</span> <span class="nn">shutil</span>
|
||||
<span class="kn">import</span> <span class="nn">copy</span>
|
||||
@@ -169,9 +168,6 @@
|
||||
<span class="kn">import</span> <span class="nn">pkg_resources</span>
|
||||
<span class="kn">from</span> <span class="nn">.utils</span> <span class="kn">import</span> <span class="n">set_size</span>
|
||||
|
||||
<span class="n">sns</span><span class="o">.</span><span class="n">set</span><span class="p">()</span>
|
||||
<span class="n">sns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">font_scale</span><span class="o">=</span><span class="mf">1.6</span><span class="p">)</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="LLEPE"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE">[docs]</a><span class="k">class</span> <span class="nc">LLEPE</span><span class="p">:</span>
|
||||
<span class="sa">r</span><span class="sd">"""</span>
|
||||
@@ -285,7 +281,8 @@
|
||||
<span class="sd"> :param extracted_species_list: (list) names of extracted species elements.</span>
|
||||
|
||||
<span class="sd"> If ``None``, extracted_species_list will be extracted_species_ion_names</span>
|
||||
<span class="sd"> without '+' i.e. 'Nd+++'->'Nd'</span>
|
||||
<span class="sd"> without '+' i.e. 'Nd+++'->'Nd'</span>
|
||||
|
||||
<span class="sd"> :param aq_solvent_rho: (float) density of solvent (g/L)</span>
|
||||
|
||||
<span class="sd"> If ``None``, molar volume/molecular weight is used from xml</span>
|
||||
@@ -413,12 +410,22 @@
|
||||
<span class="sd"> 'function', 'kwargs', and 'independent_params.</span>
|
||||
|
||||
<span class="sd"> 'function' is a function of the form</span>
|
||||
<span class="sd"> ``function(independent_param__value_list, **kwargs)``</span>
|
||||
|
||||
<span class="sd"> ``function(independent_param__value_list, custom_objects_dict,</span>
|
||||
<span class="sd"> **kwargs)``</span>
|
||||
|
||||
<span class="sd"> 'kwargs' are the extra arguments to pass to function</span>
|
||||
|
||||
<span class="sd"> 'independent_params' is a list of parameter names in opt_dict that the</span>
|
||||
<span class="sd"> dependent_param is a function of.</span>
|
||||
|
||||
<span class="sd"> 'custom_objects_dict' is for accessing the estimator's internal</span>
|
||||
<span class="sd"> custom_objects_dict and must be included in the arguments, even if the</span>
|
||||
<span class="sd"> custom_objects_dict is not set and is None.</span>
|
||||
|
||||
<span class="sd"> See example code for usage.</span>
|
||||
<span class="sd"> :param custom_objects_dict: (dict) dictionary containing custom objects</span>
|
||||
<span class="sd"> format: {<object_name_string>: <object>,...}</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
|
||||
@@ -436,12 +443,13 @@
|
||||
<span class="n">diluant_rho</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">opt_dict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">objective_function</span><span class="o">=</span><span class="s1">'Log-MSE'</span><span class="p">,</span>
|
||||
<span class="n">optimizer</span><span class="o">=</span><span class="s1">'SLSQP'</span><span class="p">,</span>
|
||||
<span class="n">optimizer</span><span class="o">=</span><span class="s1">'scipy_minimize'</span><span class="p">,</span>
|
||||
<span class="n">temp_xml_file_path</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">dependant_params_dict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">custom_objects_dict</span><span class="o">=</span><span class="kc">None</span>
|
||||
<span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_built_in_obj_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'Log-MSE'</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_built_in_opt_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'SLSQP'</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_built_in_opt_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'scipy_minimize'</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span> <span class="o">=</span> <span class="n">exp_data</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span> <span class="o">=</span> <span class="n">phases_xml_filename</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_opt_dict</span> <span class="o">=</span> <span class="n">opt_dict</span>
|
||||
@@ -463,6 +471,7 @@
|
||||
<span class="n">temp_xml_file_path</span> <span class="o">=</span> <span class="sa">r</span><span class="s1">'</span><span class="si">{0}</span><span class="s1">/temp.xml'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'TEMP'</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_temp_xml_file_path</span> <span class="o">=</span> <span class="n">temp_xml_file_path</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_dependant_params_dict</span> <span class="o">=</span> <span class="n">dependant_params_dict</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span> <span class="o">=</span> <span class="n">custom_objects_dict</span>
|
||||
<span class="c1"># Try and except for adding package data to path.</span>
|
||||
<span class="c1"># This only works for sdist, not bdist</span>
|
||||
<span class="c1"># If bdist is needed, research "manifest.in" python setup files</span>
|
||||
@@ -474,7 +483,7 @@
|
||||
<span class="k">except</span> <span class="ne">FileNotFoundError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span> <span class="o">=</span> \
|
||||
<span class="n">pkg_resources</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="s1">'llepe'</span><span class="p">,</span>
|
||||
<span class="sa">r</span><span class="s1">'..\data\xmls\</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="s1">'../data/xmls/</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="n">phases_xml_filename</span><span class="p">))</span>
|
||||
<span class="n">shutil</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_temp_xml_file_path</span><span class="p">)</span>
|
||||
@@ -485,7 +494,7 @@
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">FileNotFoundError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span> <span class="o">=</span> <span class="n">pkg_resources</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span>
|
||||
<span class="s1">'llepe'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'..\data\csvs\</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">))</span>
|
||||
<span class="s1">'llepe'</span><span class="p">,</span> <span class="s1">'../data/csvs/</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
|
||||
@@ -600,7 +609,7 @@
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">FileNotFoundError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span> <span class="o">=</span> <span class="n">pkg_resources</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span>
|
||||
<span class="s1">'llepe'</span><span class="p">,</span> <span class="sa">r</span><span class="s1">'..\data\csvs\</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">))</span>
|
||||
<span class="s1">'llepe'</span><span class="p">,</span> <span class="s1">'../data/csvs/</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_exp_data</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_exp_df</span> <span class="o">=</span> <span class="n">exp_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
|
||||
@@ -654,7 +663,7 @@
|
||||
<span class="k">except</span> <span class="ne">FileNotFoundError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span> <span class="o">=</span> \
|
||||
<span class="n">pkg_resources</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="s1">'llepe'</span><span class="p">,</span>
|
||||
<span class="sa">r</span><span class="s1">'..\data\xmls\</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="s1">'../data/xmls/</span><span class="si">{0}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="n">phases_xml_filename</span><span class="p">))</span>
|
||||
<span class="n">shutil</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_temp_xml_file_path</span><span class="p">)</span>
|
||||
@@ -998,7 +1007,7 @@
|
||||
<span class="s2">"optimizer must be a function "</span>
|
||||
<span class="s2">"with at least 2 arguments: "</span>
|
||||
<span class="s2">"f(objective_func,x_guess, kwargs)"</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">optimizer</span> <span class="o">==</span> <span class="s1">'SLSQP'</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">optimizer</span> <span class="o">==</span> <span class="s1">'scipy_minimize'</span><span class="p">:</span>
|
||||
<span class="n">optimizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scipy_minimize</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_optimizer</span> <span class="o">=</span> <span class="n">optimizer</span>
|
||||
<span class="k">return</span> <span class="kc">None</span></div>
|
||||
@@ -1037,6 +1046,7 @@
|
||||
<div class="viewcode-block" id="LLEPE.get_dependant_params_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.get_dependant_params_dict">[docs]</a> <span class="k">def</span> <span class="nf">get_dependant_params_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Returns the dependant_params_dict</span>
|
||||
|
||||
<span class="sd"> :return: dependant_params_dict: (dict) dictionary containing</span>
|
||||
<span class="sd"> information about parameters dependant on opt_dict</span>
|
||||
<span class="sd"> """</span>
|
||||
@@ -1045,12 +1055,32 @@
|
||||
<div class="viewcode-block" id="LLEPE.set_dependant_params_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.set_dependant_params_dict">[docs]</a> <span class="k">def</span> <span class="nf">set_dependant_params_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependant_params_dict</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Sets the dependant_params_dict</span>
|
||||
|
||||
<span class="sd"> :param dependant_params_dict: (dict) dictionary containing information</span>
|
||||
<span class="sd"> about parameters dependant on opt_dict</span>
|
||||
<span class="sd"> about parameters dependant on opt_dict</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_dependant_params_dict</span> <span class="o">=</span> <span class="n">dependant_params_dict</span>
|
||||
<span class="k">return</span> <span class="kc">None</span></div>
|
||||
|
||||
<div class="viewcode-block" id="LLEPE.get_custom_objects_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.get_custom_objects_dict">[docs]</a> <span class="k">def</span> <span class="nf">get_custom_objects_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Returns the custom_objects_dict</span>
|
||||
|
||||
<span class="sd"> :return: custom_objects_dict: (dict) dictionary containing</span>
|
||||
<span class="sd"> information about custom objects from user</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span></div>
|
||||
|
||||
<div class="viewcode-block" id="LLEPE.set_custom_objects_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.set_custom_objects_dict">[docs]</a> <span class="k">def</span> <span class="nf">set_custom_objects_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">custom_objects_dict</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Sets the custom_objects_dict</span>
|
||||
|
||||
<span class="sd"> :param custom_objects_dict: (dict) dictionary containing information</span>
|
||||
<span class="sd"> about about custom objects from user</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span> <span class="o">=</span> <span class="n">custom_objects_dict</span>
|
||||
<span class="k">return</span> <span class="kc">None</span></div>
|
||||
|
||||
<div class="viewcode-block" id="LLEPE.update_predicted_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.update_predicted_dict">[docs]</a> <span class="k">def</span> <span class="nf">update_predicted_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
|
||||
<span class="n">phases_xml_filename</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">phase_names</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
@@ -1143,6 +1173,7 @@
|
||||
<span class="n">objective_function</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective_function</span>
|
||||
<span class="n">opt_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_opt_dict</span><span class="p">)</span>
|
||||
<span class="n">dep_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_dependant_params_dict</span><span class="p">)</span>
|
||||
<span class="n">custom_objects_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span><span class="p">)</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
@@ -1158,6 +1189,8 @@
|
||||
<span class="n">x</span><span class="p">[</span><span class="n">ind</span><span class="p">]):</span> <span class="c1"># if nan, do not update xml with nan</span>
|
||||
<span class="n">opt_dict</span><span class="p">[</span><span class="n">param_name</span><span class="p">][</span><span class="s1">'input_value'</span><span class="p">]</span> <span class="o">*=</span> <span class="n">x</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">custom_objects_dict</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">update_custom_objects_dict</span><span class="p">(</span><span class="n">opt_dict</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">update_xml</span><span class="p">(</span><span class="n">opt_dict</span><span class="p">,</span>
|
||||
<span class="n">temp_xml_file_path</span><span class="p">,</span>
|
||||
<span class="n">dependant_params_dict</span><span class="o">=</span><span class="n">dep_dict</span><span class="p">)</span>
|
||||
@@ -1228,8 +1261,8 @@
|
||||
<span class="n">dependant_params_dict</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="sd">"""updates xml file with info_dict</span>
|
||||
|
||||
<span class="sd"> :param info_dict: (dict) info in {species_names:{thermo_prop:val}}</span>
|
||||
<span class="sd"> Requires an identical structure to opt_dict</span>
|
||||
<span class="sd"> :param info_dict: (dict) Requires an identical structure to opt_dict</span>
|
||||
<span class="sd"> Ignores items with keys containing "custom_object_name"</span>
|
||||
<span class="sd"> :param phases_xml_filename: (str) xml filename if editing other xml</span>
|
||||
<span class="sd"> If ``None``, the current xml will be modified and the internal</span>
|
||||
<span class="sd"> Cantera phases will be refreshed to the new values.</span>
|
||||
@@ -1239,7 +1272,8 @@
|
||||
<span class="k">if</span> <span class="n">phases_xml_filename</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">phases_xml_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span>
|
||||
<span class="n">new_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">info_dict</span><span class="p">)</span>
|
||||
<span class="n">dep_dict</span> <span class="o">=</span> <span class="n">dependant_params_dict</span>
|
||||
<span class="n">dep_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">dependant_params_dict</span><span class="p">)</span>
|
||||
<span class="n">custom_objects_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">dep_dict</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">new_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">dep_dict</span><span class="p">)</span>
|
||||
@@ -1257,10 +1291,12 @@
|
||||
<span class="n">ind_vals</span> <span class="o">=</span> <span class="p">[</span><span class="n">new_dict</span><span class="p">[</span><span class="n">ind_param_name</span><span class="p">][</span><span class="s1">'input_value'</span><span class="p">]</span>
|
||||
<span class="k">for</span> <span class="n">ind_param_name</span> <span class="ow">in</span> <span class="n">ind_param_names</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">mod_kwargs</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">new_dict</span><span class="p">[</span><span class="n">param_name</span><span class="p">][</span><span class="s1">'input_value'</span><span class="p">]</span> <span class="o">=</span> <span class="n">mod_func</span><span class="p">(</span><span class="n">ind_vals</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">new_dict</span><span class="p">[</span><span class="n">param_name</span><span class="p">][</span><span class="s1">'input_value'</span><span class="p">]</span> <span class="o">=</span> \
|
||||
<span class="n">mod_func</span><span class="p">(</span><span class="n">ind_vals</span><span class="p">,</span>
|
||||
<span class="n">custom_objects_dict</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">new_dict</span><span class="p">[</span><span class="n">param_name</span><span class="p">][</span><span class="s1">'input_value'</span><span class="p">]</span> <span class="o">=</span> \
|
||||
<span class="n">mod_func</span><span class="p">(</span><span class="n">ind_vals</span><span class="p">,</span> <span class="n">custom_objects_dict</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">mod_kwargs</span><span class="p">)</span>
|
||||
<span class="n">tree</span> <span class="o">=</span> <span class="n">ET</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">phases_xml_filename</span><span class="p">)</span>
|
||||
<span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
|
||||
@@ -1268,6 +1304,8 @@
|
||||
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">new_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
|
||||
<span class="n">d</span> <span class="o">=</span> <span class="n">new_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<span class="n">now</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="s1">'custom_object_name'</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="s1">'upper_attrib_name'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
|
||||
<span class="ow">and</span> <span class="n">d</span><span class="p">[</span><span class="s1">'lower_attrib_name'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">child1</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="s1">'upper_element_name'</span><span class="p">]):</span>
|
||||
@@ -1324,6 +1362,31 @@
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">set_phases</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_phases_xml_filename</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_phase_names</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="kc">None</span></div>
|
||||
|
||||
<div class="viewcode-block" id="LLEPE.update_custom_objects_dict"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.update_custom_objects_dict">[docs]</a> <span class="k">def</span> <span class="nf">update_custom_objects_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">info_dict</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> updates internal custom_objects_dict with info_dict</span>
|
||||
|
||||
<span class="sd"> :param info_dict: Requires an identical structure to opt_dict</span>
|
||||
<span class="sd"> Ignores items with keys containing "custom_object_name"</span>
|
||||
|
||||
<span class="sd"> :return: None</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">custom_objects_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">info_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
|
||||
<span class="n">d</span> <span class="o">=</span> <span class="n">info_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="s1">'upper_element_name'</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="n">func</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">'function'</span><span class="p">]</span>
|
||||
<span class="n">value</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">'input_value'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">'kwargs'</span><span class="p">]</span>
|
||||
<span class="n">object_name</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">'custom_object_name'</span><span class="p">]</span>
|
||||
<span class="n">new_object</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">custom_objects_dict</span><span class="p">[</span><span class="n">object_name</span><span class="p">],</span>
|
||||
<span class="n">value</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="n">custom_objects_dict</span><span class="p">[</span><span class="n">object_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_object</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_custom_objects_dict</span> <span class="o">=</span> <span class="n">custom_objects_dict</span>
|
||||
<span class="k">return</span> <span class="kc">None</span></div>
|
||||
|
||||
<div class="viewcode-block" id="LLEPE.parity_plot"><a class="viewcode-back" href="../../modules/reeps.html#llepe.LLEPE.parity_plot">[docs]</a> <span class="k">def</span> <span class="nf">parity_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
|
||||
<span class="n">compared_value</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">c_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
@@ -1388,6 +1451,11 @@
|
||||
<span class="s1">'meas'</span><span class="p">:</span> <span class="n">meas</span><span class="p">,</span>
|
||||
<span class="n">c_data</span><span class="p">:</span> <span class="n">exp_df</span><span class="p">[</span><span class="n">c_data</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
|
||||
<span class="s1">'feed_molarity'</span><span class="p">:</span> <span class="n">feed_molarity</span><span class="p">})</span>
|
||||
<span class="k">elif</span> <span class="n">c_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">combined_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">({</span><span class="s1">'pred'</span><span class="p">:</span> <span class="n">pred</span><span class="p">,</span>
|
||||
<span class="s1">'meas'</span><span class="p">:</span> <span class="n">meas</span><span class="p">,</span>
|
||||
<span class="s1">'c_data'</span><span class="p">:</span> <span class="n">c_data</span><span class="p">,</span>
|
||||
<span class="s1">'feed_molarity'</span><span class="p">:</span> <span class="n">feed_molarity</span><span class="p">})</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">combined_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">({</span><span class="s1">'pred'</span><span class="p">:</span> <span class="n">pred</span><span class="p">,</span>
|
||||
<span class="s1">'meas'</span><span class="p">:</span> <span class="n">meas</span><span class="p">,</span>
|
||||
@@ -1420,35 +1488,36 @@
|
||||
<span class="n">default_title</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{0}</span><span class="s1"> complex eq. conc. (mol/L)'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="n">compared_species</span><span class="p">)</span>
|
||||
<span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">data_labels</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">unique_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">data_labels</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">label</span> <span class="ow">in</span> <span class="n">unique_labels</span><span class="p">:</span>
|
||||
<span class="n">filtered_data</span> <span class="o">=</span> <span class="n">combined_df</span><span class="p">[</span><span class="n">combined_df</span><span class="p">[</span><span class="s1">'label'</span><span class="p">]</span> <span class="o">==</span> <span class="n">label</span><span class="p">]</span>
|
||||
<span class="n">filtered_meas</span> <span class="o">=</span> <span class="n">filtered_data</span><span class="p">[</span><span class="s1">'meas'</span><span class="p">]</span>
|
||||
<span class="n">filtered_pred</span> <span class="o">=</span> <span class="n">filtered_data</span><span class="p">[</span><span class="s1">'pred'</span><span class="p">]</span>
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">filtered_meas</span><span class="p">,</span> <span class="n">filtered_pred</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="n">label</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">filtered_pred</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">filtered_meas</span><span class="p">,</span> <span class="n">filtered_pred</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="n">label</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">legend</span><span class="p">:</span>
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'best'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">elif</span> <span class="n">c_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">c_data</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="n">c_data</span> <span class="o">=</span> <span class="n">combined_df</span><span class="p">[</span><span class="n">c_data</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">c_data</span> <span class="o">=</span> <span class="n">combined_df</span><span class="p">[</span><span class="s1">'c_data'</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
|
||||
<span class="n">p1</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">meas</span><span class="p">,</span> <span class="n">pred</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">c_data</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">'viridis'</span><span class="p">)</span>
|
||||
<span class="n">c_bar</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">'</span><span class="si">%.2f</span><span class="s1">'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">c_label</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">c_bar</span><span class="o">.</span><span class="n">set_label</span><span class="p">(</span><span class="n">c_label</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">270</span><span class="p">,</span> <span class="n">labelpad</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">sns</span><span class="o">.</span><span class="n">scatterplot</span><span class="p">(</span><span class="n">meas</span><span class="p">,</span> <span class="n">pred</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"r"</span><span class="p">,</span>
|
||||
<span class="n">legend</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">meas</span><span class="p">,</span> <span class="n">pred</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="s2">"r"</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
|
||||
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">min_max_data</span><span class="p">,</span> <span class="n">min_max_data</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"b"</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">print_r_squared</span><span class="p">:</span>
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">min_max_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
||||
<span class="n">min_max_data</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.9</span><span class="p">,</span>
|
||||
<span class="s1">'$R^2$=</span><span class="si">{0:.2f}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">r_squared</span><span class="p">(</span><span class="n">compared_value</span><span class="p">)))</span>
|
||||
<span class="c1"># plt.legend(loc='lower right')</span>
|
||||
<span class="c1"># else:</span>
|
||||
<span class="c1"># plt.legend()</span>
|
||||
|
||||
<span class="n">ax</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">xlabel</span><span class="o">=</span><span class="s1">'Measured'</span><span class="p">,</span> <span class="n">ylabel</span><span class="o">=</span><span class="s1">'Predicted'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">plot_title</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
@@ -8,7 +8,7 @@ Installation
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
REEPS requires python3 (>=3.5) with the development headers.
|
||||
LLEPE requires python3 (>=3.5) with the development headers.
|
||||
|
||||
|
||||
Stable Release
|
||||
|
||||
@@ -9,28 +9,41 @@ Here is a quick example of how to fit an xml thermodynamic model to experimental
|
||||
This code fits Nd standard enthalpy in the "twophase.xml" cantera file to the
|
||||
experimental data in "Nd_exp_data.csv".
|
||||
|
||||
This code requires that you copy and paste the "elementz.xml" file in the llepe's data folder into
|
||||
the Cantera's data folder located in your environments site-packages folder.
|
||||
|
||||
The code then produces a parity plot of the measured and predicted concentrations of Nd 3+ in the
|
||||
aqueous phase.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from reeps import REEPS
|
||||
from llepe import LLEPE
|
||||
opt_dict = {'Nd(H(A)2)3(org)_h0': {'upper_element_name': 'species',
|
||||
'upper_attrib_name': 'name',
|
||||
'upper_attrib_value': 'Nd(H(A)2)3(org)',
|
||||
'lower_element_name': 'h0',
|
||||
'lower_attrib_name': None,
|
||||
'lower_attrib_value': None,
|
||||
'input_format': '{0}',
|
||||
'input_value': -4.7e6}}
|
||||
|
||||
searcher_parameters = {'exp_csv_filename': 'Nd_exp_data.csv',
|
||||
searcher_parameters = {'exp_data': 'Nd_exp_data.csv',
|
||||
'phases_xml_filename': 'twophase.xml',
|
||||
'opt_dict': {'Nd(H(A)2)3(org)': {'h0': -4.7e6}},
|
||||
'opt_dict': opt_dict,
|
||||
'phase_names': ['HCl_electrolyte', 'PC88A_liquid'],
|
||||
'aq_solvent_name': 'H2O(L)',
|
||||
'extractant_name': '(HA)2(org)',
|
||||
'diluant_name': 'dodecane',
|
||||
'complex_names': ['Nd(H(A)2)3(org)'],
|
||||
'rare_earth_ion_names': ['Nd+++'],
|
||||
'extracted_species_ion_names': ['Nd+++'],
|
||||
'aq_solvent_rho': 1000.0,
|
||||
'extractant_rho': 960.0,
|
||||
'diluant_rho': 750.0}
|
||||
searcher = REEPS(**searcher_parameters)
|
||||
searcher = LLEPE(**searcher_parameters)
|
||||
est_enthalpy = searcher.fit()
|
||||
searcher.update_xml(est_enthalpy)
|
||||
searcher.parity_plot(print_r_squared=True)
|
||||
|
||||
The code should return something like this
|
||||
|
||||
.. figure:: ../_static/img/quick_start_output.png
|
||||
BIN
docs/build/html/_static/img/quick_start_output.png
vendored
Normal file
BIN
docs/build/html/_static/img/quick_start_output.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
16
docs/build/html/genindex.html
vendored
16
docs/build/html/genindex.html
vendored
@@ -182,6 +182,8 @@
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_aq_solvent_rho">get_aq_solvent_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_complex_names">get_complex_names() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_custom_objects_dict">get_custom_objects_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_dependant_params_dict">get_dependant_params_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
@@ -192,11 +194,11 @@
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_exp_df">get_exp_df() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_extractant_name">get_extractant_name() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_extractant_rho">get_extractant_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_extractant_rho">get_extractant_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_extracted_species_ion_names">get_extracted_species_ion_names() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.get_extracted_species_list">get_extracted_species_list() (llepe.LLEPE method)</a>
|
||||
@@ -280,6 +282,8 @@
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_aq_solvent_rho">set_aq_solvent_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_complex_names">set_complex_names() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_custom_objects_dict">set_custom_objects_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_dependant_params_dict">set_dependant_params_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
@@ -288,11 +292,11 @@
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_diluant_rho">set_diluant_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_exp_df">set_exp_df() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_extractant_name">set_extractant_name() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_extractant_name">set_extractant_name() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_extractant_rho">set_extractant_rho() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.set_extracted_species_ion_names">set_extracted_species_ion_names() (llepe.LLEPE method)</a>
|
||||
@@ -317,10 +321,12 @@
|
||||
<h2 id="U">U</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.update_predicted_dict">update_predicted_dict() (llepe.LLEPE method)</a>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.update_custom_objects_dict">update_custom_objects_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.update_predicted_dict">update_predicted_dict() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
<li><a href="modules/reeps.html#llepe.LLEPE.update_xml">update_xml() (llepe.LLEPE method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
|
||||
2
docs/build/html/guide/install.html
vendored
2
docs/build/html/guide/install.html
vendored
@@ -166,7 +166,7 @@
|
||||
<span id="install"></span><h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="prerequisites">
|
||||
<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
|
||||
<p>REEPS requires python3 (>=3.5) with the development headers.</p>
|
||||
<p>LLEPE requires python3 (>=3.5) with the development headers.</p>
|
||||
</div>
|
||||
<div class="section" id="stable-release">
|
||||
<h2>Stable Release<a class="headerlink" href="#stable-release" title="Permalink to this headline">¶</a></h2>
|
||||
|
||||
23
docs/build/html/guide/quickstart.html
vendored
23
docs/build/html/guide/quickstart.html
vendored
@@ -160,29 +160,42 @@
|
||||
<p>Here is a quick example of how to fit an xml thermodynamic model to experimental data.</p>
|
||||
<p>This code fits Nd standard enthalpy in the "twophase.xml" cantera file to the
|
||||
experimental data in "Nd_exp_data.csv".</p>
|
||||
<p>This code requires that you copy and paste the "elementz.xml" file in the llepe's data folder into
|
||||
the Cantera's data folder located in your environments site-packages folder.</p>
|
||||
<p>The code then produces a parity plot of the measured and predicted concentrations of Nd 3+ in the
|
||||
aqueous phase.</p>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">reeps</span> <span class="kn">import</span> <span class="n">REEPS</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">llepe</span> <span class="kn">import</span> <span class="n">LLEPE</span>
|
||||
<span class="n">opt_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'Nd(H(A)2)3(org)_h0'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'upper_element_name'</span><span class="p">:</span> <span class="s1">'species'</span><span class="p">,</span>
|
||||
<span class="s1">'upper_attrib_name'</span><span class="p">:</span> <span class="s1">'name'</span><span class="p">,</span>
|
||||
<span class="s1">'upper_attrib_value'</span><span class="p">:</span> <span class="s1">'Nd(H(A)2)3(org)'</span><span class="p">,</span>
|
||||
<span class="s1">'lower_element_name'</span><span class="p">:</span> <span class="s1">'h0'</span><span class="p">,</span>
|
||||
<span class="s1">'lower_attrib_name'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="s1">'lower_attrib_value'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="s1">'input_format'</span><span class="p">:</span> <span class="s1">'</span><span class="si">{0}</span><span class="s1">'</span><span class="p">,</span>
|
||||
<span class="s1">'input_value'</span><span class="p">:</span> <span class="o">-</span><span class="mf">4.7e6</span><span class="p">}}</span>
|
||||
|
||||
<span class="n">searcher_parameters</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'exp_csv_filename'</span><span class="p">:</span> <span class="s1">'Nd_exp_data.csv'</span><span class="p">,</span>
|
||||
<span class="n">searcher_parameters</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'exp_data'</span><span class="p">:</span> <span class="s1">'Nd_exp_data.csv'</span><span class="p">,</span>
|
||||
<span class="s1">'phases_xml_filename'</span><span class="p">:</span> <span class="s1">'twophase.xml'</span><span class="p">,</span>
|
||||
<span class="s1">'opt_dict'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'Nd(H(A)2)3(org)'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'h0'</span><span class="p">:</span> <span class="o">-</span><span class="mf">4.7e6</span><span class="p">}},</span>
|
||||
<span class="s1">'opt_dict'</span><span class="p">:</span> <span class="n">opt_dict</span><span class="p">,</span>
|
||||
<span class="s1">'phase_names'</span><span class="p">:</span> <span class="p">[</span><span class="s1">'HCl_electrolyte'</span><span class="p">,</span> <span class="s1">'PC88A_liquid'</span><span class="p">],</span>
|
||||
<span class="s1">'aq_solvent_name'</span><span class="p">:</span> <span class="s1">'H2O(L)'</span><span class="p">,</span>
|
||||
<span class="s1">'extractant_name'</span><span class="p">:</span> <span class="s1">'(HA)2(org)'</span><span class="p">,</span>
|
||||
<span class="s1">'diluant_name'</span><span class="p">:</span> <span class="s1">'dodecane'</span><span class="p">,</span>
|
||||
<span class="s1">'complex_names'</span><span class="p">:</span> <span class="p">[</span><span class="s1">'Nd(H(A)2)3(org)'</span><span class="p">],</span>
|
||||
<span class="s1">'rare_earth_ion_names'</span><span class="p">:</span> <span class="p">[</span><span class="s1">'Nd+++'</span><span class="p">],</span>
|
||||
<span class="s1">'extracted_species_ion_names'</span><span class="p">:</span> <span class="p">[</span><span class="s1">'Nd+++'</span><span class="p">],</span>
|
||||
<span class="s1">'aq_solvent_rho'</span><span class="p">:</span> <span class="mf">1000.0</span><span class="p">,</span>
|
||||
<span class="s1">'extractant_rho'</span><span class="p">:</span> <span class="mf">960.0</span><span class="p">,</span>
|
||||
<span class="s1">'diluant_rho'</span><span class="p">:</span> <span class="mf">750.0</span><span class="p">}</span>
|
||||
<span class="n">searcher</span> <span class="o">=</span> <span class="n">REEPS</span><span class="p">(</span><span class="o">**</span><span class="n">searcher_parameters</span><span class="p">)</span>
|
||||
<span class="n">searcher</span> <span class="o">=</span> <span class="n">LLEPE</span><span class="p">(</span><span class="o">**</span><span class="n">searcher_parameters</span><span class="p">)</span>
|
||||
<span class="n">est_enthalpy</span> <span class="o">=</span> <span class="n">searcher</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
|
||||
<span class="n">searcher</span><span class="o">.</span><span class="n">update_xml</span><span class="p">(</span><span class="n">est_enthalpy</span><span class="p">)</span>
|
||||
<span class="n">searcher</span><span class="o">.</span><span class="n">parity_plot</span><span class="p">(</span><span class="n">print_r_squared</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The code should return something like this</p>
|
||||
<div class="figure align-default">
|
||||
<img alt="../_images/quick_start_output.png" src="../_images/quick_start_output.png" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
85
docs/build/html/modules/reeps.html
vendored
85
docs/build/html/modules/reeps.html
vendored
@@ -163,7 +163,7 @@
|
||||
<h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="py class">
|
||||
<dt id="llepe.LLEPE">
|
||||
<em class="property">class </em><code class="sig-prename descclassname">llepe.</code><code class="sig-name descname">LLEPE</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exp_data</span></em>, <em class="sig-param"><span class="n">phases_xml_filename</span></em>, <em class="sig-param"><span class="n">phase_names</span></em>, <em class="sig-param"><span class="n">aq_solvent_name</span></em>, <em class="sig-param"><span class="n">extractant_name</span></em>, <em class="sig-param"><span class="n">diluant_name</span></em>, <em class="sig-param"><span class="n">complex_names</span></em>, <em class="sig-param"><span class="n">extracted_species_ion_names</span></em>, <em class="sig-param"><span class="n">extracted_species_list</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">aq_solvent_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">extractant_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">diluant_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">opt_dict</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">objective_function</span><span class="o">=</span><span class="default_value">'Log-MSE'</span></em>, <em class="sig-param"><span class="n">optimizer</span><span class="o">=</span><span class="default_value">'SLSQP'</span></em>, <em class="sig-param"><span class="n">temp_xml_file_path</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dependant_params_dict</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">class </em><code class="sig-prename descclassname">llepe.</code><code class="sig-name descname">LLEPE</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exp_data</span></em>, <em class="sig-param"><span class="n">phases_xml_filename</span></em>, <em class="sig-param"><span class="n">phase_names</span></em>, <em class="sig-param"><span class="n">aq_solvent_name</span></em>, <em class="sig-param"><span class="n">extractant_name</span></em>, <em class="sig-param"><span class="n">diluant_name</span></em>, <em class="sig-param"><span class="n">complex_names</span></em>, <em class="sig-param"><span class="n">extracted_species_ion_names</span></em>, <em class="sig-param"><span class="n">extracted_species_list</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">aq_solvent_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">extractant_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">diluant_rho</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">opt_dict</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">objective_function</span><span class="o">=</span><span class="default_value">'Log-MSE'</span></em>, <em class="sig-param"><span class="n">optimizer</span><span class="o">=</span><span class="default_value">'scipy_minimize'</span></em>, <em class="sig-param"><span class="n">temp_xml_file_path</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dependant_params_dict</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">custom_objects_dict</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Liquid-Liquid Extraction Parameter estimator</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
@@ -277,10 +277,8 @@ i.e. Nd(H(A)2)3(org), Pr(H(A)2)3(org)</p>
|
||||
<li><p><strong>extracted_species_ion_names</strong> -- (list) names of extracted species ions
|
||||
in xml file</p></li>
|
||||
<li><p><strong>extracted_species_list</strong> -- <p>(list) names of extracted species elements.</p>
|
||||
<dl class="simple">
|
||||
<dt>If <code class="docutils literal notranslate"><span class="pre">None</span></code>, extracted_species_list will be extracted_species_ion_names</dt><dd><p>without '+' i.e. 'Nd+++'->'Nd'</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>If <code class="docutils literal notranslate"><span class="pre">None</span></code>, extracted_species_list will be extracted_species_ion_names
|
||||
without '+' i.e. 'Nd+++'->'Nd'</p>
|
||||
</p></li>
|
||||
<li><p><strong>aq_solvent_rho</strong> -- <p>(float) density of solvent (g/L)</p>
|
||||
<p>If <code class="docutils literal notranslate"><span class="pre">None</span></code>, molar volume/molecular weight is used from xml</p>
|
||||
@@ -402,13 +400,19 @@ xml file</p>
|
||||
about parameters dependant on opt_dict. Has a similar structure to
|
||||
opt_dict except instead of input values, it has 3 other fields:
|
||||
'function', 'kwargs', and 'independent_params.</p>
|
||||
<p>'function' is a function of the form
|
||||
<code class="docutils literal notranslate"><span class="pre">function(independent_param__value_list,</span> <span class="pre">**kwargs)</span></code>
|
||||
'kwargs' are the extra arguments to pass to function
|
||||
'independent_params' is a list of parameter names in opt_dict that the
|
||||
<p>'function' is a function of the form</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">function(independent_param__value_list,</span> <span class="pre">custom_objects_dict,</span>
|
||||
<span class="pre">**kwargs)</span></code></p>
|
||||
<p>'kwargs' are the extra arguments to pass to function</p>
|
||||
<p>'independent_params' is a list of parameter names in opt_dict that the
|
||||
dependent_param is a function of.</p>
|
||||
<p>'custom_objects_dict' is for accessing the estimator's internal
|
||||
custom_objects_dict and must be included in the arguments, even if the
|
||||
custom_objects_dict is not set and is None.</p>
|
||||
<p>See example code for usage.</p>
|
||||
</p></li>
|
||||
<li><p><strong>custom_objects_dict</strong> -- (dict) dictionary containing custom objects
|
||||
format: {<object_name_string>: <object>,...}</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
@@ -469,14 +473,28 @@ optimized opt_dict: Has identical structure as opt_dict</p>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.get_custom_objects_dict">
|
||||
<code class="sig-name descname">get_custom_objects_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.get_custom_objects_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.get_custom_objects_dict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the custom_objects_dict</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p>custom_objects_dict: (dict) dictionary containing
|
||||
information about custom objects from user</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.get_dependant_params_dict">
|
||||
<code class="sig-name descname">get_dependant_params_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.get_dependant_params_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.get_dependant_params_dict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the dependant_params_dict
|
||||
:return: dependant_params_dict: (dict) dictionary containing</p>
|
||||
<blockquote>
|
||||
<div><p>information about parameters dependant on opt_dict</p>
|
||||
</div></blockquote>
|
||||
<dd><p>Returns the dependant_params_dict</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p>dependant_params_dict: (dict) dictionary containing
|
||||
information about parameters dependant on opt_dict</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
@@ -795,12 +813,28 @@ objective_function value</p>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.set_custom_objects_dict">
|
||||
<code class="sig-name descname">set_custom_objects_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">custom_objects_dict</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.set_custom_objects_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.set_custom_objects_dict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Sets the custom_objects_dict</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>custom_objects_dict</strong> -- (dict) dictionary containing information
|
||||
about about custom objects from user</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.set_dependant_params_dict">
|
||||
<code class="sig-name descname">set_dependant_params_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dependant_params_dict</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.set_dependant_params_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.set_dependant_params_dict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Sets the dependant_params_dict
|
||||
:param dependant_params_dict: (dict) dictionary containing information
|
||||
<dd><p>Sets the dependant_params_dict</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>dependant_params_dict</strong> -- (dict) dictionary containing information
|
||||
about parameters dependant on opt_dict</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
@@ -979,6 +1013,21 @@ xml file.</p>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.update_custom_objects_dict">
|
||||
<code class="sig-name descname">update_custom_objects_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">info_dict</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.update_custom_objects_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.update_custom_objects_dict" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>updates internal custom_objects_dict with info_dict</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>info_dict</strong> -- Requires an identical structure to opt_dict
|
||||
Ignores items with keys containing "custom_object_name"</p>
|
||||
</dd>
|
||||
<dt class="field-even">Returns</dt>
|
||||
<dd class="field-even"><p>None</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt id="llepe.LLEPE.update_predicted_dict">
|
||||
<code class="sig-name descname">update_predicted_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">phases_xml_filename</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">phase_names</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/llepe/llepe.html#LLEPE.update_predicted_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#llepe.LLEPE.update_predicted_dict" title="Permalink to this definition">¶</a></dt>
|
||||
@@ -1005,8 +1054,8 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>info_dict</strong> -- (dict) info in {species_names:{thermo_prop:val}}
|
||||
Requires an identical structure to opt_dict</p></li>
|
||||
<li><p><strong>info_dict</strong> -- (dict) Requires an identical structure to opt_dict
|
||||
Ignores items with keys containing "custom_object_name"</p></li>
|
||||
<li><p><strong>phases_xml_filename</strong> -- (str) xml filename if editing other xml
|
||||
If <code class="docutils literal notranslate"><span class="pre">None</span></code>, the current xml will be modified and the internal
|
||||
Cantera phases will be refreshed to the new values.</p></li>
|
||||
|
||||
BIN
docs/build/html/objects.inv
vendored
BIN
docs/build/html/objects.inv
vendored
Binary file not shown.
2
docs/build/html/searchindex.js
vendored
2
docs/build/html/searchindex.js
vendored
File diff suppressed because one or more lines are too long
BIN
docs/source/_static/img/quick_start_output.png
Normal file
BIN
docs/source/_static/img/quick_start_output.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@@ -8,7 +8,7 @@ Installation
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
REEPS requires python3 (>=3.5) with the development headers.
|
||||
LLEPE requires python3 (>=3.5) with the development headers.
|
||||
|
||||
|
||||
Stable Release
|
||||
|
||||
@@ -9,28 +9,41 @@ Here is a quick example of how to fit an xml thermodynamic model to experimental
|
||||
This code fits Nd standard enthalpy in the "twophase.xml" cantera file to the
|
||||
experimental data in "Nd_exp_data.csv".
|
||||
|
||||
This code requires that you copy and paste the "elementz.xml" file in the llepe's data folder into
|
||||
the Cantera's data folder located in your environments site-packages folder.
|
||||
|
||||
The code then produces a parity plot of the measured and predicted concentrations of Nd 3+ in the
|
||||
aqueous phase.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from reeps import REEPS
|
||||
from llepe import LLEPE
|
||||
opt_dict = {'Nd(H(A)2)3(org)_h0': {'upper_element_name': 'species',
|
||||
'upper_attrib_name': 'name',
|
||||
'upper_attrib_value': 'Nd(H(A)2)3(org)',
|
||||
'lower_element_name': 'h0',
|
||||
'lower_attrib_name': None,
|
||||
'lower_attrib_value': None,
|
||||
'input_format': '{0}',
|
||||
'input_value': -4.7e6}}
|
||||
|
||||
searcher_parameters = {'exp_csv_filename': 'Nd_exp_data.csv',
|
||||
searcher_parameters = {'exp_data': 'Nd_exp_data.csv',
|
||||
'phases_xml_filename': 'twophase.xml',
|
||||
'opt_dict': {'Nd(H(A)2)3(org)': {'h0': -4.7e6}},
|
||||
'opt_dict': opt_dict,
|
||||
'phase_names': ['HCl_electrolyte', 'PC88A_liquid'],
|
||||
'aq_solvent_name': 'H2O(L)',
|
||||
'extractant_name': '(HA)2(org)',
|
||||
'diluant_name': 'dodecane',
|
||||
'complex_names': ['Nd(H(A)2)3(org)'],
|
||||
'rare_earth_ion_names': ['Nd+++'],
|
||||
'extracted_species_ion_names': ['Nd+++'],
|
||||
'aq_solvent_rho': 1000.0,
|
||||
'extractant_rho': 960.0,
|
||||
'diluant_rho': 750.0}
|
||||
searcher = REEPS(**searcher_parameters)
|
||||
searcher = LLEPE(**searcher_parameters)
|
||||
est_enthalpy = searcher.fit()
|
||||
searcher.update_xml(est_enthalpy)
|
||||
searcher.parity_plot(print_r_squared=True)
|
||||
|
||||
The code should return something like this
|
||||
|
||||
.. figure:: ../_static/img/quick_start_output.png
|
||||
Reference in New Issue
Block a user