From 7085849c26692996cc326e3c52acae56291f13a9 Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Wed, 6 May 2026 13:19:23 -0600 Subject: [PATCH 01/12] Initial commit with parameter sweep components --- .../surrogate_models/energy_param_sweep.py | 99 +++++++++++ src/wrd/surrogate_models/param_sweep_fxs.py | 162 ++++++++++++++++++ 2 files changed, 261 insertions(+) create mode 100644 src/wrd/surrogate_models/energy_param_sweep.py create mode 100644 src/wrd/surrogate_models/param_sweep_fxs.py diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py new file mode 100644 index 0000000..124a01b --- /dev/null +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -0,0 +1,99 @@ +# Imports +from pprint import pprint +from IPython import get_ipython +from watertap.core.solvers import get_solver +from parameter_sweep import ParameterSweep +from wrd.surrogate_models.param_sweep_fxs import ( + optimize, + build_flowsheet, + build_sweep_params, + build_outputs, +) + + +def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): + solver = get_solver() + kwargs_dict = { + # Arguments being used in the demo + "h5_results_file_name": "ps_demo.h5", # Resulting output file name + "build_model": build_flowsheet, # Function that builds the flowsheet model + "build_model_kwargs": dict(scenario=None, op_limts=op_limits), + "build_sweep_params": build_sweep_params, # Function for building sweep param dictionary + "build_sweep_params_kwargs": dict( + num_samples=num_samples, var_lims=var_lims, scenario="default" + ), + "build_outputs": build_outputs, # Function the builds outputs to save + "build_outputs_kwargs": {}, + "optimize_function": optimize, # Optimize flow sheet function + "optimize_kwargs": {"solver": solver, "check_termination": False}, + "initialize_function": None, + "initialize_kwargs": {}, + "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available + "number_of_subprocesses": num_procs, + # Additional useful keyword arguments + "csv_results_file_name": None, # For storing results as CSV + "h5_parent_group_name": None, # Useful for loop tool + "update_sweep_params_before_init": False, + "initialize_before_sweep": False, + "reinitialize_function": None, + "reinitialize_kwargs": {}, + "reinitialize_before_sweep": False, + "probe_function": None, + # Post-processing arguments + "interpolate_nan_outputs": False, + # Advanced Users + "debugging_data_dir": None, + "log_model_states": False, + "custom_do_param_sweep": None, # Advanced users only! + "custom_do_param_sweep_kwargs": {}, + } + ps = ParameterSweep(**kwargs_dict) + return ps, kwargs_dict + + +num_samples = 4 +num_procs = 4 +op_limts = { + "Stage 1": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 420 / 3600, + "Qin_max": 635 / 3600, + }, + "Stage 2": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 200 / 3600, + "Qin_max": 251 / 3600, + }, + "Stage 3": { + "RR_min": 0.40, + "RR_max": 0.52, + "Qin_min": 75 / 3600, + "Qin_max": 126 / 3600, + }, +} +var_lims = { + "RR_lb": 0.88, + "RR_ub": 0.93, + "Qin_lb": 420 / 3600, # m3/s + "Qin_ub": 635 / 3600, # m3/s +} +ps, kwargs_dict = create_parameter_sweep_object( + num_samples, num_procs, op_limts, var_lims +) + +results_array, results_dict = ps.parameter_sweep( + kwargs_dict["build_model"], + kwargs_dict["build_sweep_params"], + build_outputs=kwargs_dict["build_outputs"], + build_outputs_kwargs=kwargs_dict["build_outputs_kwargs"], + num_samples=num_samples, + seed=None, + build_model_kwargs=kwargs_dict["build_model_kwargs"], + build_sweep_params_kwargs=kwargs_dict["build_sweep_params_kwargs"], +) + +# Display and save results +pprint(results_dict) +pprint(results_array) diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py new file mode 100644 index 0000000..b2ec295 --- /dev/null +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -0,0 +1,162 @@ +from watertap.core.solvers import get_solver +from parameter_sweep import LinearSample, get_sweep_params_from_yaml +from wrd.components.ro_train import * +from pyomo.environ import value, solve, ConcreteModel, TransformationFactory, units as pyunits +from pyomo.network import Arc +from srp.utils import touch_flow_and_conc +from idaes.models.unit_models import ( + Feed, + Product, +) +from idaes.core import FlowsheetBlock +from watertap.property_models.NaCl_T_dep_prop_pack import NaClParameterBlock +from idaes.core.util.scaling import calculate_scaling_factors +from idaes.core.util.initialization import propagate_state +from idaes.core.util.model_statistics import degrees_of_freedom + +# Build flowsheet function +def build_flowsheet(op_limts=None): + m = ConcreteModel() + m.fs = FlowsheetBlock(dynamic=False) + m.fs.properties = NaClParameterBlock() + + m.fs.feed = Feed(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.feed) + + m.fs.ro_train = FlowsheetBlock(dynamic=False) + build_ro_train( + m.fs.ro_train, + num_stages=3, + prop_package=m.fs.properties, + file="wrd_inputs_8_19_21.yaml", + ) + + m.fs.product = Product(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.product) + m.fs.brine = Product(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.brine) + + # Arcs to connect the unit models + m.fs.feed_to_train = Arc( + source=m.fs.feed.outlet, + destination=m.fs.ro_train.feed.inlet, + ) + m.fs.train_to_product = Arc( + source=m.fs.ro_train.product.outlet, + destination=m.fs.product.inlet, + ) + m.fs.train_to_brine = Arc( + source=m.fs.ro_train.disposal.outlet, + destination=m.fs.brine.inlet, + ) + + TransformationFactory("network.expand_arcs").apply_to(m) + + m.fs.properties.set_default_scaling( + "flow_mass_phase_comp", 1e-1, index=("Liq", "H2O") # changed from 1 + ) + m.fs.properties.set_default_scaling( + "flow_mass_phase_comp", 1e2, index=("Liq", "NaCl") + ) + + set_ro_train_scaling(m.fs.ro_train) + calculate_scaling_factors(m) + + # Set feed and operational conditions + m.fs.feed.properties.calculate_state( + var_args={ + ("flow_vol_phase", ("Liq")): 2650 * pyunits.gallons / pyunits.minute, + ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, + ("pressure", None): 35.4 * pyunits.psi, + ("temperature", None): 298.15 * pyunits.K, + }, + hold_state=True, + ) + set_ro_train_op_conditions(m.fs.ro_train) + # Set limits on each stage recovery and flowrate + for i in m.fs.ro_train.stages: + m.fs.ro_train.stage[i].recovery_vol_phase[0, "Liq"].setlb(op_limts[f"Stage {i}"]["RR_min"]) + m.fs.ro_train.stage[i].recovery_vol_phase[0, "Liq"].setub(op_limts[f"Stage {i}"]["RR_max"]) + m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setlb( + op_limts[f"Stage {i}"]["Qin_min"] + ) + m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setub( + op_limts[f"Stage {i}"]["Qin_max"] + ) + # Initialize system + assert degrees_of_freedom(m) == 0 + m.fs.feed.initialize() + propagate_state(m.fs.feed_to_train) + initialize_ro_train(m.fs.ro_train) + propagate_state(m.fs.train_to_product) + m.fs.product.initialize() + propagate_state(m.fs.train_to_brine) + m.fs.brine.initialize() + + +# Build sweep parameters function +def build_sweep_params( + m, + num_samples=10, + var_lims=None, + scenario=None, +): + sweep_params = {} + if scenario == "default": + sweep_params["Recovery"] = LinearSample( + m.fs.ro_train.recovery_vol, + var_lims["RR_lb"], + var_lims["RR_ub"], + num_samples, + ) + + sweep_params["Feed Flow"] = LinearSample( + m.fs.ro_train.feed.properties_in[0].flow_vol_phase["Liq"], + var_lims["Qin_lb"], + var_lims["Qin_ub"], + num_samples, + ) + else: + raise KeyError( + f"Scenario {scenario} not recognized. Please choose from: 'default'" + ) + return sweep_params + + +# Optimizaiton function +def optimize(m, solver=None, check_termination=True): + # --solve--- + return solve(m, solver=solver, check_termination=check_termination) + + +def build_outputs(m): + outputs = {} + # RR and Flows + outputs["Stage1 RR"] = m.fs.ro_train.stage[1].recovery_vol_phase[0, "Liq"] + outputs["Stage2 RR"] = m.fs.ro_train.stage[2].recovery_vol_phase[0, "Liq"] + outputs["Stage3 RR"] = m.fs.ro_train.stage[3].recovery_vol_phase[0, "Liq"] + outputs["Stage1 Qin"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] # This is an input + outputs["Stage2 Qin"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] + outputs["Stage3 Qin"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] + # Pressures + outputs["Stage1 Pin"] = m.fs.ro_train.stage[1].pump.unit.control_volume.properties_in[0].pressure + outputs["Stage2 Pin"] = m.fs.ro_train.stage[2].pump.unit.control_volume.properties_in[0].pressure + outputs["Stage3 Pin"] = m.fs.ro_train.stage[3].pump.unit.control_volume.properties_in[0].pressure + outputs["Stage1 Pout"] = m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure + outputs["Stage2 Pout"] = m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure + outputs["Stage3 Pout"] = m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure + # Powers + outputs["Total Power"] = m.fs.ro_train.total_pump_power + outputs["Stage1 Power"] = m.fs.ro_train.stage[1].pump.unit.work_mechanical[0] + outputs["Stage2 Power"] = m.fs.ro_train.stage[2].pump.unit.work_mechanical[0] + outputs["Stage3 Power"] = m.fs.ro_train.stage[3].pump.unit.work_mechanical[0] + # Other + outputs["Stage1 Peak Flux"] = m.fs.ro_train.stage[1].unit.first_elem_prod + outputs["Stage2 Peak Flux"] = m.fs.ro_train.stage[2].unit.first_elem_prod + outputs["Stage3 Peak Flux"] = m.fs.ro_train.stage[3].unit.first_elem_prod + outputs["Stage1 Perm. Conc."] = m.fs.ro_train.stage[1].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage2 Perm. Conc."] = m.fs.ro_train.stage[2].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage3 Perm. Conc."] = m.fs.ro_train.stage[3].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + + return outputs + From bd312fea90b13a76b1a7161b6041cdc98a1a28eb Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Thu, 7 May 2026 14:07:20 -0600 Subject: [PATCH 02/12] Working param sweep function. Issues with finding solutions remain Co-authored-by: Copilot --- ps_demo.h5 | Bin 0 -> 66448 bytes src/wrd/components/ro_stage.py | 12 +- .../surrogate_models/energy_param_sweep.py | 93 +++--- src/wrd/surrogate_models/param_sweep_fxs.py | 274 +++++++++++++++--- 4 files changed, 291 insertions(+), 88 deletions(-) create mode 100644 ps_demo.h5 diff --git a/ps_demo.h5 b/ps_demo.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f5ed010cca86be4a17221c44626c974de4cccc7e GIT binary patch literal 66448 zcmeHQ4U`+#Ri0hPR80w8_YXCsc5ejJ+X+!la{do?L z#cc!iB9f_o95Ya>X*$ZKLC6ef>OV~jWBCqjpX(htw12-QHK~0{@ic99JLE!C&`)~` zf%yKtV`{(&9CZxS3i=s}TK-fzolE9Yv#II4D$5q;a)r6Pmd{R|Oegb&iHUSRf4ne7 z`sBBQ3Rr6AzwvFLm_fg6<-cps2mQYPGJtzTH z2d1*8uz>tEN(wE~!*99q`T=cQBmU}_!3orkxCZ29EEm|`{If>AC6rg{(OfPSs3&k9 zP~go08Pc~#90F@iC3RJ-N{+BMH%+}tipRsG=L zV7-A5wzq9SzXX~RkTm}4ja)Zmz^}Gz#K+1+^lgkIf7D-UqkzS zI;IO};;d*v;6fBKooH%2J^%rg;L@}DD=l3n0snx>pXe+87PG6g%yiV}bAtLk`Y zWaQjEZ#Z|)=SH{;XKHxA_4MiQYdT-KrlJMZ9{IAS)lS2C8|jmgTXuZ#{;!YR`vG-4 zK63UWxoa;z`}L7#`xM1d{z2`jzTntshvdz)r$SP5dvtBB?EA!XPo8`IH&@ZVM;mrF z+owWrb9-5_uxzSC(mXc7`g1>JLLZ#8`<^Ak;>Sk z4~#Uor)+I*?+2s|huOY^LpPLec=Xf>cfWiUMNp)Zja`q)p+-v z`_{h0U$|s%y}!}BM^$>~*}L{CAEWW@koh+@$uE+5IL!7XA6tyx_=~S~Z12VL1}TBQfkg(yl_fXgKkV4v53%-eNtdN&`@SP?zW=&UU9wl{(0DMc zSn5~zf9S4v-FNX`*q?bCw`ra}t$du$f2GX-c$56YG7pEj|M#7H;-jY@`TVF;dqSSv z+}^9OHLLNwuJX>@x4!$ZV|$mg_I|{ny-QDh_WJ2-heviw9U9-O9rXY3+pqg>@n3fu z^ncVr|KWcsJbT~#6$bq)9Q42U;cMT0dGW51hKkHA+&R2g#YD32H8Ou=lN^zGIL!F( zym#AMx4-{Aj_qA3Pi}7SDr(NcpC0-9BX>-`y5iX0kFoX?w(=N&q&NSXc_plB1j;tK zZ>sV`vKVSc>pwBQ6^(0NkS3#onRD#_z*moE!6Ht9Vp=iih=c7JgsfYJaLY440ipjjncvzHx0s zz;1skxL*x5<_B0PqE@^h)%(?_qqRa!n= zko%Yh!?7RP_fFLpZbRDkL-ESKpWU14=lL)k+kR+oz`mb7o9c(Qp$H$kF0@ym?$6cH zd|exOxwt@dU3fpVhhX22#LGoLYEMBOydPo}_Wek_T=b*%8q`7lKb8WS_8ioGzB(*% z%N3?`;As=tnYmf%%+jF?)9EH>PfpH&zvpJ&1L6OGTut3P3F{NAf>AIR@6ap;>7J&$?YQIDs&FwYfhpk_n%FdpsUlmQ%&$jR9RakG|kJI(o=;!hl{m|ZweLqh4Z}dZZ zHn`VdjSHM-})gvS>8ReMD0;QbPQ_Wd^DxP^Y9S52Fzg^UXNX&-?;0(}Jf z2=o!?00QRyOkmpWf3Kv9w}gU?LT9qKB7d)BsLpQfZKC_k)m`>FswPU+yD4Lx3M^i4 zoM5d-`wseRt?RumHTxAkOg!8_R|+8>G&9K^ zg5e+T@d*184|ra5k?rSlsxi2(RlL0AyCE}=a`^3#(NWg^5;7H%`>C%HX!SfX`jap` z9u<8(=)UorMu48zCGd!A@Z$dZ1=jsh3c^6+dC4 z;Bm3pufSrOPg}n)i3gg8yZ;=?SfKH6&%+bGkR^SylM>nhph51ud3ku7Bm!0btZc&a$XfZX|gHtNKy#7#B|SS&Cd8gtg8I8kE$;e6JGtKIB6;hsmV1)4{=$74Ovc(~^gHJ|c` zPJQk&^g@{RjYx$-pm^be!4`V5`@C1?Ff^v$3~4J~HS{x}NAYqCru0woF#>kHs)YVS zL-Q}M3gi41G!#s`n^);anYm1)Xq8B?3MLY-n*Ui=!9;;_=B=!PiH$h%)2yOP#Ln@m z82V8I0UU9+uM?YFH{J89(Lm$jo>#?v$|E-CAMWu;_!JN8{i>B)V7jmV9HgyyRc0LY zc(j1h{@W?&m>|;-x3Su-~a?2-xwe1o{sd)_z`P?Z3<*;|o6w_KZXwug9N`Gm6`@xbb|v!1}}%9OKS2&=~@o%Ot`HTxA)_jHN})_jRaD}J|>hsZ{8(5pDt@7Egy?D$ix{w;JHHnpGM z@p;-Qz7#@gAvOk6&viFn3ePihnMizTZH`qik@!;R6susOK)F_66-=Z!vB>;`sd*-L zjxR+JazcQH*sISYqk+c5Jzt6;9+;4OXutTX(jAnIRhDbzQUh3uA$!OgGRj!%KBeGc^vhM z_#Pv*$KPuVquv<)Km_UW-w}#oh5o3q-({4~{0o#Xpq_Zfs24{$^WRXeL!u>co>ISj z-lAH|#LOdLWbOa{uoA{e!EB-tv0{%z)AP@FIU7Q&V7bLGqS#FJozCqEtggJnSucdu z9qg?tjlxMJ_@|00;9p#~KLis!-TJ18Up55+gXq1>zNNY>v>gc_A9XX{CP_z(Cf7O=fSx^ zO~4{Khvc0UBT(8nNc#j6(o z2=%)pF80m1un2HoC9wMl`VUz{yy|#iYAQLCnoeT{tyeKp++=EA|2oC1)^L6cW|_`p zZ$;Rz8q|m{RsY!89^y9(>^eE075rMWU$twU2)zi&n6Qjp`Tze4U76Ph%f9c1i2RRQ6PQR@{~?%)l2u7IHbGJTp0$ zm#5mTCp62<^SM*&L>T9{Fb=58zfUt-X67=HaMV7*Dwr5WS$vXJFj1g9^k=Msi4-SF z%s-f#XQJ7!tk((m_nR^FBSL_N*zN1Y=I*cD<1rd&Jlx-J#u1Ok%tQwXhJU!nBjHm# zta%mx+)pcBmG~>T{5)Dv)aa+dM!=3&mGE<8H2QY)DtbSH=tE`+dZPPz{(P>6hOB%%`30p;d6{ubuUXpRRn$Sx;c~@`|$_#oPEp&U#+en*9na zCja01`@(vl`Ivitx)^9Y-1D)bPx;v9?qA&FQSvDs*8G&O*RA;J^1~1TDPDRN5BvRk zgMb}BjU(S9tJ=*^&Ff#McvTtax1gb5+TFY=@^{Q!CK9izRagZRiC2Zcz$%z1P!9bq zt6(C{np%`SYr3pm~IQUbPx%Jlyk$HJ|c`PVuUmPw}wkRpVcTkhbt8 zNL%r$&?BHn@zS$^*zedA1URn}XvGrx4;e+g%I-NS?X!@6tJJ*yb&6MoUJSMfW|Gci zZ$&n6Qjp`TzcI!mt%f>GKyH3P>xlYVijrenk=BxN;Uenuh=hlftpw!Y4BIC<-V(Dvyymdu0l=rautHl`8H_Cfhz0}VZ;D__DeWNV(ss2cIE;S`Z`RRuG z2yi@&g2wr%P?y#D&9dw-ojM^7Ocmx0xa_tmm*-pRt9E9mhsD0^%)~IXMEzTqt9F<^ zJ@<-Gh79Vb1_aFO5$x==|2@B=k9f|;_t2J~G{9vNX!lP44^x$)fSyN}&KZhLg20mE znyJcAKr z*;|o+eq!i5&h`+mT3vV6BVMI_+gVRw_4rtH0nSVH+b>V8wegzhvKd%bC1V%v! z(3pCaR}BRk5BIz(jCjz@43>Ym$0OoXJgj*Y|J}S+ylTB>9WBT!`f0Ecu;W!a{_Y}; z-oLymhVxs{P%!OoUX}SjW-b#cddI%UDws&TD)GOpf{6m<`2Vm9CK9VyW&Xj`JQF*| zs}h0c5$-=fF&=0<-1CTxPkBVA_N(T7iib6?T6z{j+DiScSxsxjtKx%jCr9zpvw+y| z*b@XeuM%j*D*6u@mCsI{Oegb&iHUSRFF!;<<+KkFqk>JQ=Jl`DepLkC10U4t>5z0- z^4tS^4<6nx`#o~#W|h<{wrin!{oo)tcnIGh-!`D*e7~r!y76azBkMs9_NxY@)o{cH M2w4w|@o|^`4+9ygK>z>% literal 0 HcmV?d00001 diff --git a/src/wrd/components/ro_stage.py b/src/wrd/components/ro_stage.py index 1a06b1b..d485fc2 100644 --- a/src/wrd/components/ro_stage.py +++ b/src/wrd/components/ro_stage.py @@ -159,10 +159,10 @@ def initialize_system(m): def initialize_ro_stage(blk): - blk.feed.initialize() propagate_state(blk.feed_to_pump) + touch_flow_and_conc(blk.pump.unit) initialize_pump(blk.pump) propagate_state(blk.pump_to_ro) @@ -294,12 +294,12 @@ def run_march_stages(): # run_august_stages() # run_march_stages() m = main( - Qin=2800, # gpm? - Cin=0.528, + Qin=396*.29/.25, # gpm? + Cin=2.58, Tin=295, - Pin=35.4 * pyunits.psi, - stage_num=1, - file="wrd_inputs_2800_gpm.yaml", + Pin= 100 * pyunits.psi, + stage_num=3, + file="wrd_inputs_8_19_21.yaml", ) m.fs.ro_stage.ro.unit.recovery_vol_phase[0, "Liq"].fix(0.5) diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 124a01b..808e217 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -8,6 +8,7 @@ build_flowsheet, build_sweep_params, build_outputs, + initialize_model, ) @@ -26,7 +27,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "build_outputs_kwargs": {}, "optimize_function": optimize, # Optimize flow sheet function "optimize_kwargs": {"solver": solver, "check_termination": False}, - "initialize_function": None, + "initialize_function": initialize_model, "initialize_kwargs": {}, "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available "number_of_subprocesses": num_procs, @@ -50,50 +51,50 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): ps = ParameterSweep(**kwargs_dict) return ps, kwargs_dict +if __name__ == "__main__": + num_samples = 2 + num_procs = 2 + op_limts = { + "Stage 1": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 420 / 3600, + "Qin_max": 635 / 3600, + }, + "Stage 2": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 200 / 3600, + "Qin_max": 251 / 3600, + }, + "Stage 3": { + "RR_min": 0.40, + "RR_max": 0.55, + "Qin_min": 75 / 3600, + "Qin_max": 126 / 3600, + }, + } + var_lims = { + "RR_lb": 0.88, + "RR_ub": 0.93, + "Qin_lb": 420 / 3600, # m3/s + "Qin_ub": 635 / 3600, # m3/s + } + ps, kwargs_dict = create_parameter_sweep_object( + num_samples, num_procs, op_limts, var_lims + ) -num_samples = 4 -num_procs = 4 -op_limts = { - "Stage 1": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 420 / 3600, - "Qin_max": 635 / 3600, - }, - "Stage 2": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 200 / 3600, - "Qin_max": 251 / 3600, - }, - "Stage 3": { - "RR_min": 0.40, - "RR_max": 0.52, - "Qin_min": 75 / 3600, - "Qin_max": 126 / 3600, - }, -} -var_lims = { - "RR_lb": 0.88, - "RR_ub": 0.93, - "Qin_lb": 420 / 3600, # m3/s - "Qin_ub": 635 / 3600, # m3/s -} -ps, kwargs_dict = create_parameter_sweep_object( - num_samples, num_procs, op_limts, var_lims -) - -results_array, results_dict = ps.parameter_sweep( - kwargs_dict["build_model"], - kwargs_dict["build_sweep_params"], - build_outputs=kwargs_dict["build_outputs"], - build_outputs_kwargs=kwargs_dict["build_outputs_kwargs"], - num_samples=num_samples, - seed=None, - build_model_kwargs=kwargs_dict["build_model_kwargs"], - build_sweep_params_kwargs=kwargs_dict["build_sweep_params_kwargs"], -) + results_array, results_dict = ps.parameter_sweep( + kwargs_dict["build_model"], + kwargs_dict["build_sweep_params"], + build_outputs=kwargs_dict["build_outputs"], + build_outputs_kwargs=kwargs_dict["build_outputs_kwargs"], + num_samples=num_samples, + seed=None, + build_model_kwargs=kwargs_dict["build_model_kwargs"], + build_sweep_params_kwargs=kwargs_dict["build_sweep_params_kwargs"], + ) -# Display and save results -pprint(results_dict) -pprint(results_array) + # Display and save results + pprint(results_dict) + pprint(results_array) diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index b2ec295..4aa11bf 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -1,7 +1,9 @@ from watertap.core.solvers import get_solver from parameter_sweep import LinearSample, get_sweep_params_from_yaml +from wrd.components.ro_stage import initialize_ro_stage from wrd.components.ro_train import * -from pyomo.environ import value, solve, ConcreteModel, TransformationFactory, units as pyunits +from models import HeadLoss +from pyomo.environ import assert_optimal_termination, ConcreteModel, TransformationFactory, units as pyunits, Constraint, value, Objective, minimize from pyomo.network import Arc from srp.utils import touch_flow_and_conc from idaes.models.unit_models import ( @@ -13,9 +15,72 @@ from idaes.core.util.scaling import calculate_scaling_factors from idaes.core.util.initialization import propagate_state from idaes.core.util.model_statistics import degrees_of_freedom +from wrd.utilities import * +from idaes.core.util.model_diagnostics import DiagnosticsToolbox + +# Debugging +def print_arcs_to_port(model, port, port_name=""): + """Print all arcs connected to a given port (as source or destination)""" + from pyomo.network import Arc + + print(f"\n{'='*60}") + print(f"Arcs connected to {port_name or port}:") + print(f"{'='*60}") + + found = False + for component in model.component_data_objects(Arc, descend_into=True): + name = component.getname(fully_qualified=True) + if component.destination is port: + print(f" ← {name}: {component.source} → {port_name or port}") + found = True + elif component.source is port: + print(f" → {name}: {port_name or port} → {component.destination}") + found = True + + if not found: + print(f" (No arcs found)") + print() + + +def report_ports_with_multiple_arcs(model): + """Report ports with more than one incoming or outgoing Arc.""" + from collections import defaultdict + from pyomo.network import Arc + + incoming = defaultdict(list) + outgoing = defaultdict(list) + + for arc in model.component_data_objects(Arc, descend_into=True): + arc_name = arc.getname(fully_qualified=True) + outgoing[id(arc.source)].append((arc.source, arc_name)) + incoming[id(arc.destination)].append((arc.destination, arc_name)) + + found_issue = False + print(f"\n{'='*60}") + print("Port arc cardinality check") + print(f"{'='*60}") + + for entries in incoming.values(): + if len(entries) > 1: + port = entries[0][0] + arcs = [name for _, name in entries] + print(f"IN > 1 : {port} <- {arcs}") + found_issue = True + + for entries in outgoing.values(): + if len(entries) > 1: + port = entries[0][0] + arcs = [name for _, name in entries] + print(f"OUT > 1 : {port} -> {arcs}") + found_issue = True + + if not found_issue: + print("No ports with multiple incoming/outgoing arcs found.") + print() + return found_issue # Build flowsheet function -def build_flowsheet(op_limts=None): +def build_flowsheet(op_limts=None,scenario=None): m = ConcreteModel() m.fs = FlowsheetBlock(dynamic=False) m.fs.properties = NaClParameterBlock() @@ -49,7 +114,30 @@ def build_flowsheet(op_limts=None): source=m.fs.ro_train.disposal.outlet, destination=m.fs.brine.inlet, ) + + # Add the pressure drop between PRO and TSRO + m.fs.ro_train.tsro_header = HeadLoss(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.ro_train.tsro_header) + m.fs.ro_train.tsro_header.control_volume.deltaP[0].fix( + get_config_value(m.fs.ro_train.config_data, "tsro_header_loss", "headers") + ) + + # Undo connection between the second and third stage to add in the head loss unit + # build_ro_train already expands arcs internally, so remove the expanded block too. + m.fs.ro_train.del_component('stage_2_to_stage_3') + if hasattr(m.fs.ro_train, "stage_2_to_stage_3_expanded"): + m.fs.ro_train.del_component("stage_2_to_stage_3_expanded") + m.fs.ro_train.stage_2_to_tsro_header = Arc( + source=m.fs.ro_train.stage[2].disposal.outlet, + destination=m.fs.ro_train.tsro_header.inlet, + ) + m.fs.ro_train.tsro_header_to_stage_3 = Arc( + source=m.fs.ro_train.tsro_header.outlet, + destination=m.fs.ro_train.stage[3].feed.inlet, + ) + # report_ports_with_multiple_arcs(m) + TransformationFactory("network.expand_arcs").apply_to(m) m.fs.properties.set_default_scaling( @@ -75,24 +163,16 @@ def build_flowsheet(op_limts=None): set_ro_train_op_conditions(m.fs.ro_train) # Set limits on each stage recovery and flowrate for i in m.fs.ro_train.stages: - m.fs.ro_train.stage[i].recovery_vol_phase[0, "Liq"].setlb(op_limts[f"Stage {i}"]["RR_min"]) - m.fs.ro_train.stage[i].recovery_vol_phase[0, "Liq"].setub(op_limts[f"Stage {i}"]["RR_max"]) + m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setlb(op_limts[f"Stage {i}"]["RR_min"]) + m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setub(op_limts[f"Stage {i}"]["RR_max"]) m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setlb( op_limts[f"Stage {i}"]["Qin_min"] ) m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setub( op_limts[f"Stage {i}"]["Qin_max"] ) - # Initialize system - assert degrees_of_freedom(m) == 0 - m.fs.feed.initialize() - propagate_state(m.fs.feed_to_train) - initialize_ro_train(m.fs.ro_train) - propagate_state(m.fs.train_to_product) - m.fs.product.initialize() - propagate_state(m.fs.train_to_brine) - m.fs.brine.initialize() - + print(degrees_of_freedom(m)) # Should be zero. + return m # Build sweep parameters function def build_sweep_params( @@ -111,7 +191,7 @@ def build_sweep_params( ) sweep_params["Feed Flow"] = LinearSample( - m.fs.ro_train.feed.properties_in[0].flow_vol_phase["Liq"], + m.fs.ro_train.feed.properties[0].flow_vol_phase["Liq"], var_lims["Qin_lb"], var_lims["Qin_ub"], num_samples, @@ -123,40 +203,162 @@ def build_sweep_params( return sweep_params +def initialize_model(m): + # Initialize system + # Changing the defaults for the third stage + m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.fix(149 * pyunits.psi) + assert degrees_of_freedom(m) == 0 + m.fs.feed.initialize() + propagate_state(m.fs.feed_to_train) + # Initialize train, including the tsro header + blk = m.fs.ro_train + a = blk.find_component("feed_to_stage_1") + propagate_state(a) + initialize_ro_stage(blk.stage[1]) + a = blk.find_component("stage_1_to_stage_2") + propagate_state(a) + initialize_ro_stage(blk.stage[2]) + a = blk.find_component("stage_2_to_tsro_header") + propagate_state(a) + blk.tsro_header.initialize() + a = blk.find_component("tsro_header_to_stage_3") + propagate_state(a) + initialize_ro_stage(blk.stage[3]) + a = blk.find_component("stage_3_to_product") + propagate_state(a) + a = blk.find_component("stage_3_to_brine") + propagate_state(a) + a = blk.find_component("stage_3_to_product") + propagate_state(a) + blk.mixer.initialize() + propagate_state(blk.mixer_to_product) + blk.product.initialize() + print(blk.stage[3].ro.unit.recovery_vol_phase[0, "Liq"]()) + print(blk.stage[3].feed.properties[0].flow_vol_phase["Liq"]()) + print(blk.stage[2].pump.unit.control_volume.properties_out[0].pressure()) + print(blk.stage[3].pump.unit.control_volume.properties_out[0].pressure()) + + propagate_state(m.fs.train_to_product) + m.fs.product.initialize() + propagate_state(m.fs.train_to_brine) + m.fs.brine.initialize() + + assert degrees_of_freedom(m) == 0 + # --solve--- + solver = get_solver() + results = solver.solve(m, tee = True) + # assert_optimal_termination(results) + return results + # Optimizaiton function def optimize(m, solver=None, check_termination=True): + print(f"Degrees of freedom start of optimize: {degrees_of_freedom(m)}") + # Fix the mass fraction and unfix the flow mass so that the flow volume can be fixed by param sweep + m.fs.feed.properties[0].mass_frac_phase_comp["Liq", "NaCl"].fix() + m.fs.feed.properties[0].flow_mass_phase_comp['Liq','H2O'].unfix() + m.fs.feed.properties[0].flow_mass_phase_comp['Liq','NaCl'].unfix() + # Pump outlet pressures unfixed + m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.unfix() + m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.unfix() + m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.unfix() + # But to make sure there are 0 DOF Assume S1 and S2 have same recovery and + m.fs.ro_train.eq_recovery = Constraint( + expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) + + m.fs.obj = Objective(expr= m.fs.ro_train.total_pump_power, sense=minimize) # Dummy objective to trigger solve + + print(f"Degrees of freedom right before solve: {degrees_of_freedom(m)}") # Should be 0 + # assert degrees_of_freedom(m) == 0 # --solve--- - return solve(m, solver=solver, check_termination=check_termination) + solver = get_solver() + results = solver.solve(m, tee = True) + # assert_optimal_termination(results) + return results def build_outputs(m): + def _pump_unit(stage_blk): + # Some workflows expose the pump model directly, others nest it under stage.pump.unit + return stage_blk.pump.unit if hasattr(stage_blk.pump, "unit") else stage_blk.pump + outputs = {} # RR and Flows - outputs["Stage1 RR"] = m.fs.ro_train.stage[1].recovery_vol_phase[0, "Liq"] - outputs["Stage2 RR"] = m.fs.ro_train.stage[2].recovery_vol_phase[0, "Liq"] - outputs["Stage3 RR"] = m.fs.ro_train.stage[3].recovery_vol_phase[0, "Liq"] - outputs["Stage1 Qin"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] # This is an input + outputs["Stage1 RR"] = m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] + outputs["Stage2 RR"] = m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"] + outputs["Stage3 RR"] = m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0, "Liq"] + outputs["Stage1 Qin"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] # This is an input outputs["Stage2 Qin"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] outputs["Stage3 Qin"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] + + pump1 = _pump_unit(m.fs.ro_train.stage[1]) + pump2 = _pump_unit(m.fs.ro_train.stage[2]) + pump3 = _pump_unit(m.fs.ro_train.stage[3]) + # Pressures - outputs["Stage1 Pin"] = m.fs.ro_train.stage[1].pump.unit.control_volume.properties_in[0].pressure - outputs["Stage2 Pin"] = m.fs.ro_train.stage[2].pump.unit.control_volume.properties_in[0].pressure - outputs["Stage3 Pin"] = m.fs.ro_train.stage[3].pump.unit.control_volume.properties_in[0].pressure - outputs["Stage1 Pout"] = m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure - outputs["Stage2 Pout"] = m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure - outputs["Stage3 Pout"] = m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure + outputs["Stage1 Pin"] = pump1.control_volume.properties_in[0].pressure + outputs["Stage2 Pin"] = pump2.control_volume.properties_in[0].pressure + outputs["Stage3 Pin"] = pump3.control_volume.properties_in[0].pressure + outputs["Stage1 Pout"] = pump1.control_volume.properties_out[0].pressure + outputs["Stage2 Pout"] = pump2.control_volume.properties_out[0].pressure + outputs["Stage3 Pout"] = pump3.control_volume.properties_out[0].pressure + # Powers outputs["Total Power"] = m.fs.ro_train.total_pump_power - outputs["Stage1 Power"] = m.fs.ro_train.stage[1].pump.unit.work_mechanical[0] - outputs["Stage2 Power"] = m.fs.ro_train.stage[2].pump.unit.work_mechanical[0] - outputs["Stage3 Power"] = m.fs.ro_train.stage[3].pump.unit.work_mechanical[0] + outputs["Stage1 Power"] = pump1.work_mechanical[0] + outputs["Stage2 Power"] = pump2.work_mechanical[0] + outputs["Stage3 Power"] = pump3.work_mechanical[0] + # Other - outputs["Stage1 Peak Flux"] = m.fs.ro_train.stage[1].unit.first_elem_prod - outputs["Stage2 Peak Flux"] = m.fs.ro_train.stage[2].unit.first_elem_prod - outputs["Stage3 Peak Flux"] = m.fs.ro_train.stage[3].unit.first_elem_prod - outputs["Stage1 Perm. Conc."] = m.fs.ro_train.stage[1].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage2 Perm. Conc."] = m.fs.ro_train.stage[2].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage3 Perm. Conc."] = m.fs.ro_train.stage[3].unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - + outputs["Stage1 Peak Flux"] = m.fs.ro_train.stage[1].ro.unit.first_elem_prod + outputs["Stage2 Peak Flux"] = m.fs.ro_train.stage[2].ro.unit.first_elem_prod + outputs["Stage3 Peak Flux"] = m.fs.ro_train.stage[3].ro.unit.first_elem_prod + outputs["Stage1 Perm. Conc."] = m.fs.ro_train.stage[1].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage2 Perm. Conc."] = m.fs.ro_train.stage[2].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage3 Perm. Conc."] = m.fs.ro_train.stage[3].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + return outputs +if __name__ == "__main__": + op_limts = { + "Stage 1": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 420 / 3600, + "Qin_max": 635 / 3600, + }, + "Stage 2": { + "RR_min": 0.55, + "RR_max": 0.62, + "Qin_min": 200 / 3600, + "Qin_max": 251 / 3600, + }, + "Stage 3": { + "RR_min": 0.40, + "RR_max": 0.55, + "Qin_min": 75 / 3600, + "Qin_max": 126 / 3600, + }, + } + m = build_flowsheet(op_limts=op_limts,scenario=None) + initialize_model(m) + # Dummy version of fixing value + print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 + # Param Sweep will fix these two variables + m.fs.ro_train.recovery_vol.fix(0.88) + m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) + + print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") + results = optimize(m) + + print(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].conc_mass_phase_comp["Liq", "NaCl"]()) + print(value(pyunits.convert(m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure, to_units=pyunits.psi))) + print(value(pyunits.convert(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_in[0].pressure, to_units=pyunits.psi))) + print(value(pyunits.convert(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure, to_units=pyunits.psi))) + + print(m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"]()) + print(m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"]()) + print(m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]()) + print(m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0, "Liq"]()) + + dt = DiagnosticsToolbox(m) + assert_optimal_termination(results) From 11f769603b0e2f7fc9a39fa8b713ec6a4e355acf Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Thu, 7 May 2026 23:40:32 -0600 Subject: [PATCH 03/12] Initial results from working version of param sweep. Unclear if recovery limits are justified. Co-authored-by: Copilot --- ps_demo.h5 | Bin 66448 -> 81888 bytes src/wrd/surrogate_models/param_sweep_fxs.py | 74 +++++---- .../surrogate_models/param_sweep_fxs_toy.py | 151 ++++++++++++++++++ sweep_results.csv | 37 +++++ sweep_results_limited_range.csv | 26 +++ 5 files changed, 255 insertions(+), 33 deletions(-) create mode 100644 src/wrd/surrogate_models/param_sweep_fxs_toy.py create mode 100644 sweep_results.csv create mode 100644 sweep_results_limited_range.csv diff --git a/ps_demo.h5 b/ps_demo.h5 index f5ed010cca86be4a17221c44626c974de4cccc7e..110f80c62ab6af434ee6d07667cbf83b1faf7c9a 100644 GIT binary patch literal 81888 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 axU2;8lK?00g>s)aOXA@FUOJ_Njs71?aP2<; delta 4474 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 diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index 4aa11bf..70f4067 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -122,11 +122,12 @@ def build_flowsheet(op_limts=None,scenario=None): get_config_value(m.fs.ro_train.config_data, "tsro_header_loss", "headers") ) - # Undo connection between the second and third stage to add in the head loss unit - # build_ro_train already expands arcs internally, so remove the expanded block too. - m.fs.ro_train.del_component('stage_2_to_stage_3') + # Undo connection between the second and third stage to add in the head loss unit. + # Deactivate (do not delete) to keep port arc bookkeeping consistent. + if hasattr(m.fs.ro_train, "stage_2_to_stage_3"): + m.fs.ro_train.stage_2_to_stage_3.deactivate() if hasattr(m.fs.ro_train, "stage_2_to_stage_3_expanded"): - m.fs.ro_train.del_component("stage_2_to_stage_3_expanded") + m.fs.ro_train.stage_2_to_stage_3_expanded.deactivate() m.fs.ro_train.stage_2_to_tsro_header = Arc( source=m.fs.ro_train.stage[2].disposal.outlet, destination=m.fs.ro_train.tsro_header.inlet, @@ -137,7 +138,7 @@ def build_flowsheet(op_limts=None,scenario=None): ) # report_ports_with_multiple_arcs(m) - + TransformationFactory("network.expand_arcs").apply_to(m) m.fs.properties.set_default_scaling( @@ -153,7 +154,7 @@ def build_flowsheet(op_limts=None,scenario=None): # Set feed and operational conditions m.fs.feed.properties.calculate_state( var_args={ - ("flow_vol_phase", ("Liq")): 2650 * pyunits.gallons / pyunits.minute, + ("flow_vol_phase", ("Liq")): 2500 * pyunits.gallons / pyunits.minute, ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, ("pressure", None): 35.4 * pyunits.psi, ("temperature", None): 298.15 * pyunits.K, @@ -191,7 +192,7 @@ def build_sweep_params( ) sweep_params["Feed Flow"] = LinearSample( - m.fs.ro_train.feed.properties[0].flow_vol_phase["Liq"], + m.fs.feed.properties[0].flow_vol_phase["Liq"], var_lims["Qin_lb"], var_lims["Qin_ub"], num_samples, @@ -204,9 +205,13 @@ def build_sweep_params( def initialize_model(m): + # Expanding arcs here instead + # Initialize system - # Changing the defaults for the third stage - m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.fix(149 * pyunits.psi) + # Changing the default pressure to have a more medium recovery + m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.fix(134 * pyunits.psi) + m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.fix(150 * pyunits.psi) + m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.fix(135 * pyunits.psi) # This value could be increased if another water perm value is used for S3 assert degrees_of_freedom(m) == 0 m.fs.feed.initialize() propagate_state(m.fs.feed_to_train) @@ -246,8 +251,8 @@ def initialize_model(m): assert degrees_of_freedom(m) == 0 # --solve--- solver = get_solver() - results = solver.solve(m, tee = True) - # assert_optimal_termination(results) + results = solver.solve(m) + assert_optimal_termination(results) return results # Optimizaiton function @@ -272,7 +277,10 @@ def optimize(m, solver=None, check_termination=True): # --solve--- solver = get_solver() results = solver.solve(m, tee = True) - # assert_optimal_termination(results) + if assert_optimal_termination(results): + print("-----FAILED TO OPTIMALLY SOLVE-----") + print(f"RR = {m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, 'Liq']()}%") + print(f"Qin = {m.fs.feed.properties[0].flow_vol_phase['Liq']()}") return results @@ -286,35 +294,35 @@ def _pump_unit(stage_blk): outputs["Stage1 RR"] = m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] outputs["Stage2 RR"] = m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"] outputs["Stage3 RR"] = m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0, "Liq"] - outputs["Stage1 Qin"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] # This is an input - outputs["Stage2 Qin"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] - outputs["Stage3 Qin"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] + outputs["Stage1 Qin (m3/s)"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] + outputs["Stage2 Qin (m3/s)"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] + outputs["Stage3 Qin (m3/s)"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] pump1 = _pump_unit(m.fs.ro_train.stage[1]) pump2 = _pump_unit(m.fs.ro_train.stage[2]) pump3 = _pump_unit(m.fs.ro_train.stage[3]) # Pressures - outputs["Stage1 Pin"] = pump1.control_volume.properties_in[0].pressure - outputs["Stage2 Pin"] = pump2.control_volume.properties_in[0].pressure - outputs["Stage3 Pin"] = pump3.control_volume.properties_in[0].pressure - outputs["Stage1 Pout"] = pump1.control_volume.properties_out[0].pressure - outputs["Stage2 Pout"] = pump2.control_volume.properties_out[0].pressure - outputs["Stage3 Pout"] = pump3.control_volume.properties_out[0].pressure + outputs["Stage1 Pin (Pa)"] = pump1.control_volume.properties_in[0].pressure + outputs["Stage2 Pin (Pa)"] = pump2.control_volume.properties_in[0].pressure + outputs["Stage3 Pin (Pa)"] = pump3.control_volume.properties_in[0].pressure + outputs["Stage1 Pout (Pa)"] = pump1.control_volume.properties_out[0].pressure + outputs["Stage2 Pout (Pa)"] = pump2.control_volume.properties_out[0].pressure + outputs["Stage3 Pout (Pa)"] = pump3.control_volume.properties_out[0].pressure # Powers - outputs["Total Power"] = m.fs.ro_train.total_pump_power - outputs["Stage1 Power"] = pump1.work_mechanical[0] - outputs["Stage2 Power"] = pump2.work_mechanical[0] - outputs["Stage3 Power"] = pump3.work_mechanical[0] + outputs["Total Power (W)"] = m.fs.ro_train.total_pump_power + outputs["Stage1 Power (W)"] = pump1.work_mechanical[0] + outputs["Stage2 Power (W)"] = pump2.work_mechanical[0] + outputs["Stage3 Power (W)"] = pump3.work_mechanical[0] # Other - outputs["Stage1 Peak Flux"] = m.fs.ro_train.stage[1].ro.unit.first_elem_prod - outputs["Stage2 Peak Flux"] = m.fs.ro_train.stage[2].ro.unit.first_elem_prod - outputs["Stage3 Peak Flux"] = m.fs.ro_train.stage[3].ro.unit.first_elem_prod - outputs["Stage1 Perm. Conc."] = m.fs.ro_train.stage[1].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage2 Perm. Conc."] = m.fs.ro_train.stage[2].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage3 Perm. Conc."] = m.fs.ro_train.stage[3].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage1 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[1].ro.unit.first_elem_prod + outputs["Stage2 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[2].ro.unit.first_elem_prod + outputs["Stage3 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[3].ro.unit.first_elem_prod + outputs["Stage1 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[1].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage2 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[2].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage3 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[3].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] return outputs @@ -323,7 +331,7 @@ def _pump_unit(stage_blk): "Stage 1": { "RR_min": 0.55, "RR_max": 0.62, - "Qin_min": 420 / 3600, + "Qin_min": 420 / 3600, #m/hr "Qin_max": 635 / 3600, }, "Stage 2": { @@ -344,7 +352,7 @@ def _pump_unit(stage_blk): # Dummy version of fixing value print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 # Param Sweep will fix these two variables - m.fs.ro_train.recovery_vol.fix(0.88) + m.fs.ro_train.recovery_vol.fix(0.9) m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") diff --git a/src/wrd/surrogate_models/param_sweep_fxs_toy.py b/src/wrd/surrogate_models/param_sweep_fxs_toy.py new file mode 100644 index 0000000..d442e67 --- /dev/null +++ b/src/wrd/surrogate_models/param_sweep_fxs_toy.py @@ -0,0 +1,151 @@ +from watertap.core.solvers import get_solver +from parameter_sweep import LinearSample, get_sweep_params_from_yaml +from wrd.components.detailed_pump import * +from models import HeadLoss +from pyomo.environ import assert_optimal_termination, ConcreteModel, TransformationFactory, units as pyunits, Constraint, value, Objective, minimize +from pyomo.network import Arc +from srp.utils import touch_flow_and_conc +from idaes.models.unit_models import ( + Feed, + Product, +) +from idaes.core import FlowsheetBlock +from watertap.property_models.NaCl_T_dep_prop_pack import NaClParameterBlock +from idaes.core.util.scaling import calculate_scaling_factors +from idaes.core.util.initialization import propagate_state +from idaes.core.util.model_statistics import degrees_of_freedom +from wrd.utilities import * +from idaes.core.util.model_diagnostics import DiagnosticsToolbox + + +# Build flowsheet function +def build_flowsheet(op_limts=None,scenario=None): + m = ConcreteModel() + m.fs = FlowsheetBlock(dynamic=False) + m.fs.properties = NaClParameterBlock() + + m.fs.feed = Feed(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.feed) + m.fs.pump = FlowsheetBlock(dynamic=False) + build_pump( + m.fs.pump, + stage_num=1, + file="wrd_inputs_8_19_21.yaml", + prop_package=m.fs.properties, + uf=False, + ) + + m.fs.product = Product(property_package=m.fs.properties) + touch_flow_and_conc(m.fs.product) + + # Arcs to connect the unit models + m.fs.feed_to_pump = Arc( + source=m.fs.feed.outlet, + destination=m.fs.pump.feed.inlet, + ) + m.fs.pump_to_product = Arc( + source=m.fs.pump.product.outlet, + destination=m.fs.product.inlet, + ) + + TransformationFactory("network.expand_arcs").apply_to(m) + + m.fs.properties.set_default_scaling( + "flow_mass_phase_comp", 1e-1, index=("Liq", "H2O") + ) + m.fs.properties.set_default_scaling( + "flow_mass_phase_comp", 1e2, index=("Liq", "NaCl") + ) + + add_pump_scaling(m.fs.pump) + calculate_scaling_factors(m) + + # Set feed and operational conditions + m.fs.feed.properties.calculate_state( + var_args={ + ("flow_vol_phase", ("Liq")): 2500 * pyunits.gallons / pyunits.minute, + ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, + ("pressure", None): 35.4 * pyunits.psi, + ("temperature", None): 298.15 * pyunits.K, + }, + hold_state=True, + ) + + set_pump_op_conditions(m.fs.pump) + print(degrees_of_freedom(m)) # Should be zero + + return m + +# Build sweep parameters function +def build_sweep_params( + m, + num_samples=10, + var_lims=None, + scenario=None, +): + sweep_params = {} + if scenario == "default": + sweep_params["Feed Flow"] = LinearSample( + m.fs.feed.properties[0].flow_vol_phase["Liq"], + 0, + .1, + num_samples, + ) + else: + raise KeyError( + f"Scenario {scenario} not recognized. Please choose from: 'default'" + ) + return sweep_params + + +def initialize_model(m): + # Initialize system + m.fs.feed.initialize() + propagate_state(m.fs.feed_to_pump) + initialize_pump(m.fs.pump) + propagate_state(m.fs.pump_to_product) + m.fs.product.initialize() + + assert degrees_of_freedom(m) == 0 + # --solve--- + solver = get_solver() + results = solver.solve(m) + assert_optimal_termination(results) + return results + +# Optimizaiton function +def optimize(m, solver=None, check_termination=True): + print(f"Degrees of freedom start of optimize: {degrees_of_freedom(m)}") + # Fix the mass fraction and unfix the flow mass so that the flow volume can be fixed by param sweep + m.fs.feed.properties[0].mass_frac_phase_comp["Liq", "NaCl"].fix() + m.fs.feed.properties[0].flow_mass_phase_comp['Liq','H2O'].unfix() + m.fs.feed.properties[0].flow_mass_phase_comp['Liq','NaCl'].unfix() + + print(f"Degrees of freedom right before solve: {degrees_of_freedom(m)}") # Should be 0 + assert degrees_of_freedom(m) == 0 + # --solve--- + solver = get_solver() + results = solver.solve(m, tee = True) + # assert_optimal_termination(results) + return results + + +def build_outputs(m): + outputs = {} + outputs["Stage1 Power"] = m.fs.pump.unit.work_mechanical[0] + return outputs + +if __name__ == "__main__": + m = build_flowsheet(scenario=None) + initialize_model(m) + # Dummy version of fixing value + print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 + # Param Sweep will fix these two variables + m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) + + print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") + results = optimize(m) + + dt = DiagnosticsToolbox(m) + assert_optimal_termination(results) + print(m.fs.pump.unit.work_mechanical[0]()) \ No newline at end of file diff --git a/sweep_results.csv b/sweep_results.csv new file mode 100644 index 0000000..969f7e4 --- /dev/null +++ b/sweep_results.csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.800000e-01,1.450000e-01,5.527861e-01,5.527861e-01,4.000000e-01,1.450000e-01,6.484603e-02,2.900008e-02,2.440744e+05,7.531606e+05,6.270341e+05,8.269345e+05,9.572929e+05,7.679861e+05,1.584304e+05,1.326000e+05,1.765517e+04,8.175240e+03,1.732421e-04,1.867937e-04,1.325181e-04,1.409002e-02,1.837273e-02,1.425684e-01 +8.800000e-01,1.512778e-01,5.527861e-01,5.527861e-01,4.000000e-01,1.512778e-01,6.765354e-02,3.025564e-02,2.440744e+05,7.786630e+05,6.557958e+05,8.524369e+05,9.860547e+05,7.842124e+05,1.702219e+05,1.436887e+05,1.876261e+04,7.770653e+03,1.801449e-04,1.942182e-04,1.374167e-04,1.354128e-02,1.766104e-02,1.372206e-01 +8.800000e-01,1.575556e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.800000e-01,1.638333e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.800000e-01,1.701111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.800000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.900000e-01,1.450000e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.450000e-01,6.208536e-02,2.658342e-02,2.440744e+05,7.749622e+05,6.306585e+05,8.487361e+05,9.609174e+05,7.599625e+05,1.605020e+05,1.382262e+05,1.540111e+04,6.874687e+03,1.791035e-04,1.865029e-04,1.244125e-04,1.397529e-02,1.984656e-02,1.685282e-01 +8.900000e-01,1.512778e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.512778e-01,6.477335e-02,2.773435e-02,2.440744e+05,8.013450e+05,6.591734e+05,8.751189e+05,9.894323e+05,7.750503e+05,1.724064e+05,1.496785e+05,1.630044e+04,6.427541e+03,1.862448e-04,1.938599e-04,1.289342e-04,1.343172e-02,1.907737e-02,1.622289e-01 +8.900000e-01,1.575556e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.575556e-01,6.746133e-02,2.888528e-02,2.440744e+05,8.277234e+05,6.876768e+05,9.014973e+05,1.017936e+06,7.900689e+05,1.848128e+05,1.616543e+05,1.724329e+04,5.915250e+03,1.933856e-04,2.012160e-04,1.334455e-04,1.293060e-02,1.836807e-02,1.563923e-01 +8.900000e-01,1.638333e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.900000e-01,1.701111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.900000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.000000e-01,1.450000e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.450000e-01,5.919608e-02,2.416677e-02,2.440744e+05,7.978947e+05,6.336828e+05,8.716686e+05,9.639417e+05,7.559333e+05,1.632732e+05,1.442445e+05,1.311987e+04,5.908797e+03,1.852688e-04,1.858729e-04,1.164548e-04,1.388706e-02,2.165930e-02,2.023717e-01 +9.000000e-01,1.512778e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.512778e-01,6.175898e-02,2.521307e-02,2.440744e+05,8.251995e+05,6.618502e+05,8.989734e+05,9.921090e+05,7.699223e+05,1.753458e+05,1.560859e+05,1.381028e+04,5.449662e+03,1.926601e-04,1.931361e-04,1.206083e-04,1.334768e-02,2.081894e-02,1.948446e-01 +9.000000e-01,1.575556e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.575556e-01,6.432187e-02,2.625937e-02,2.440744e+05,8.524999e+05,6.900057e+05,9.262738e+05,1.020265e+06,7.838285e+05,1.879193e+05,1.684575e+05,1.453441e+04,4.927453e+03,2.000507e-04,2.003982e-04,1.247486e-04,1.285045e-02,2.004411e-02,1.878657e-01 +9.000000e-01,1.638333e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.638333e-01,6.688477e-02,2.730567e-02,2.440744e+05,8.797964e+05,7.181507e+05,9.535703e+05,1.048410e+06,7.976612e+05,2.010076e+05,1.813728e+05,1.529264e+04,4.342177e+03,2.074408e-04,2.076595e-04,1.288773e-04,1.239060e-02,1.932741e-02,1.813777e-01 +9.000000e-01,1.701111e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.701111e-01,6.944766e-02,2.835197e-02,2.440744e+05,9.070892e+05,7.462860e+05,9.808631e+05,1.076545e+06,8.114285e+05,2.146246e+05,1.948455e+05,1.608526e+04,3.693837e+03,2.148304e-04,2.149200e-04,1.329957e-04,1.196404e-02,1.866252e-02,1.753309e-01 +9.000000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.100000e-01,1.450000e-01,5.962921e-01,5.962921e-01,4.477838e-01,1.450000e-01,5.853766e-02,2.363216e-02,2.440744e+05,8.031387e+05,6.342876e+05,8.769126e+05,9.645465e+05,8.081746e+05,1.664676e+05,1.456348e+05,1.261416e+04,8.218652e+03,1.866786e-04,1.856872e-04,1.297479e-04,1.387149e-02,2.211734e-02,2.000212e-01 +9.100000e-01,1.512778e-01,5.968959e-01,5.968959e-01,4.461283e-01,1.512778e-01,6.098071e-02,2.458162e-02,2.440744e+05,8.313794e+05,6.624288e+05,9.051533e+05,9.926876e+05,8.214336e+05,1.787662e+05,1.577635e+05,1.318557e+04,7.817192e+03,1.943220e-04,1.928966e-04,1.334913e-04,1.333105e-02,2.131874e-02,1.939875e-01 +9.100000e-01,1.575556e-01,5.975377e-01,5.975377e-01,4.443602e-01,1.575556e-01,6.341018e-02,2.552025e-02,2.440744e+05,8.597194e+05,6.905357e+05,9.334933e+05,1.020795e+06,8.343027e+05,1.915705e+05,1.704616e+05,1.377097e+04,7.337943e+03,2.019928e-04,2.000957e-04,1.371107e-04,1.283281e-02,2.058654e-02,1.885065e-01 +9.100000e-01,1.638333e-01,5.982136e-01,5.982136e-01,4.424893e-01,1.638333e-01,6.582602e-02,2.644805e-02,2.440744e+05,8.881591e+05,7.186064e+05,9.619330e+05,1.048865e+06,8.467896e+05,2.048938e+05,1.837443e+05,1.436916e+04,6.780391e+03,2.096910e-04,2.072843e-04,1.406085e-04,1.237201e-02,1.991295e-02,1.835142e-01 +9.100000e-01,1.701111e-01,5.989204e-01,5.989204e-01,4.405227e-01,1.701111e-01,6.822812e-02,2.736496e-02,2.440744e+05,9.166993e+05,7.466392e+05,9.904732e+05,1.076898e+06,8.588993e+05,2.187493e+05,1.976266e+05,1.497875e+04,6.143987e+03,2.174169e-04,2.144620e-04,1.439859e-04,1.194458e-02,1.929138e-02,1.789573e-01 +9.100000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.239715e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.511690e+05,2.331991e+05,2.142136e+05,1.477061e+04,4.214883e+03,2.270664e-04,2.212424e-04,1.395426e-04,1.153628e-02,1.917230e-02,1.865626e-01 +9.200000e-01,1.450000e-01,6.010544e-01,6.010544e-01,4.973518e-01,1.450000e-01,5.784712e-02,2.307790e-02,2.440744e+05,8.086461e+05,6.348962e+05,8.824200e+05,9.651551e+05,8.646059e+05,1.697932e+05,1.471005e+05,1.209027e+04,1.060243e+04,1.881593e-04,1.854772e-04,1.440293e-04,1.385698e-02,2.261763e-02,2.010971e-01 +9.200000e-01,1.512778e-01,6.016428e-01,6.016428e-01,4.958660e-01,1.512778e-01,6.026261e-02,2.400609e-02,2.440744e+05,8.370898e+05,6.629303e+05,9.108637e+05,9.931892e+05,8.792369e+05,1.823220e+05,1.593199e+05,1.261676e+04,1.038535e+04,1.958577e-04,1.926580e-04,1.481947e-04,1.331756e-02,2.180021e-02,1.948669e-01 +9.200000e-01,1.575556e-01,6.022715e-01,6.022715e-01,4.942709e-01,1.575556e-01,6.266436e-02,2.492345e-02,2.440744e+05,8.656342e+05,6.909295e+05,9.394081e+05,1.021188e+06,8.934785e+05,1.953626e+05,1.721108e+05,1.315532e+04,1.009644e+04,2.035839e-04,1.998282e-04,1.522337e-04,1.282027e-02,2.105108e-02,1.892007e-01 +9.200000e-01,1.638333e-01,6.029366e-01,6.029366e-01,4.925751e-01,1.638333e-01,6.505224e-02,2.582991e-02,2.440744e+05,8.942803e+05,7.188917e+05,9.680542e+05,1.049151e+06,9.073372e+05,2.089280e+05,1.854883e+05,1.370462e+04,9.735059e+03,2.113381e-04,2.069873e-04,1.561484e-04,1.236036e-02,2.036222e-02,1.840339e-01 +9.200000e-01,1.701111e-01,6.036353e-01,6.036353e-01,4.907847e-01,1.701111e-01,6.742606e-02,2.672536e-02,2.440744e+05,9.230296e+05,7.468149e+05,9.968035e+05,1.077074e+06,9.208165e+05,2.230314e+05,1.994678e+05,1.426307e+04,9.300512e+03,2.191206e-04,2.141350e-04,1.599397e-04,1.193376e-02,1.972688e-02,1.793123e-01 +9.200000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.879744e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,9.325777e+05,2.376863e+05,2.142136e+05,1.477061e+04,8.702057e+03,2.270664e-04,2.212424e-04,1.630656e-04,1.153628e-02,1.917230e-02,1.757268e-01 +9.300000e-01,1.450000e-01,6.062159e-01,6.062159e-01,5.485771e-01,1.450000e-01,5.709871e-02,2.248461e-02,2.440744e+05,8.146242e+05,6.355313e+05,8.883981e+05,9.657902e+05,9.267428e+05,1.733239e+05,1.486979e+05,1.153045e+04,1.309555e+04,1.897665e-04,1.852328e-04,1.596037e-04,1.384335e-02,2.318415e-02,2.062876e-01 +9.300000e-01,1.512778e-01,6.067686e-01,6.067686e-01,5.473074e-01,1.512778e-01,5.948719e-02,2.339228e-02,2.440744e+05,8.432650e+05,6.634423e+05,9.170389e+05,9.937012e+05,9.427696e+05,1.860893e+05,1.610099e+05,1.201129e+04,1.306821e+04,1.975184e-04,1.923823e-04,1.642079e-04,1.330499e-02,2.234329e-02,1.997019e-01 +9.300000e-01,1.575556e-01,6.073663e-01,6.073663e-01,5.459281e-01,1.575556e-01,6.186165e-02,2.428902e-02,2.440744e+05,8.720092e+05,6.913189e+05,9.457831e+05,1.021578e+06,9.584055e+05,1.993723e+05,1.738955e+05,1.250227e+04,1.297454e+04,2.052988e-04,1.995209e-04,1.686813e-04,1.280867e-02,2.157322e-02,1.937106e-01 +9.300000e-01,1.638333e-01,6.080050e-01,6.080050e-01,5.444471e-01,1.638333e-01,6.422186e-02,2.517470e-02,2.440744e+05,9.008582e+05,7.191586e+05,9.746321e+05,1.049417e+06,9.736557e+05,2.131858e+05,1.873701e+05,1.300189e+04,1.281378e+04,2.131080e-04,2.066481e-04,1.730260e-04,1.234968e-02,2.086564e-02,1.882460e-01 +9.300000e-01,1.701111e-01,6.086820e-01,6.086820e-01,5.428695e-01,1.701111e-01,6.656756e-02,2.604914e-02,2.440744e+05,9.298144e+05,7.469589e+05,1.003588e+06,1.077218e+06,9.885225e+05,2.275428e+05,2.014494e+05,1.350834e+04,1.258504e+04,2.209467e-04,2.137633e-04,1.772424e-04,1.192393e-02,2.021355e-02,1.832513e-01 +9.300000e-01,1.763889e-01,6.093952e-01,6.093952e-01,5.411988e-01,1.763889e-01,6.889838e-02,2.691210e-02,2.440744e+05,9.588805e+05,7.747177e+05,1.032654e+06,1.104977e+06,1.003005e+06,2.424563e+05,2.161493e+05,1.401956e+04,1.228739e+04,2.288154e-04,2.208658e-04,1.813303e-04,1.152796e-02,1.961101e-02,1.786787e-01 diff --git a/sweep_results_limited_range.csv b/sweep_results_limited_range.csv new file mode 100644 index 0000000..7235fbb --- /dev/null +++ b/sweep_results_limited_range.csv @@ -0,0 +1,26 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +9.000000e-01,1.666667e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.666667e-01,6.804147e-02,2.777789e-02,2.440744e+05,8.921148e+05,7.308501e+05,9.658887e+05,1.061109e+06,8.038824e+05,2.070870e+05,1.873835e+05,1.564610e+04,4.057371e+03,2.107760e-04,2.109365e-04,1.307372e-04,1.219418e-02,1.902126e-02,1.785967e-01 +9.000000e-01,1.690972e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.690972e-01,6.903375e-02,2.818299e-02,2.440744e+05,9.026815e+05,7.417426e+05,9.764554e+05,1.072001e+06,8.092091e+05,2.123890e+05,1.926312e+05,1.595491e+04,3.802816e+03,2.136370e-04,2.137474e-04,1.323312e-04,1.203083e-02,1.876663e-02,1.762795e-01 +9.000000e-01,1.715278e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.000000e-01,1.739583e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.000000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.075000e-01,1.666667e-01,5.973938e-01,5.973938e-01,4.293342e-01,1.666667e-01,6.710106e-02,2.701535e-02,2.440744e+05,8.995337e+05,7.312003e+05,9.733076e+05,1.061459e+06,8.376819e+05,2.100689e+05,1.895060e+05,1.480970e+04,5.753271e+03,2.127725e-04,2.105970e-04,1.383697e-04,1.217814e-02,1.952250e-02,1.818172e-01 +9.075000e-01,1.690972e-01,5.976692e-01,5.976692e-01,4.285526e-01,1.690972e-01,6.803304e-02,2.737184e-02,2.440744e+05,9.105689e+05,7.420615e+05,9.843428e+05,1.072320e+06,8.422178e+05,2.154396e+05,1.949054e+05,1.505125e+04,5.482923e+03,2.157597e-04,2.133781e-04,1.396311e-04,1.201437e-02,1.928583e-02,1.800873e-01 +9.075000e-01,1.715278e-01,5.979489e-01,5.979489e-01,4.277573e-01,1.715278e-01,6.896296e-02,2.772669e-02,2.440744e+05,9.216192e+05,7.529169e+05,9.953931e+05,1.083176e+06,8.466977e+05,2.208915e+05,2.003966e+05,1.529440e+04,5.200464e+03,2.187511e-04,2.161575e-04,1.408747e-04,1.185516e-02,1.905618e-02,1.784167e-01 +9.075000e-01,1.739583e-01,5.992017e-01,5.992017e-01,4.241742e-01,1.739583e-01,6.972222e-02,2.794460e-02,2.440744e+05,9.340125e+05,7.637945e+05,1.007786e+06,1.094053e+06,8.474053e+05,2.264271e+05,2.063704e+05,1.538380e+04,4.672941e+03,2.221041e-04,2.188669e-04,1.406394e-04,1.169799e-02,1.891897e-02,1.790253e-01 +9.075000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.079708e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.314979e+05,2.321149e+05,2.142136e+05,1.477061e+04,3.130633e+03,2.270664e-04,2.212424e-04,1.338689e-04,1.153628e-02,1.917230e-02,1.901969e-01 +9.150000e-01,1.666667e-01,6.008512e-01,6.008512e-01,4.664802e-01,1.666667e-01,6.652482e-02,2.655335e-02,2.440744e+05,9.040851e+05,7.313843e+05,9.778590e+05,1.061643e+06,8.822952e+05,2.131310e+05,1.908131e+05,1.430354e+04,8.014381e+03,2.139973e-04,2.103748e-04,1.498755e-04,1.216944e-02,1.984199e-02,1.812053e-01 +9.150000e-01,1.690972e-01,6.011256e-01,6.011256e-01,4.657460e-01,1.690972e-01,6.744858e-02,2.690357e-02,2.440744e+05,9.151812e+05,7.422148e+05,9.889551e+05,1.072474e+06,8.872268e+05,2.185735e+05,1.962406e+05,1.453024e+04,7.802677e+03,2.170010e-04,2.131474e-04,1.512560e-04,1.200591e-02,1.960163e-02,1.794372e-01 +9.150000e-01,1.715278e-01,6.014044e-01,6.014044e-01,4.649982e-01,1.715278e-01,6.837023e-02,2.725213e-02,2.440744e+05,9.262928e+05,7.530394e+05,1.000067e+06,1.083298e+06,8.921020e+05,2.240979e+05,2.017601e+05,1.475827e+04,7.579505e+03,2.200090e-04,2.159183e-04,1.526183e-04,1.184693e-02,1.936845e-02,1.777290e-01 +9.150000e-01,1.739583e-01,6.016877e-01,6.016877e-01,4.642370e-01,1.739583e-01,6.928977e-02,2.759903e-02,2.440744e+05,9.374199e+05,7.638579e+05,1.011194e+06,1.094117e+06,8.969209e+05,2.297049e+05,2.073726e+05,1.498751e+04,7.344822e+03,2.230213e-04,2.186874e-04,1.539625e-04,1.169232e-02,1.914214e-02,1.760784e-01 +9.150000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.559730e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.912746e+05,2.354097e+05,2.142136e+05,1.477061e+04,6.425468e+03,2.270664e-04,2.212424e-04,1.511242e-04,1.153628e-02,1.917230e-02,1.804546e-01 +9.225000e-01,1.666667e-01,6.044770e-01,6.044770e-01,5.045958e-01,1.666667e-01,6.592052e-02,2.607314e-02,2.440744e+05,9.088628e+05,7.315543e+05,9.826367e+05,1.061813e+06,9.295715e+05,2.162933e+05,1.921893e+05,1.377820e+04,1.032586e+04,2.152830e-04,2.101307e-04,1.619945e-04,1.216125e-02,2.018761e-02,1.825061e-01 +9.225000e-01,1.690972e-01,6.047478e-01,6.047478e-01,5.039166e-01,1.690972e-01,6.683606e-02,2.641715e-02,2.440744e+05,9.200196e+05,7.423517e+05,9.937935e+05,1.072611e+06,9.349027e+05,2.218085e+05,1.976454e+05,1.398986e+04,1.017330e+04,2.183032e-04,2.128943e-04,1.634961e-04,1.199796e-02,1.994304e-02,1.806805e-01 +9.225000e-01,1.715278e-01,6.050236e-01,6.050236e-01,5.032237e-01,1.715278e-01,6.774945e-02,2.675949e-02,2.440744e+05,9.311923e+05,7.531429e+05,1.004966e+06,1.083402e+06,9.401770e+05,2.274062e+05,2.031938e+05,1.420258e+04,1.000987e+04,2.213277e-04,2.156561e-04,1.649791e-04,1.183922e-02,1.970581e-02,1.789164e-01 +9.225000e-01,1.739583e-01,6.053041e-01,6.053041e-01,5.025172e-01,1.739583e-01,6.866066e-02,2.710013e-02,2.440744e+05,9.423809e+05,7.639279e+05,1.016155e+06,1.094187e+06,9.453944e+05,2.330872e+05,2.088354e+05,1.441624e+04,9.835530e+03,2.243567e-04,2.184161e-04,1.664435e-04,1.168483e-02,1.947562e-02,1.772114e-01 +9.225000e-01,1.763889e-01,6.055894e-01,6.055894e-01,5.017974e-01,1.763889e-01,6.956967e-02,2.743908e-02,2.440744e+05,9.535858e+05,7.747066e+05,1.027360e+06,1.104966e+06,9.505548e+05,2.388522e+05,2.145713e+05,1.463070e+04,9.650223e+03,2.273901e-04,2.211742e-04,1.678891e-04,1.153463e-02,1.925217e-02,1.755632e-01 +9.300000e-01,1.666667e-01,6.083060e-01,6.083060e-01,5.437468e-01,1.666667e-01,6.528236e-02,2.557076e-02,2.440744e+05,9.139135e+05,7.317106e+05,9.876874e+05,1.061970e+06,9.804129e+05,2.195974e+05,1.936487e+05,1.322973e+04,1.271901e+04,2.166421e-04,2.098609e-04,1.749448e-04,1.215363e-02,2.056484e-02,1.859366e-01 +9.300000e-01,1.690972e-01,6.085702e-01,6.085702e-01,5.431307e-01,1.690972e-01,6.618972e-02,2.590869e-02,2.440744e+05,9.251305e+05,7.424718e+05,9.989044e+05,1.072731e+06,9.861474e+05,2.251867e+05,1.991339e+05,1.342617e+04,1.262663e+04,2.196787e-04,2.126150e-04,1.765701e-04,1.199059e-02,2.031537e-02,1.840282e-01 +9.300000e-01,1.715278e-01,6.088398e-01,6.088398e-01,5.425006e-01,1.715278e-01,6.709486e-02,2.624489e-02,2.440744e+05,9.363638e+05,7.532268e+05,1.010138e+06,1.083486e+06,9.918243e+05,2.308591e+05,2.047118e+05,1.362337e+04,1.252393e+04,2.227197e-04,2.153672e-04,1.781762e-04,1.183209e-02,2.007344e-02,1.821841e-01 +9.300000e-01,1.739583e-01,6.091148e-01,6.091148e-01,5.418566e-01,1.739583e-01,6.799775e-02,2.657937e-02,2.440744e+05,9.476138e+05,7.639755e+05,1.021388e+06,1.094234e+06,9.974436e+05,2.366154e+05,2.103833e+05,1.382121e+04,1.241087e+04,2.257653e-04,2.181174e-04,1.797630e-04,1.167794e-02,1.983876e-02,1.804017e-01 +9.300000e-01,1.763889e-01,6.093952e-01,6.093952e-01,5.411988e-01,1.763889e-01,6.889838e-02,2.691210e-02,2.440744e+05,9.588805e+05,7.747177e+05,1.032654e+06,1.104977e+06,1.003005e+06,2.424563e+05,2.161493e+05,1.401956e+04,1.228739e+04,2.288154e-04,2.208658e-04,1.813303e-04,1.152796e-02,1.961101e-02,1.786787e-01 From 0d32366990e11c0b6c592fe80b296a2107cfee5d Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Thu, 7 May 2026 23:59:20 -0600 Subject: [PATCH 04/12] Added uf pump energy sweep --- ps_demo.h5 | Bin 81888 -> 15480 bytes .../energy_param_sweep_pump.py | 78 ++++++++++++++++++ ...eep_fxs_toy.py => param_sweep_fxs_pump.py} | 20 +++-- up_pump_sweep.csv | 11 +++ 4 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 src/wrd/surrogate_models/energy_param_sweep_pump.py rename src/wrd/surrogate_models/{param_sweep_fxs_toy.py => param_sweep_fxs_pump.py} (87%) create mode 100644 up_pump_sweep.csv diff --git a/ps_demo.h5 b/ps_demo.h5 index 110f80c62ab6af434ee6d07667cbf83b1faf7c9a..ac8d89da4ce026fe7c3486dcd82ca235c36a25cf 100644 GIT binary patch delta 771 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 axU2;8lK?00g>s)aOXA@FUOJ_Njs71?aP2<; diff --git a/src/wrd/surrogate_models/energy_param_sweep_pump.py b/src/wrd/surrogate_models/energy_param_sweep_pump.py new file mode 100644 index 0000000..3a13294 --- /dev/null +++ b/src/wrd/surrogate_models/energy_param_sweep_pump.py @@ -0,0 +1,78 @@ +# Imports +from pprint import pprint +from IPython import get_ipython +from watertap.core.solvers import get_solver +from parameter_sweep import ParameterSweep +from wrd.surrogate_models.param_sweep_fxs_pump import ( + optimize, + build_flowsheet, + build_sweep_params, + build_outputs, + initialize_model, +) + + +def create_parameter_sweep_object(num_samples, num_procs, var_lims): + solver = get_solver() + kwargs_dict = { + # Arguments being used in the demo + "h5_results_file_name": "ps_demo.h5", # Resulting output file name + "build_model": build_flowsheet, # Function that builds the flowsheet model + "build_model_kwargs": dict(scenario=None), + "build_sweep_params": build_sweep_params, # Function for building sweep param dictionary + "build_sweep_params_kwargs": dict( + num_samples=num_samples, scenario="default", var_lims=var_lims + ), + "build_outputs": build_outputs, # Function the builds outputs to save + "build_outputs_kwargs": {}, + "optimize_function": optimize, # Optimize flow sheet function + "optimize_kwargs": {"solver": solver, "check_termination": False}, + "initialize_function": initialize_model, + "initialize_kwargs": {}, + "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available + "number_of_subprocesses": num_procs, + # Additional useful keyword arguments + "csv_results_file_name": "up_pump_sweep.csv", # For storing results as CSV + "h5_parent_group_name": None, # Useful for loop tool + "update_sweep_params_before_init": False, + "initialize_before_sweep": False, + "reinitialize_function": None, + "reinitialize_kwargs": {}, + "reinitialize_before_sweep": False, + "probe_function": None, + # Post-processing arguments + "interpolate_nan_outputs": False, + # Advanced Users + "debugging_data_dir": None, + "log_model_states": False, + "custom_do_param_sweep": None, # Advanced users only! + "custom_do_param_sweep_kwargs": {}, + } + ps = ParameterSweep(**kwargs_dict) + return ps, kwargs_dict + +if __name__ == "__main__": + num_samples = 10 + num_procs = 1 + var_lims = { + "Feed Flow": { + "Qin_min": 520 / 3600, # m3/s + "Qin_max": 910 / 3600, # m3/s + } + } + ps, kwargs_dict = create_parameter_sweep_object(num_samples, num_procs, var_lims) + + results_array, results_dict = ps.parameter_sweep( + kwargs_dict["build_model"], + kwargs_dict["build_sweep_params"], + build_outputs=kwargs_dict["build_outputs"], + build_outputs_kwargs=kwargs_dict["build_outputs_kwargs"], + num_samples=num_samples, + seed=None, + build_model_kwargs=kwargs_dict["build_model_kwargs"], + build_sweep_params_kwargs=kwargs_dict["build_sweep_params_kwargs"], + ) + + # Display and save results + pprint(results_dict) + pprint(results_array) diff --git a/src/wrd/surrogate_models/param_sweep_fxs_toy.py b/src/wrd/surrogate_models/param_sweep_fxs_pump.py similarity index 87% rename from src/wrd/surrogate_models/param_sweep_fxs_toy.py rename to src/wrd/surrogate_models/param_sweep_fxs_pump.py index d442e67..5507478 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs_toy.py +++ b/src/wrd/surrogate_models/param_sweep_fxs_pump.py @@ -32,7 +32,7 @@ def build_flowsheet(op_limts=None,scenario=None): stage_num=1, file="wrd_inputs_8_19_21.yaml", prop_package=m.fs.properties, - uf=False, + uf=True, ) m.fs.product = Product(property_package=m.fs.properties) @@ -61,11 +61,14 @@ def build_flowsheet(op_limts=None,scenario=None): calculate_scaling_factors(m) # Set feed and operational conditions + m.fs.feed.properties[0].pressure.setlb(0) + m.fs.pump.unit.control_volume.properties_in[0].pressure.setlb(0) + m.fs.feed.properties.calculate_state( var_args={ - ("flow_vol_phase", ("Liq")): 2500 * pyunits.gallons / pyunits.minute, + ("flow_vol_phase", ("Liq")): 3000 * pyunits.gallons / pyunits.minute, ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, - ("pressure", None): 35.4 * pyunits.psi, + ("pressure", None): 0.1 * pyunits.psi, ("temperature", None): 298.15 * pyunits.K, }, hold_state=True, @@ -87,8 +90,8 @@ def build_sweep_params( if scenario == "default": sweep_params["Feed Flow"] = LinearSample( m.fs.feed.properties[0].flow_vol_phase["Liq"], - 0, - .1, + var_lims["Feed Flow"]["Qin_min"], + var_lims["Feed Flow"]["Qin_max"], num_samples, ) else: @@ -99,6 +102,13 @@ def build_sweep_params( def initialize_model(m): + if m.fs.pump.uf: + # Allow negative suction pressure for UF configuration + m.fs.feed.properties[0].pressure.setlb(0) + m.fs.pump.feed.properties[0].pressure.setlb(0) + + # Change the bounds for the pump inlet pressure + m.fs.pump.unit.control_volume.properties_in[0].pressure.setlb(0) # Initialize system m.fs.feed.initialize() propagate_state(m.fs.feed_to_pump) diff --git a/up_pump_sweep.csv b/up_pump_sweep.csv new file mode 100644 index 0000000..47a366c --- /dev/null +++ b/up_pump_sweep.csv @@ -0,0 +1,11 @@ +# Feed Flow,Stage1 Power +1.444444e-01,8.313173e+04 +1.564815e-01,8.866472e+04 +1.685185e-01,9.470104e+04 +1.805556e-01,1.012567e+05 +1.925926e-01,1.083405e+05 +2.046296e-01,1.159551e+05 +2.166667e-01,1.240976e+05 +2.287037e-01,1.327609e+05 +2.407407e-01,1.419340e+05 +2.527778e-01,1.516030e+05 From 212c452f38bdf23d9f91323429fc9b3b17b82b42 Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Fri, 8 May 2026 00:00:04 -0600 Subject: [PATCH 05/12] Now ro_sweep actual works --- sweep_results.csv => ro_sweep_results.csv | 0 src/wrd/surrogate_models/energy_param_sweep.py | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) rename sweep_results.csv => ro_sweep_results.csv (100%) diff --git a/sweep_results.csv b/ro_sweep_results.csv similarity index 100% rename from sweep_results.csv rename to ro_sweep_results.csv diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 808e217..0902a79 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -32,10 +32,10 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available "number_of_subprocesses": num_procs, # Additional useful keyword arguments - "csv_results_file_name": None, # For storing results as CSV + "csv_results_file_name": "ro_sweep_results.csv", # For storing results as CSV "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, - "initialize_before_sweep": False, + "initialize_before_sweep": False, #!!!!!!! "reinitialize_function": None, "reinitialize_kwargs": {}, "reinitialize_before_sweep": False, @@ -52,8 +52,8 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): return ps, kwargs_dict if __name__ == "__main__": - num_samples = 2 - num_procs = 2 + num_samples = 6 + num_procs = 6 op_limts = { "Stage 1": { "RR_min": 0.55, @@ -74,12 +74,20 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "Qin_max": 126 / 3600, }, } + var_lims = { "RR_lb": 0.88, "RR_ub": 0.93, - "Qin_lb": 420 / 3600, # m3/s + "Qin_lb": 522 / 3600, # m3/s "Qin_ub": 635 / 3600, # m3/s } + # Tighter limits on flowrate and recovery + # var_lims = { + # "RR_lb": 0.9, + # "RR_ub": 0.92, + # "Qin_lb": 602 / 3600, # m3/s + # "Qin_ub": 635 / 3600, # m3/s + # } ps, kwargs_dict = create_parameter_sweep_object( num_samples, num_procs, op_limts, var_lims ) From 42f2960eafe3da999d4a9c1ef07cd73943a7f01a Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Fri, 8 May 2026 11:49:52 -0600 Subject: [PATCH 06/12] Results with different operational limits. Min brine flow instead of recovery limits. Extra DOF on solve by removing RR_S1=RR_S2 constr. --- S1_S2_RR_not_equal.csv | 37 ++++++++++ initial_ro_sweep_results.csv | 67 ++++++++++++++++++ ps_demo.h5 | Bin 15480 -> 99288 bytes ro_sweep_brine_lim(1).csv | 37 ++++++++++ ro_sweep_brine_lim.csv | 37 ++++++++++ ro_sweep_results.csv | 42 ++--------- .../surrogate_models/energy_param_sweep.py | 42 +++++------ src/wrd/surrogate_models/param_sweep_fxs.py | 32 +++++---- 8 files changed, 220 insertions(+), 74 deletions(-) create mode 100644 S1_S2_RR_not_equal.csv create mode 100644 initial_ro_sweep_results.csv create mode 100644 ro_sweep_brine_lim(1).csv create mode 100644 ro_sweep_brine_lim.csv diff --git a/S1_S2_RR_not_equal.csv b/S1_S2_RR_not_equal.csv new file mode 100644 index 0000000..2264f75 --- /dev/null +++ b/S1_S2_RR_not_equal.csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.800000e-01,1.450000e-01,5.630852e-01,6.053842e-01,3.039977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.740008e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,6.542419e+05,1.553794e+05,1.356285e+05,2.140399e+04,-1.653092e+03,1.764094e-04,2.015159e-04,8.969533e-05,1.402424e-02,1.892376e-02,2.237020e-01,8.532024e-01,1.000000e+00 +8.800000e-01,1.512222e-01,5.712852e-01,6.143840e-01,2.741308e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.814675e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,6.340083e+05,1.667060e+05,1.494033e+05,2.159395e+04,-4.291241e+03,1.860083e-04,2.093579e-04,8.117472e-05,1.343905e-02,1.886423e-02,2.502854e-01,8.801531e-01,1.000000e+00 +8.800000e-01,1.574444e-01,5.784627e-01,6.221311e-01,2.466364e-01,1.574444e-01,6.636873e-02,2.507873e-02,6.636873e-02,2.507873e-02,1.889343e-02,2.440744e+05,8.354904e+05,7.515747e+05,9.092643e+05,1.081834e+06,6.155084e+05,1.786456e+05,1.636847e+05,2.178560e+04,-6.824737e+03,1.954742e-04,2.170465e-04,7.349237e-05,1.290907e-02,1.877001e-02,2.790816e-01,9.062817e-01,1.000000e+00 +8.800000e-01,1.636667e-01,5.813442e-01,6.216460e-01,2.424237e-01,1.636667e-01,6.852002e-02,2.592488e-02,6.852002e-02,2.592488e-02,1.964010e-02,2.440744e+05,8.656467e+05,7.768424e+05,9.394206e+05,1.107101e+06,6.197921e+05,1.911441e+05,1.772450e+05,2.204207e+04,-8.143019e+03,2.036322e-04,2.233786e-04,7.434989e-05,1.243875e-02,1.835002e-02,2.759924e-01,9.292690e-01,1.000000e+00 +8.800000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.800000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.890000e-01,1.450000e-01,5.630852e-01,6.053842e-01,3.561977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.609509e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,7.095302e+05,1.581438e+05,1.356285e+05,2.140399e+04,1.111321e+03,1.764094e-04,2.015159e-04,1.055226e-04,1.402424e-02,1.892376e-02,2.025458e-01,8.532024e-01,1.000000e+00 +8.890000e-01,1.512222e-01,5.712852e-01,6.143840e-01,3.285708e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.678576e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,6.918619e+05,1.695987e+05,1.494033e+05,2.159395e+04,-1.398564e+03,1.860083e-04,2.093579e-04,9.758909e-05,1.343905e-02,1.886423e-02,2.221154e-01,8.801531e-01,1.000000e+00 +8.890000e-01,1.574444e-01,5.788679e-01,6.229549e-01,3.009439e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.747643e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,6.737541e+05,1.816770e+05,1.638224e+05,2.177780e+04,-3.923180e+03,1.956095e-04,2.171815e-04,8.962506e-05,1.290734e-02,1.880482e-02,2.448960e-01,9.065663e-01,1.000000e+00 +8.890000e-01,1.636667e-01,5.833488e-01,6.258111e-01,2.880326e-01,1.636667e-01,6.819194e-02,2.551672e-02,6.819194e-02,2.551672e-02,1.816710e-02,2.440744e+05,8.682299e+05,7.801948e+05,9.420038e+05,1.110454e+06,6.702883e+05,1.943644e+05,1.779693e+05,2.200399e+04,-5.608910e+03,2.043273e-04,2.240874e-04,8.738558e-05,1.243113e-02,1.852109e-02,2.522802e-01,9.306878e-01,1.000000e+00 +8.890000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.890000e-01,1.761111e-01,5.887746e-01,6.251114e-01,2.799850e-01,1.761111e-01,7.242138e-02,2.715001e-02,7.242138e-02,2.715001e-02,1.954845e-02,2.440744e+05,9.290546e+05,8.304713e+05,1.002829e+06,1.160730e+06,6.805511e+05,2.213736e+05,2.070478e+05,2.246650e+04,-8.140669e+03,2.207843e-04,2.366952e-04,8.959396e-05,1.159299e-02,1.775082e-02,2.461957e-01,9.760575e-01,1.000000e+00 +8.980000e-01,1.450000e-01,5.630852e-01,6.053842e-01,4.083977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.479010e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,7.662519e+05,1.609799e+05,1.356285e+05,2.140399e+04,3.947408e+03,1.764094e-04,2.015159e-04,1.218610e-04,1.402424e-02,1.892376e-02,1.877114e-01,8.532024e-01,1.000000e+00 +8.980000e-01,1.512222e-01,5.712852e-01,6.143840e-01,3.830108e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.542477e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,7.509823e+05,1.725547e+05,1.494033e+05,2.159395e+04,1.557459e+03,1.860083e-04,2.093579e-04,1.145097e-04,1.343905e-02,1.886423e-02,2.028136e-01,8.801531e-01,1.000000e+00 +8.980000e-01,1.574444e-01,5.788679e-01,6.229549e-01,3.576239e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.605944e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,7.353713e+05,1.847579e+05,1.638224e+05,2.177780e+04,-8.423220e+02,1.956095e-04,2.171815e-04,1.071302e-04,1.290734e-02,1.880482e-02,2.198102e-01,9.065663e-01,1.000000e+00 +8.980000e-01,1.636667e-01,5.858057e-01,6.309210e-01,3.327668e-01,1.636667e-01,6.778981e-02,2.501985e-02,6.778981e-02,2.501985e-02,1.669411e-02,2.440744e+05,8.713977e+05,7.842944e+05,9.451716e+05,1.114553e+06,7.199595e+05,1.975967e+05,1.788592e+05,2.195685e+04,-3.219302e+03,2.051797e-04,2.249514e-04,9.994444e-05,1.242218e-02,1.873708e-02,2.385192e-01,9.324256e-01,1.000000e+00 +8.980000e-01,1.698889e-01,5.885422e-01,6.306054e-01,3.289032e-01,1.698889e-01,6.990213e-02,2.582153e-02,6.990213e-02,2.582153e-02,1.732879e-02,2.440744e+05,9.018324e+05,8.097037e+05,9.756063e+05,1.139963e+06,7.264985e+05,2.110257e+05,1.931235e+05,2.219916e+04,-4.296968e+03,2.134140e-04,2.313217e-04,1.014490e-04,1.198851e-02,1.833420e-02,2.349766e-01,9.552007e-01,1.000000e+00 +8.980000e-01,1.761111e-01,5.911842e-01,6.303346e-01,3.250609e-01,1.761111e-01,7.199703e-02,2.661487e-02,7.199703e-02,2.661487e-02,1.796346e-02,2.440744e+05,9.323868e+05,8.349277e+05,1.006161e+06,1.165187e+06,7.327253e+05,2.250085e+05,2.080253e+05,2.242339e+04,-5.440208e+03,2.216814e-04,2.376484e-04,1.028667e-04,1.158586e-02,1.795622e-02,2.317486e-01,9.777864e-01,1.000000e+00 +9.070000e-01,1.450000e-01,5.630852e-01,6.053842e-01,4.605977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.348511e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,8.250610e+05,1.639204e+05,1.356285e+05,2.140399e+04,6.887862e+03,1.764094e-04,2.015159e-04,1.388643e-04,1.402424e-02,1.892376e-02,1.774193e-01,8.532024e-01,1.000000e+00 +9.070000e-01,1.512222e-01,5.712852e-01,6.143840e-01,4.374508e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.406378e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,8.121196e+05,1.756116e+05,1.494033e+05,2.159395e+04,4.614325e+03,1.860083e-04,2.093579e-04,1.320978e-04,1.343905e-02,1.886423e-02,1.895160e-01,8.801531e-01,1.000000e+00 +9.070000e-01,1.574444e-01,5.788679e-01,6.229549e-01,4.143039e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.464245e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,7.988863e+05,1.879337e+05,1.638224e+05,2.177780e+04,2.333428e+03,1.956095e-04,2.171815e-04,1.253021e-04,1.290734e-02,1.880482e-02,2.027800e-01,9.065663e-01,1.000000e+00 +9.070000e-01,1.636667e-01,5.859043e-01,6.311261e-01,3.911570e-01,1.636667e-01,6.777368e-02,2.500000e-02,6.777368e-02,2.500000e-02,1.522113e-02,2.440744e+05,8.715248e+05,7.844587e+05,9.452987e+05,1.114718e+06,7.853561e+05,2.008948e+05,1.788949e+05,2.195495e+04,4.487148e+01,2.052139e-04,2.249860e-04,1.184795e-04,1.242183e-02,1.874589e-02,2.174154e-01,9.324953e-01,1.000000e+00 +9.070000e-01,1.698889e-01,5.912637e-01,6.363905e-01,3.742432e-01,1.698889e-01,6.943977e-02,2.524902e-02,6.943977e-02,2.524902e-02,1.579980e-02,2.440744e+05,9.054710e+05,8.144735e+05,9.792449e+05,1.144732e+06,7.784277e+05,2.144983e+05,1.941709e+05,2.214758e+04,-1.820243e+03,2.143933e-04,2.323307e-04,1.144079e-04,1.198007e-02,1.857809e-02,2.270918e-01,9.571387e-01,1.000000e+00 +9.070000e-01,1.761111e-01,5.938776e-01,6.361786e-01,3.705825e-01,1.761111e-01,7.152270e-02,2.602155e-02,7.152270e-02,2.602155e-02,1.637847e-02,2.440744e+05,9.361137e+05,8.398941e+05,1.009888e+06,1.170153e+06,7.858615e+05,2.286834e+05,2.091211e+05,2.237430e+04,-2.812023e+03,2.226847e-04,2.387067e-04,1.161681e-04,1.157836e-02,1.819407e-02,2.235941e-01,9.797178e-01,1.000000e+00 +9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.160000e-01,1.512222e-01,5.712852e-01,6.143840e-01,4.918908e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.270280e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,8.761351e+05,1.788123e+05,1.494033e+05,2.159395e+04,7.815097e+03,1.860083e-04,2.093579e-04,1.505693e-04,1.343905e-02,1.886423e-02,1.806848e-01,8.801531e-01,1.000000e+00 +9.160000e-01,1.574444e-01,5.788679e-01,6.229549e-01,4.709839e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.322547e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,8.652401e+05,1.912514e+05,1.638224e+05,2.177780e+04,5.651122e+03,1.956095e-04,2.171815e-04,1.443633e-04,1.290734e-02,1.880482e-02,1.914173e-01,9.065663e-01,1.000000e+00 +9.160000e-01,1.636667e-01,5.859043e-01,6.311261e-01,4.500770e-01,1.636667e-01,6.777368e-02,2.500000e-02,6.777368e-02,2.500000e-02,1.374814e-02,2.440744e+05,8.715248e+05,7.844587e+05,9.452987e+05,1.114718e+06,8.540810e+05,2.043310e+05,1.788949e+05,2.195495e+04,3.481119e+03,2.052139e-04,2.249860e-04,1.381281e-04,1.242183e-02,1.874589e-02,2.029934e-01,9.324953e-01,1.000000e+00 +9.160000e-01,1.698889e-01,5.924551e-01,6.389242e-01,4.291700e-01,1.698889e-01,6.923737e-02,2.500000e-02,6.923737e-02,2.500000e-02,1.427081e-02,2.440744e+05,9.070647e+05,8.165571e+05,9.808386e+05,1.146816e+06,8.426590e+05,2.180603e+05,1.946304e+05,2.212476e+04,1.305096e+03,2.148222e-04,2.327702e-04,1.318662e-04,1.197653e-02,1.868773e-02,2.155373e-01,9.579867e-01,1.000000e+00 +9.160000e-01,1.761111e-01,5.968060e-01,6.425370e-01,4.171787e-01,1.761111e-01,7.100697e-02,2.538243e-02,7.100697e-02,2.538243e-02,1.479349e-02,2.440744e+05,9.401688e+05,8.452761e+05,1.013943e+06,1.175535e+06,8.413409e+05,2.324364e+05,2.103163e+05,2.231989e+04,-1.997713e+02,2.237763e-04,2.398488e-04,1.298537e-04,1.157077e-02,1.846297e-02,2.201895e-01,9.818163e-01,1.000000e+00 +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.698889e-01,5.924551e-01,6.389242e-01,4.903300e-01,1.698889e-01,6.923737e-02,2.500000e-02,6.923737e-02,2.500000e-02,1.274183e-02,2.440744e+05,9.070647e+05,8.165571e+05,9.808386e+05,1.146816e+06,9.178064e+05,2.218177e+05,1.946304e+05,2.212476e+04,5.062468e+03,2.148222e-04,2.327702e-04,1.533246e-04,1.197653e-02,1.868773e-02,2.040510e-01,9.579867e-01,1.000000e+00 +9.250000e-01,1.761111e-01,5.985724e-01,6.463736e-01,4.716631e-01,1.761111e-01,7.069588e-02,2.500000e-02,7.069588e-02,2.500000e-02,1.320850e-02,2.440744e+05,9.426163e+05,8.485138e+05,1.016390e+06,1.178773e+06,9.085295e+05,2.363265e+05,2.110391e+05,2.228656e+04,3.000788e+03,2.244352e-04,2.405334e-04,1.476293e-04,1.156647e-02,1.863058e-02,2.147927e-01,9.830814e-01,1.000000e+00 diff --git a/initial_ro_sweep_results.csv b/initial_ro_sweep_results.csv new file mode 100644 index 0000000..a9519c3 --- /dev/null +++ b/initial_ro_sweep_results.csv @@ -0,0 +1,67 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine Flow (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.80E-01,1.45E-01,5.53E-01,5.53E-01,4.00E-01,1.45E-01,6.48E-02,2.90E-02,6.48E-02,2.90E-02,1.74E-02,2.44E+05,7.53E+05,6.27E+05,8.27E+05,9.57E+05,7.68E+05,1.58E+05,1.33E+05,1.77E+04,8.18E+03,1.73E-04,1.87E-04,1.33E-04,1.41E-02,1.84E-02,1.43E-01 +8.80E-01,1.51E-01,5.53E-01,5.53E-01,4.00E-01,1.51E-01,6.77E-02,3.03E-02,6.77E-02,3.03E-02,1.82E-02,2.44E+05,7.79E+05,6.56E+05,8.52E+05,9.86E+05,7.84E+05,1.70E+05,1.44E+05,1.88E+04,7.77E+03,1.80E-04,1.94E-04,1.37E-04,1.35E-02,1.77E-02,1.37E-01 +8.80E-01,1.58E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.90E-01,1.45E-01,5.72E-01,5.72E-01,4.00E-01,1.45E-01,6.21E-02,2.66E-02,6.21E-02,2.66E-02,1.60E-02,2.44E+05,7.75E+05,6.31E+05,8.49E+05,9.61E+05,7.60E+05,1.61E+05,1.38E+05,1.54E+04,6.87E+03,1.79E-04,1.87E-04,1.24E-04,1.40E-02,1.98E-02,1.69E-01 +8.90E-01,1.51E-01,5.72E-01,5.72E-01,4.00E-01,1.51E-01,6.48E-02,2.77E-02,6.48E-02,2.77E-02,1.66E-02,2.44E+05,8.01E+05,6.59E+05,8.75E+05,9.89E+05,7.75E+05,1.72E+05,1.50E+05,1.63E+04,6.43E+03,1.86E-04,1.94E-04,1.29E-04,1.34E-02,1.91E-02,1.62E-01 +8.90E-01,1.58E-01,5.72E-01,5.72E-01,4.00E-01,1.58E-01,6.75E-02,2.89E-02,6.75E-02,2.89E-02,1.73E-02,2.44E+05,8.28E+05,6.88E+05,9.01E+05,1.02E+06,7.90E+05,1.85E+05,1.62E+05,1.72E+04,5.92E+03,1.93E-04,2.01E-04,1.33E-04,1.29E-02,1.84E-02,1.56E-01 +8.90E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.90E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.90E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.00E-01,1.45E-01,5.92E-01,5.92E-01,4.00E-01,1.45E-01,5.92E-02,2.42E-02,5.92E-02,2.42E-02,1.45E-02,2.44E+05,7.98E+05,6.34E+05,8.72E+05,9.64E+05,7.56E+05,1.63E+05,1.44E+05,1.31E+04,5.91E+03,1.85E-04,1.86E-04,1.16E-04,1.39E-02,2.17E-02,2.02E-01 +9.00E-01,1.51E-01,5.92E-01,5.92E-01,4.00E-01,1.51E-01,6.18E-02,2.52E-02,6.18E-02,2.52E-02,1.51E-02,2.44E+05,8.25E+05,6.62E+05,8.99E+05,9.92E+05,7.70E+05,1.75E+05,1.56E+05,1.38E+04,5.45E+03,1.93E-04,1.93E-04,1.21E-04,1.33E-02,2.08E-02,1.95E-01 +9.00E-01,1.58E-01,5.92E-01,5.92E-01,4.00E-01,1.58E-01,6.43E-02,2.63E-02,6.43E-02,2.63E-02,1.58E-02,2.44E+05,8.52E+05,6.90E+05,9.26E+05,1.02E+06,7.84E+05,1.88E+05,1.68E+05,1.45E+04,4.93E+03,2.00E-04,2.00E-04,1.25E-04,1.29E-02,2.00E-02,1.88E-01 +9.00E-01,1.64E-01,5.92E-01,5.92E-01,4.00E-01,1.64E-01,6.69E-02,2.73E-02,6.69E-02,2.73E-02,1.64E-02,2.44E+05,8.80E+05,7.18E+05,9.54E+05,1.05E+06,7.98E+05,2.01E+05,1.81E+05,1.53E+04,4.34E+03,2.07E-04,2.08E-04,1.29E-04,1.24E-02,1.93E-02,1.81E-01 +9.00E-01,1.70E-01,5.92E-01,5.92E-01,4.00E-01,1.70E-01,6.94E-02,2.84E-02,6.94E-02,2.84E-02,1.70E-02,2.44E+05,9.07E+05,7.46E+05,9.81E+05,1.08E+06,8.11E+05,2.15E+05,1.95E+05,1.61E+04,3.69E+03,2.15E-04,2.15E-04,1.33E-04,1.20E-02,1.87E-02,1.75E-01 +9.00E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.10E-01,1.45E-01,5.96E-01,5.96E-01,4.48E-01,1.45E-01,5.85E-02,2.36E-02,5.85E-02,2.36E-02,1.31E-02,2.44E+05,8.03E+05,6.34E+05,8.77E+05,9.65E+05,8.08E+05,1.66E+05,1.46E+05,1.26E+04,8.22E+03,1.87E-04,1.86E-04,1.30E-04,1.39E-02,2.21E-02,2.00E-01 +9.10E-01,1.51E-01,5.97E-01,5.97E-01,4.46E-01,1.51E-01,6.10E-02,2.46E-02,6.10E-02,2.46E-02,1.36E-02,2.44E+05,8.31E+05,6.62E+05,9.05E+05,9.93E+05,8.21E+05,1.79E+05,1.58E+05,1.32E+04,7.82E+03,1.94E-04,1.93E-04,1.33E-04,1.33E-02,2.13E-02,1.94E-01 +9.10E-01,1.58E-01,5.98E-01,5.98E-01,4.44E-01,1.58E-01,6.34E-02,2.55E-02,6.34E-02,2.55E-02,1.42E-02,2.44E+05,8.60E+05,6.91E+05,9.33E+05,1.02E+06,8.34E+05,1.92E+05,1.70E+05,1.38E+04,7.34E+03,2.02E-04,2.00E-04,1.37E-04,1.28E-02,2.06E-02,1.89E-01 +9.10E-01,1.64E-01,5.98E-01,5.98E-01,4.42E-01,1.64E-01,6.58E-02,2.64E-02,6.58E-02,2.64E-02,1.47E-02,2.44E+05,8.88E+05,7.19E+05,9.62E+05,1.05E+06,8.47E+05,2.05E+05,1.84E+05,1.44E+04,6.78E+03,2.10E-04,2.07E-04,1.41E-04,1.24E-02,1.99E-02,1.84E-01 +9.10E-01,1.70E-01,5.99E-01,5.99E-01,4.41E-01,1.70E-01,6.82E-02,2.74E-02,6.82E-02,2.74E-02,1.53E-02,2.44E+05,9.17E+05,7.47E+05,9.90E+05,1.08E+06,8.59E+05,2.19E+05,1.98E+05,1.50E+04,6.14E+03,2.17E-04,2.14E-04,1.44E-04,1.19E-02,1.93E-02,1.79E-01 +9.10E-01,1.76E-01,6.05E-01,6.05E-01,4.24E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.59E-02,2.44E+05,9.52E+05,7.75E+05,1.03E+06,1.10E+06,8.51E+05,2.33E+05,2.14E+05,1.48E+04,4.21E+03,2.27E-04,2.21E-04,1.40E-04,1.15E-02,1.92E-02,1.87E-01 +9.20E-01,1.45E-01,6.01E-01,6.01E-01,4.97E-01,1.45E-01,5.78E-02,2.31E-02,5.78E-02,2.31E-02,1.16E-02,2.44E+05,8.09E+05,6.35E+05,8.82E+05,9.65E+05,8.65E+05,1.70E+05,1.47E+05,1.21E+04,1.06E+04,1.88E-04,1.85E-04,1.44E-04,1.39E-02,2.26E-02,2.01E-01 +9.20E-01,1.51E-01,6.02E-01,6.02E-01,4.96E-01,1.51E-01,6.03E-02,2.40E-02,6.03E-02,2.40E-02,1.21E-02,2.44E+05,8.37E+05,6.63E+05,9.11E+05,9.93E+05,8.79E+05,1.82E+05,1.59E+05,1.26E+04,1.04E+04,1.96E-04,1.93E-04,1.48E-04,1.33E-02,2.18E-02,1.95E-01 +9.20E-01,1.58E-01,6.02E-01,6.02E-01,4.94E-01,1.58E-01,6.27E-02,2.49E-02,6.27E-02,2.49E-02,1.26E-02,2.44E+05,8.66E+05,6.91E+05,9.39E+05,1.02E+06,8.93E+05,1.95E+05,1.72E+05,1.32E+04,1.01E+04,2.04E-04,2.00E-04,1.52E-04,1.28E-02,2.11E-02,1.89E-01 +9.20E-01,1.64E-01,6.03E-01,6.03E-01,4.93E-01,1.64E-01,6.51E-02,2.58E-02,6.51E-02,2.58E-02,1.31E-02,2.44E+05,8.94E+05,7.19E+05,9.68E+05,1.05E+06,9.07E+05,2.09E+05,1.85E+05,1.37E+04,9.74E+03,2.11E-04,2.07E-04,1.56E-04,1.24E-02,2.04E-02,1.84E-01 +9.20E-01,1.70E-01,6.04E-01,6.04E-01,4.91E-01,1.70E-01,6.74E-02,2.67E-02,6.74E-02,2.67E-02,1.36E-02,2.44E+05,9.23E+05,7.47E+05,9.97E+05,1.08E+06,9.21E+05,2.23E+05,1.99E+05,1.43E+04,9.30E+03,2.19E-04,2.14E-04,1.60E-04,1.19E-02,1.97E-02,1.79E-01 +9.20E-01,1.76E-01,6.05E-01,6.05E-01,4.88E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.41E-02,2.44E+05,9.52E+05,7.75E+05,1.03E+06,1.10E+06,9.33E+05,2.38E+05,2.14E+05,1.48E+04,8.70E+03,2.27E-04,2.21E-04,1.63E-04,1.15E-02,1.92E-02,1.76E-01 +9.30E-01,1.45E-01,6.06E-01,6.06E-01,5.49E-01,1.45E-01,5.71E-02,2.25E-02,5.71E-02,2.25E-02,1.02E-02,2.44E+05,8.15E+05,6.36E+05,8.88E+05,9.66E+05,9.27E+05,1.73E+05,1.49E+05,1.15E+04,1.31E+04,1.90E-04,1.85E-04,1.60E-04,1.38E-02,2.32E-02,2.06E-01 +9.30E-01,1.51E-01,6.07E-01,6.07E-01,5.47E-01,1.51E-01,5.95E-02,2.34E-02,5.95E-02,2.34E-02,1.06E-02,2.44E+05,8.43E+05,6.63E+05,9.17E+05,9.94E+05,9.43E+05,1.86E+05,1.61E+05,1.20E+04,1.31E+04,1.98E-04,1.92E-04,1.64E-04,1.33E-02,2.23E-02,2.00E-01 +9.30E-01,1.58E-01,6.07E-01,6.07E-01,5.46E-01,1.58E-01,6.19E-02,2.43E-02,6.19E-02,2.43E-02,1.10E-02,2.44E+05,8.72E+05,6.91E+05,9.46E+05,1.02E+06,9.58E+05,1.99E+05,1.74E+05,1.25E+04,1.30E+04,2.05E-04,2.00E-04,1.69E-04,1.28E-02,2.16E-02,1.94E-01 +9.30E-01,1.64E-01,6.08E-01,6.08E-01,5.44E-01,1.64E-01,6.42E-02,2.52E-02,6.42E-02,2.52E-02,1.15E-02,2.44E+05,9.01E+05,7.19E+05,9.75E+05,1.05E+06,9.74E+05,2.13E+05,1.87E+05,1.30E+04,1.28E+04,2.13E-04,2.07E-04,1.73E-04,1.23E-02,2.09E-02,1.88E-01 +9.30E-01,1.70E-01,6.09E-01,6.09E-01,5.43E-01,1.70E-01,6.66E-02,2.60E-02,6.66E-02,2.60E-02,1.19E-02,2.44E+05,9.30E+05,7.47E+05,1.00E+06,1.08E+06,9.89E+05,2.28E+05,2.01E+05,1.35E+04,1.26E+04,2.21E-04,2.14E-04,1.77E-04,1.19E-02,2.02E-02,1.83E-01 +9.30E-01,1.76E-01,6.09E-01,6.09E-01,5.41E-01,1.76E-01,6.89E-02,2.69E-02,6.89E-02,2.69E-02,1.23E-02,2.44E+05,9.59E+05,7.75E+05,1.03E+06,1.10E+06,1.00E+06,2.42E+05,2.16E+05,1.40E+04,1.23E+04,2.29E-04,2.21E-04,1.81E-04,1.15E-02,1.96E-02,1.79E-01 +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/ps_demo.h5 b/ps_demo.h5 index ac8d89da4ce026fe7c3486dcd82ca235c36a25cf..75f6f85a3739997d7f6dd1f4c17e3b4ffb5075ee 100644 GIT binary patch literal 99288 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 HvdaGh6COV@ delta 762 zcmcc7&i12Xf(CPi4Z}ulUseGL1_5WW|lW!cBkz)oLtcqk23y{qS2b&!=-B~sVXs&0P z-oV5d&B(j`4ih6kBanW>459z9fa%FSL1!jEkThUgp}%nz9}}a*WJMWq$>5U2^i)HI zfc)~*BA~epAYXw1I35y`B{_8={0%abSACbCtSM8@g@}%c8|@}{$VyCpAuGVhH2J5j zJtOnvL{)hqkPATo@|I6Xjt zQ9!Cg2BHP#s1CSeHg1$-M2mXCRZg6I5cQC#XR0upxKVC$0S^b0hcSrtL63te!xY3i z02GTb0kItPIVLOUD@-=1zr+;5x7o&kkC7>XZ?lgfkj~)S9AgBeEBGesY`?NO!AyXO rTLEGN!wE}<>B^0awTQGgePttKAZG{E30%{en;7R#eqcRg;(-MKP~O#+ diff --git a/ro_sweep_brine_lim(1).csv b/ro_sweep_brine_lim(1).csv new file mode 100644 index 0000000..ec568f7 --- /dev/null +++ b/ro_sweep_brine_lim(1).csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 +8.800000e-01,1.512222e-01,5.844850e-01,5.844850e-01,3.049622e-01,1.512222e-01,6.283512e-02,2.610898e-02,6.283512e-02,2.610898e-02,1.814675e-02,2.440744e+05,8.162474e+05,6.607105e+05,8.900213e+05,9.909694e+05,6.662238e+05,1.686141e+05,1.536270e+05,1.469921e+04,2.878957e+02,1.902522e-04,1.933741e-04,9.332732e-05,1.337931e-02,2.015657e-02,2.143733e-01 +8.800000e-01,1.574444e-01,5.850838e-01,5.850838e-01,3.029546e-01,1.574444e-01,6.532627e-02,2.710497e-02,6.532627e-02,2.710497e-02,1.889343e-02,2.440744e+05,8.437176e+05,6.888193e+05,9.174915e+05,1.019078e+06,6.750313e+05,1.806089e+05,1.659429e+05,1.541343e+04,-7.474519e+02,1.976874e-04,2.005825e-04,9.572745e-05,1.288241e-02,1.946445e-02,2.088784e-01 +8.800000e-01,1.636667e-01,5.857186e-01,5.857186e-01,3.008168e-01,1.636667e-01,6.780408e-02,2.809001e-02,6.780408e-02,2.809001e-02,1.964010e-02,2.440744e+05,8.712853e+05,7.168987e+05,9.450592e+05,1.047158e+06,6.834501e+05,1.930945e+05,1.788276e+05,1.614606e+04,-1.879142e+03,2.051495e-04,2.077821e-04,9.800780e-05,1.242249e-02,1.882722e-02,2.039268e-01 +8.800000e-01,1.698889e-01,5.863848e-01,5.863848e-01,2.985626e-01,1.698889e-01,7.026864e-02,2.906423e-02,7.026864e-02,2.906423e-02,2.038677e-02,2.440744e+05,8.989498e+05,7.449466e+05,9.727237e+05,1.075206e+06,6.914900e+05,2.060842e+05,1.922955e+05,1.689608e+04,-3.107350e+03,2.126382e-04,2.149725e-04,1.001712e-04,1.199558e-02,1.823864e-02,1.994567e-01 +8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 +8.900000e-01,1.450000e-01,5.847730e-01,5.847730e-01,3.619977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.595009e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.155596e+05,1.601726e+05,1.421216e+05,1.390794e+04,4.143061e+03,1.831058e-04,1.861288e-04,1.073009e-04,1.391427e-02,2.098942e-02,2.004896e-01 +8.900000e-01,1.512222e-01,5.883017e-01,5.883017e-01,3.510140e-01,1.512222e-01,6.225795e-02,2.563153e-02,6.225795e-02,2.563153e-02,1.663454e-02,2.440744e+05,8.208205e+05,6.611894e+05,8.945944e+05,9.914483e+05,7.160856e+05,1.719012e+05,1.548599e+05,1.422710e+04,2.814145e+03,1.914820e-04,1.932206e-04,1.063479e-04,1.336459e-02,2.050305e-02,2.032098e-01 +8.900000e-01,1.574444e-01,5.889255e-01,5.889255e-01,3.490431e-01,1.574444e-01,6.472142e-02,2.660537e-02,6.472142e-02,2.660537e-02,1.731899e-02,2.440744e+05,8.484976e+05,6.892262e+05,9.222715e+05,1.019485e+06,7.261894e+05,1.841253e+05,1.672608e+05,1.489768e+04,1.966836e+03,1.989732e-04,2.004070e-04,1.091359e-04,1.286846e-02,1.980191e-02,1.978341e-01 +8.900000e-01,1.636667e-01,5.895826e-01,5.895826e-01,3.469568e-01,1.636667e-01,6.717167e-02,2.756847e-02,6.717167e-02,2.756847e-02,1.800344e-02,2.440744e+05,8.762712e+05,7.172310e+05,9.500451e+05,1.047490e+06,7.359126e+05,1.968467e+05,1.802319e+05,1.558479e+04,1.030048e+03,2.064910e-04,2.075840e-04,1.118057e-04,1.240929e-02,1.915626e-02,1.929617e-01 +8.900000e-01,1.698889e-01,5.902692e-01,5.902692e-01,3.447662e-01,1.698889e-01,6.960872e-02,2.852089e-02,6.960872e-02,2.852089e-02,1.868789e-02,2.440744e+05,9.041411e+05,7.452020e+05,9.779150e+05,1.075461e+06,7.452633e+05,2.100786e+05,1.937878e+05,1.628733e+04,3.492087e+00,2.140354e-04,2.147513e-04,1.143596e-04,1.198309e-02,1.855985e-02,1.885365e-01 +8.900000e-01,1.761111e-01,5.909823e-01,5.909823e-01,3.424795e-01,1.761111e-01,7.203258e-02,2.946265e-02,7.203258e-02,2.946265e-02,1.937234e-02,2.440744e+05,9.321075e+05,7.731379e+05,1.005881e+06,1.103397e+06,7.542472e+05,2.238342e+05,2.079433e+05,1.700403e+04,-1.113141e+03,2.216062e-04,2.219086e-04,1.167993e-04,1.158644e-02,1.800736e-02,1.845116e-01 +9.000000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.199977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.450010e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.789099e+05,1.633402e+05,1.421216e+05,1.390794e+04,7.310576e+03,1.831058e-04,1.861288e-04,1.255632e-04,1.391427e-02,2.098942e-02,1.849483e-01 +9.000000e-01,1.512222e-01,5.924505e-01,5.924505e-01,3.979395e-01,1.512222e-01,6.163056e-02,2.511755e-02,6.163056e-02,2.511755e-02,1.512233e-02,2.440744e+05,8.257970e+05,6.616820e+05,8.995709e+05,9.919409e+05,7.674112e+05,1.752361e+05,1.562061e+05,1.371870e+04,5.311316e+03,1.928203e-04,1.930405e-04,1.196288e-04,1.334988e-02,2.089273e-02,1.967331e-01 +9.000000e-01,1.574444e-01,5.930861e-01,5.930861e-01,3.960571e-01,1.574444e-01,6.406635e-02,2.606954e-02,6.406635e-02,2.606954e-02,1.574456e-02,2.440744e+05,8.536801e+05,6.896353e+05,9.274540e+05,1.019894e+06,7.788327e+05,1.876896e+05,1.686945e+05,1.434442e+04,4.650668e+03,2.003673e-04,2.002025e-04,1.228128e-04,1.285462e-02,2.018011e-02,1.913725e-01 +9.000000e-01,1.636667e-01,5.937544e-01,5.937544e-01,3.940684e-01,1.636667e-01,6.648888e-02,2.701086e-02,6.648888e-02,2.701086e-02,1.636678e-02,2.440744e+05,8.816599e+05,7.175546e+05,9.554338e+05,1.047813e+06,7.898774e+05,2.006467e+05,1.817549e+05,1.498473e+04,3.907002e+03,2.079410e-04,2.073547e-04,1.258785e-04,1.239626e-02,1.952393e-02,1.864965e-01 +9.000000e-01,1.698889e-01,5.944520e-01,5.944520e-01,3.919821e-01,1.698889e-01,6.889812e-02,2.794155e-02,6.889812e-02,2.794155e-02,1.698901e-02,2.440744e+05,9.097369e+05,7.454381e+05,9.835108e+05,1.075697e+06,8.005516e+05,2.141203e+05,1.954020e+05,1.563841e+04,3.079913e+03,2.155414e-04,2.144967e-04,1.288279e-04,1.197084e-02,1.891786e-02,1.820520e-01 +9.000000e-01,1.761111e-01,5.951762e-01,5.951762e-01,3.898048e-01,1.761111e-01,7.129400e-02,2.886156e-02,7.129400e-02,2.886156e-02,1.761124e-02,2.440744e+05,9.379116e+05,7.732845e+05,1.011685e+06,1.103543e+06,8.108598e+05,2.281236e+05,2.096506e+05,1.630402e+04,2.168964e+03,2.231687e-04,2.216280e-04,1.316619e-04,1.157492e-02,1.835651e-02,1.779943e-01 +9.100000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.779977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.305011e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,8.450379e+05,1.666466e+05,1.421216e+05,1.390794e+04,1.061698e+04,1.831058e-04,1.861288e-04,1.446977e-04,1.391427e-02,2.098942e-02,1.746916e-01 +9.100000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.555975e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.361012e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.328607e+05,1.786727e+05,1.565168e+05,1.360243e+04,8.553459e+03,1.931286e-04,1.929971e-04,1.381283e-04,1.334669e-02,2.098440e-02,1.859961e-01 +9.100000e-01,1.574444e-01,5.975261e-01,5.975261e-01,4.443924e-01,1.574444e-01,6.336730e-02,2.550374e-02,6.336730e-02,2.550374e-02,1.417013e-02,2.440744e+05,8.592170e+05,6.900385e+05,9.329909e+05,1.020297e+06,8.340783e+05,1.913394e+05,1.702318e+05,1.376049e+04,7.347105e+03,2.018568e-04,1.999684e-04,1.370477e-04,1.284129e-02,2.059897e-02,1.885991e-01 +9.100000e-01,1.636667e-01,5.981953e-01,5.981953e-01,4.425402e-01,1.636667e-01,6.576206e-02,2.642356e-02,6.576206e-02,2.642356e-02,1.473013e-02,2.440744e+05,8.874028e+05,7.178617e+05,9.611767e+05,1.048121e+06,8.464630e+05,2.045333e+05,1.833839e+05,1.435313e+04,6.796209e+03,2.094863e-04,2.070936e-04,1.405172e-04,1.238379e-02,1.993013e-02,1.836409e-01 +9.100000e-01,1.698889e-01,5.988949e-01,5.988949e-01,4.405939e-01,1.698889e-01,6.814333e-02,2.733269e-02,6.814333e-02,2.733269e-02,1.529014e-02,2.440744e+05,9.156873e+05,7.456476e+05,9.894612e+05,1.075906e+06,8.584771e+05,2.182496e+05,1.971248e+05,1.495699e+04,6.167867e+03,2.171429e-04,2.142081e-04,1.438684e-04,1.195918e-02,1.931256e-02,1.791117e-01 +9.100000e-01,1.761111e-01,5.996225e-01,5.996225e-01,4.385588e-01,1.761111e-01,7.051095e-02,2.823105e-02,7.051095e-02,2.823105e-02,1.585014e-02,2.440744e+05,9.440718e+05,7.733946e+05,1.017846e+06,1.103654e+06,8.701233e+05,2.325015e+05,2.114695e+05,1.557049e+04,5.461505e+03,2.248270e-04,2.213114e-04,1.471022e-04,1.156402e-02,1.874075e-02,1.749674e-01 +9.200000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.200000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.200000e-01,1.574444e-01,6.015206e-01,6.015206e-01,4.961750e-01,1.574444e-01,6.273838e-02,2.500000e-02,6.273838e-02,2.500000e-02,1.259570e-02,2.440744e+05,8.642043e+05,6.903746e+05,9.379782e+05,1.020634e+06,8.956835e+05,1.951281e+05,1.716215e+05,1.324117e+04,1.026545e+04,2.031984e-04,1.997442e-04,1.531784e-04,1.283058e-02,2.098991e-02,1.876998e-01 +9.200000e-01,1.636667e-01,6.029185e-01,6.029185e-01,4.926214e-01,1.636667e-01,6.498902e-02,2.580599e-02,6.498902e-02,2.580599e-02,1.309348e-02,2.440744e+05,8.935185e+05,7.181499e+05,9.672924e+05,1.048409e+06,9.069742e+05,2.085609e+05,1.851254e+05,1.368991e+04,9.745595e+03,2.111318e-04,2.067974e-04,1.560460e-04,1.237212e-02,2.037979e-02,1.841651e-01 +9.200000e-01,1.698889e-01,6.036100e-01,6.036100e-01,4.908496e-01,1.698889e-01,6.734227e-02,2.669386e-02,6.734227e-02,2.669386e-02,1.359126e-02,2.440744e+05,9.220101e+05,7.458272e+05,9.957840e+05,1.076086e+06,9.203458e+05,2.225228e+05,1.989625e+05,1.424316e+04,9.317151e+03,2.188446e-04,2.138821e-04,1.598076e-04,1.194833e-02,1.974852e-02,1.794724e-01 +9.200000e-01,1.761111e-01,6.043324e-01,6.043324e-01,4.889888e-01,1.761111e-01,6.968148e-02,2.757076e-02,6.968148e-02,2.757076e-02,1.408905e-02,2.440744e+05,9.506050e+05,7.734644e+05,1.024379e+06,1.103723e+06,9.333459e+05,2.370258e+05,2.134060e+05,1.480367e+04,8.816114e+03,2.265857e-04,2.209551e-04,1.634482e-04,1.155395e-02,1.916437e-02,1.751738e-01 +9.300000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan diff --git a/ro_sweep_brine_lim.csv b/ro_sweep_brine_lim.csv new file mode 100644 index 0000000..3008e63 --- /dev/null +++ b/ro_sweep_brine_lim.csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 +8.800000e-01,1.512222e-01,5.844850e-01,5.844850e-01,3.049622e-01,1.512222e-01,6.283512e-02,2.610898e-02,6.283512e-02,2.610898e-02,1.814675e-02,2.440744e+05,8.162474e+05,6.607105e+05,8.900213e+05,9.909694e+05,6.662238e+05,1.686141e+05,1.536270e+05,1.469921e+04,2.878957e+02,1.902522e-04,1.933741e-04,9.332732e-05,1.337931e-02,2.015657e-02,2.143733e-01 +8.800000e-01,1.574444e-01,5.850838e-01,5.850838e-01,3.029546e-01,1.574444e-01,6.532627e-02,2.710497e-02,6.532627e-02,2.710497e-02,1.889343e-02,2.440744e+05,8.437176e+05,6.888193e+05,9.174915e+05,1.019078e+06,6.750313e+05,1.806089e+05,1.659429e+05,1.541343e+04,-7.474519e+02,1.976874e-04,2.005825e-04,9.572745e-05,1.288241e-02,1.946445e-02,2.088784e-01 +8.800000e-01,1.636667e-01,5.857186e-01,5.857186e-01,3.008168e-01,1.636667e-01,6.780408e-02,2.809001e-02,6.780408e-02,2.809001e-02,1.964010e-02,2.440744e+05,8.712853e+05,7.168987e+05,9.450592e+05,1.047158e+06,6.834501e+05,1.930945e+05,1.788276e+05,1.614606e+04,-1.879142e+03,2.051495e-04,2.077821e-04,9.800780e-05,1.242249e-02,1.882722e-02,2.039268e-01 +8.800000e-01,1.698889e-01,5.863848e-01,5.863848e-01,2.985626e-01,1.698889e-01,7.026864e-02,2.906423e-02,7.026864e-02,2.906423e-02,2.038677e-02,2.440744e+05,8.989498e+05,7.449466e+05,9.727237e+05,1.075206e+06,6.914900e+05,2.060842e+05,1.922955e+05,1.689608e+04,-3.107350e+03,2.126382e-04,2.149725e-04,1.001712e-04,1.199558e-02,1.823864e-02,1.994567e-01 +8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 +8.890000e-01,1.450000e-01,5.847730e-01,5.847730e-01,3.561977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.609509e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.093406e+05,1.598617e+05,1.421216e+05,1.390794e+04,3.832111e+03,1.831058e-04,1.861288e-04,1.055135e-04,1.391427e-02,2.098942e-02,2.024069e-01 +8.890000e-01,1.512222e-01,5.879038e-01,5.879038e-01,3.463782e-01,1.512222e-01,6.231812e-02,2.568110e-02,6.231812e-02,2.568110e-02,1.678576e-02,2.440744e+05,8.203436e+05,6.611407e+05,8.941175e+05,9.913995e+05,7.110520e+05,1.715708e+05,1.547312e+05,1.427613e+04,2.563559e+03,1.913537e-04,1.932372e-04,1.050391e-04,1.336607e-02,2.046640e-02,2.040924e-01 +8.890000e-01,1.574444e-01,5.885257e-01,5.885257e-01,3.444010e-01,1.574444e-01,6.478436e-02,2.665715e-02,6.478436e-02,2.665715e-02,1.747643e-02,2.440744e+05,8.480000e+05,6.891853e+05,9.217739e+05,1.019444e+06,7.210253e+05,1.837721e+05,1.671234e+05,1.495113e+04,1.697527e+03,1.988394e-04,2.004259e-04,1.077880e-04,1.286986e-02,1.976628e-02,1.987098e-01 +8.890000e-01,1.636667e-01,5.891811e-01,5.891811e-01,3.423074e-01,1.636667e-01,6.723737e-02,2.762243e-02,6.723737e-02,2.762243e-02,1.816710e-02,2.440744e+05,8.757530e+05,7.171980e+05,9.495269e+05,1.047457e+06,7.306173e+05,1.964699e+05,1.800857e+05,1.564286e+04,7.413503e+02,2.063516e-04,2.076052e-04,1.104185e-04,1.241061e-02,1.912156e-02,1.938335e-01 +8.890000e-01,1.698889e-01,5.898662e-01,5.898662e-01,3.401084e-01,1.698889e-01,6.967720e-02,2.857702e-02,6.967720e-02,2.857702e-02,1.885778e-02,2.440744e+05,9.036023e+05,7.451772e+05,9.773762e+05,1.075436e+06,7.398364e+05,2.096777e+05,1.936327e+05,1.635023e+04,-3.052491e+02,2.138903e-04,2.147749e-04,1.129332e-04,1.198434e-02,1.852602e-02,1.894067e-01 +8.890000e-01,1.761111e-01,5.905778e-01,5.905778e-01,3.378127e-01,1.761111e-01,7.210383e-02,2.952096e-02,7.210383e-02,2.952096e-02,1.954845e-02,2.440744e+05,9.315479e+05,7.731214e+05,1.005322e+06,1.103380e+06,7.486885e+05,2.234084e+05,2.077791e+05,1.707196e+04,-1.442570e+03,2.214556e-04,2.219347e-04,1.153337e-04,1.158762e-02,1.797433e-02,1.853825e-01 +8.980000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.083977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.479010e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.660497e+05,1.626971e+05,1.421216e+05,1.390794e+04,6.667565e+03,1.831058e-04,1.861288e-04,1.218491e-04,1.391427e-02,2.098942e-02,1.875822e-01 +8.980000e-01,1.512222e-01,5.915971e-01,5.915971e-01,3.884622e-01,1.512222e-01,6.175962e-02,2.522286e-02,6.175962e-02,2.522286e-02,1.542477e-02,2.440744e+05,8.247728e+05,6.615830e+05,8.985467e+05,9.918418e+05,7.569760e+05,1.745637e+05,1.559287e+05,1.382286e+04,4.812172e+03,1.925449e-04,1.930786e-04,1.169379e-04,1.335280e-02,2.081143e-02,1.977088e-01 +8.980000e-01,1.574444e-01,5.922312e-01,5.922312e-01,3.865585e-01,1.574444e-01,6.420094e-02,2.617919e-02,6.420094e-02,2.617919e-02,1.605944e-02,2.440744e+05,8.526148e+05,6.895538e+05,9.263887e+05,1.019813e+06,7.681323e+05,1.869713e+05,1.683994e+05,1.445763e+04,4.114241e+03,2.000808e-04,2.002457e-04,1.200420e-04,1.285736e-02,2.010130e-02,1.923527e-01 +8.980000e-01,1.636667e-01,5.928981e-01,5.928981e-01,3.845470e-01,1.636667e-01,6.662902e-02,2.712485e-02,6.662902e-02,2.712485e-02,1.669411e-02,2.440744e+05,8.805534e+05,7.174910e+05,9.543273e+05,1.047750e+06,7.789112e+05,1.998811e+05,1.814417e+05,1.510738e+04,3.332029e+03,2.076433e-04,2.074030e-04,1.230280e-04,1.239883e-02,1.944738e-02,1.874836e-01 +8.980000e-01,1.698889e-01,5.935942e-01,5.935942e-01,3.824369e-01,1.698889e-01,6.904385e-02,2.805987e-02,6.904385e-02,2.805987e-02,1.732879e-02,2.440744e+05,9.085889e+05,7.453929e+05,9.823628e+05,1.075652e+06,7.893195e+05,2.133064e+05,1.950703e+05,1.577091e+04,2.465154e+03,2.152324e-04,2.145502e-04,1.258977e-04,1.197325e-02,1.884339e-02,1.830480e-01 +8.980000e-01,1.761111e-01,5.943168e-01,5.943168e-01,3.802351e-01,1.761111e-01,7.144534e-02,2.898423e-02,7.144534e-02,2.898423e-02,1.796346e-02,2.440744e+05,9.367218e+05,7.732579e+05,1.010496e+06,1.103517e+06,7.993619e+05,2.272602e+05,2.093001e+05,1.644683e+04,1.513207e+03,2.228484e-04,2.216870e-04,1.286525e-04,1.157718e-02,1.828393e-02,1.790008e-01 +9.070000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.605977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.348511e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,8.248443e+05,1.656369e+05,1.421216e+05,1.390794e+04,9.607298e+03,1.831058e-04,1.861288e-04,1.388493e-04,1.391427e-02,2.098942e-02,1.772966e-01 +9.070000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.374508e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.406378e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.118965e+05,1.776245e+05,1.565168e+05,1.360243e+04,7.505250e+03,1.931286e-04,1.929971e-04,1.320834e-04,1.334669e-02,2.098440e-02,1.893829e-01 +9.070000e-01,1.574444e-01,5.961648e-01,5.961648e-01,4.297363e-01,1.574444e-01,6.358163e-02,2.567655e-02,6.358163e-02,2.567655e-02,1.464245e-02,2.440744e+05,8.575187e+05,6.899184e+05,9.312926e+05,1.020177e+06,8.171607e+05,1.902328e+05,1.697597e+05,1.393879e+04,6.534286e+03,2.014000e-04,2.000419e-04,1.327010e-04,1.284522e-02,2.046883e-02,1.890675e-01 +9.070000e-01,1.636667e-01,5.968349e-01,5.968349e-01,4.278392e-01,1.636667e-01,6.598471e-02,2.660279e-02,6.598471e-02,2.660279e-02,1.522113e-02,2.440744e+05,8.856428e+05,7.177715e+05,9.594167e+05,1.048030e+06,8.291413e+05,2.033554e+05,1.828841e+05,1.454581e+04,5.925498e+03,2.090127e-04,2.071754e-04,1.360484e-04,1.238746e-02,1.980403e-02,1.841427e-01 +9.070000e-01,1.698889e-01,5.975348e-01,5.975348e-01,4.258474e-01,1.698889e-01,6.837439e-02,2.751836e-02,6.837439e-02,2.751836e-02,1.579980e-02,2.440744e+05,9.138650e+05,7.455878e+05,9.876389e+05,1.075847e+06,8.407516e+05,2.169987e+05,1.965965e+05,1.516470e+04,5.237508e+03,2.166525e-04,2.142984e-04,1.392783e-04,1.196260e-02,1.919011e-02,1.796463e-01 +9.070000e-01,1.761111e-01,5.982622e-01,5.982622e-01,4.237662e-01,1.761111e-01,7.075050e-02,2.842320e-02,7.075050e-02,2.842320e-02,1.637847e-02,2.440744e+05,9.421865e+05,7.733657e+05,1.015960e+06,1.103625e+06,8.519949e+05,2.311758e+05,2.109121e+05,1.579393e+04,4.469787e+03,2.243195e-04,2.214103e-04,1.423914e-04,1.156721e-02,1.862162e-02,1.755343e-01 +9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.160000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.918908e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.270280e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.758944e+05,1.808244e+05,1.565168e+05,1.360243e+04,1.070514e+04,1.931286e-04,1.929971e-04,1.505509e-04,1.334669e-02,2.098440e-02,1.805572e-01 +9.160000e-01,1.574444e-01,6.003282e-01,6.003282e-01,4.741359e-01,1.574444e-01,6.292612e-02,2.514985e-02,6.292612e-02,2.514985e-02,1.322547e-02,2.440744e+05,8.627149e+05,6.902768e+05,9.364888e+05,1.020536e+06,8.689996e+05,1.935913e+05,1.712060e+05,1.339558e+04,8.989705e+03,2.027978e-04,1.998124e-04,1.459869e-04,1.283365e-02,2.087177e-02,1.885922e-01 +9.160000e-01,1.636667e-01,6.009926e-01,6.009926e-01,4.723832e-01,1.636667e-01,6.530424e-02,2.605693e-02,6.530424e-02,2.605693e-02,1.374814e-02,2.440744e+05,8.910237e+05,7.180369e+05,9.647976e+05,1.048296e+06,8.821977e+05,2.069285e+05,1.844142e+05,1.395925e+04,8.555057e+03,2.104606e-04,2.069205e-04,1.497030e-04,1.237668e-02,2.019418e-02,1.835425e-01 +9.160000e-01,1.698889e-01,6.016887e-01,6.016887e-01,4.705375e-01,1.698889e-01,6.766869e-02,2.695326e-02,6.766869e-02,2.695326e-02,1.427081e-02,2.440744e+05,9.194327e+05,7.457590e+05,9.932066e+05,1.076018e+06,8.950242e+05,2.207917e+05,1.982125e+05,1.453284e+04,8.046366e+03,2.181509e-04,2.140174e-04,1.532993e-04,1.195256e-02,1.956869e-02,1.789260e-01 +9.160000e-01,1.761111e-01,6.024143e-01,6.024143e-01,4.686030e-01,1.761111e-01,7.001928e-02,2.783872e-02,7.001928e-02,2.783872e-02,1.479349e-02,2.440744e+05,9.479434e+05,7.734415e+05,1.021717e+06,1.103700e+06,9.074808e+05,2.351938e+05,2.126161e+05,1.511466e+04,7.462965e+03,2.258692e-04,2.211027e-04,1.567762e-04,1.155787e-02,1.898974e-02,1.746987e-01 +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.698889e-01,6.060862e-01,6.060862e-01,5.166515e-01,1.698889e-01,6.692161e-02,2.636140e-02,6.692161e-02,2.636140e-02,1.274183e-02,2.440744e+05,9.253338e+05,7.459053e+05,9.991077e+05,1.076164e+06,9.533013e+05,2.247383e+05,1.999315e+05,1.387234e+04,1.093450e+04,2.197391e-04,2.137031e-04,1.682468e-04,1.194327e-02,1.998482e-02,1.809572e-01 +9.250000e-01,1.761111e-01,6.068018e-01,6.068018e-01,5.148904e-01,1.761111e-01,6.924659e-02,2.722769e-02,6.924659e-02,2.722769e-02,1.320850e-02,2.440744e+05,9.540337e+05,7.734830e+05,1.027808e+06,1.103742e+06,9.669843e+05,2.393686e+05,2.144254e+05,1.440600e+04,1.053719e+04,2.275087e-04,2.207600e-04,1.720941e-04,1.154929e-02,1.939359e-02,1.765483e-01 diff --git a/ro_sweep_results.csv b/ro_sweep_results.csv index 969f7e4..8b9bebb 100644 --- a/ro_sweep_results.csv +++ b/ro_sweep_results.csv @@ -1,37 +1,5 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -8.800000e-01,1.450000e-01,5.527861e-01,5.527861e-01,4.000000e-01,1.450000e-01,6.484603e-02,2.900008e-02,2.440744e+05,7.531606e+05,6.270341e+05,8.269345e+05,9.572929e+05,7.679861e+05,1.584304e+05,1.326000e+05,1.765517e+04,8.175240e+03,1.732421e-04,1.867937e-04,1.325181e-04,1.409002e-02,1.837273e-02,1.425684e-01 -8.800000e-01,1.512778e-01,5.527861e-01,5.527861e-01,4.000000e-01,1.512778e-01,6.765354e-02,3.025564e-02,2.440744e+05,7.786630e+05,6.557958e+05,8.524369e+05,9.860547e+05,7.842124e+05,1.702219e+05,1.436887e+05,1.876261e+04,7.770653e+03,1.801449e-04,1.942182e-04,1.374167e-04,1.354128e-02,1.766104e-02,1.372206e-01 -8.800000e-01,1.575556e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.800000e-01,1.638333e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.800000e-01,1.701111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.800000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.900000e-01,1.450000e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.450000e-01,6.208536e-02,2.658342e-02,2.440744e+05,7.749622e+05,6.306585e+05,8.487361e+05,9.609174e+05,7.599625e+05,1.605020e+05,1.382262e+05,1.540111e+04,6.874687e+03,1.791035e-04,1.865029e-04,1.244125e-04,1.397529e-02,1.984656e-02,1.685282e-01 -8.900000e-01,1.512778e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.512778e-01,6.477335e-02,2.773435e-02,2.440744e+05,8.013450e+05,6.591734e+05,8.751189e+05,9.894323e+05,7.750503e+05,1.724064e+05,1.496785e+05,1.630044e+04,6.427541e+03,1.862448e-04,1.938599e-04,1.289342e-04,1.343172e-02,1.907737e-02,1.622289e-01 -8.900000e-01,1.575556e-01,5.718252e-01,5.718252e-01,4.000000e-01,1.575556e-01,6.746133e-02,2.888528e-02,2.440744e+05,8.277234e+05,6.876768e+05,9.014973e+05,1.017936e+06,7.900689e+05,1.848128e+05,1.616543e+05,1.724329e+04,5.915250e+03,1.933856e-04,2.012160e-04,1.334455e-04,1.293060e-02,1.836807e-02,1.563923e-01 -8.900000e-01,1.638333e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.900000e-01,1.701111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.900000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.000000e-01,1.450000e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.450000e-01,5.919608e-02,2.416677e-02,2.440744e+05,7.978947e+05,6.336828e+05,8.716686e+05,9.639417e+05,7.559333e+05,1.632732e+05,1.442445e+05,1.311987e+04,5.908797e+03,1.852688e-04,1.858729e-04,1.164548e-04,1.388706e-02,2.165930e-02,2.023717e-01 -9.000000e-01,1.512778e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.512778e-01,6.175898e-02,2.521307e-02,2.440744e+05,8.251995e+05,6.618502e+05,8.989734e+05,9.921090e+05,7.699223e+05,1.753458e+05,1.560859e+05,1.381028e+04,5.449662e+03,1.926601e-04,1.931361e-04,1.206083e-04,1.334768e-02,2.081894e-02,1.948446e-01 -9.000000e-01,1.575556e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.575556e-01,6.432187e-02,2.625937e-02,2.440744e+05,8.524999e+05,6.900057e+05,9.262738e+05,1.020265e+06,7.838285e+05,1.879193e+05,1.684575e+05,1.453441e+04,4.927453e+03,2.000507e-04,2.003982e-04,1.247486e-04,1.285045e-02,2.004411e-02,1.878657e-01 -9.000000e-01,1.638333e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.638333e-01,6.688477e-02,2.730567e-02,2.440744e+05,8.797964e+05,7.181507e+05,9.535703e+05,1.048410e+06,7.976612e+05,2.010076e+05,1.813728e+05,1.529264e+04,4.342177e+03,2.074408e-04,2.076595e-04,1.288773e-04,1.239060e-02,1.932741e-02,1.813777e-01 -9.000000e-01,1.701111e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.701111e-01,6.944766e-02,2.835197e-02,2.440744e+05,9.070892e+05,7.462860e+05,9.808631e+05,1.076545e+06,8.114285e+05,2.146246e+05,1.948455e+05,1.608526e+04,3.693837e+03,2.148304e-04,2.149200e-04,1.329957e-04,1.196404e-02,1.866252e-02,1.753309e-01 -9.000000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.100000e-01,1.450000e-01,5.962921e-01,5.962921e-01,4.477838e-01,1.450000e-01,5.853766e-02,2.363216e-02,2.440744e+05,8.031387e+05,6.342876e+05,8.769126e+05,9.645465e+05,8.081746e+05,1.664676e+05,1.456348e+05,1.261416e+04,8.218652e+03,1.866786e-04,1.856872e-04,1.297479e-04,1.387149e-02,2.211734e-02,2.000212e-01 -9.100000e-01,1.512778e-01,5.968959e-01,5.968959e-01,4.461283e-01,1.512778e-01,6.098071e-02,2.458162e-02,2.440744e+05,8.313794e+05,6.624288e+05,9.051533e+05,9.926876e+05,8.214336e+05,1.787662e+05,1.577635e+05,1.318557e+04,7.817192e+03,1.943220e-04,1.928966e-04,1.334913e-04,1.333105e-02,2.131874e-02,1.939875e-01 -9.100000e-01,1.575556e-01,5.975377e-01,5.975377e-01,4.443602e-01,1.575556e-01,6.341018e-02,2.552025e-02,2.440744e+05,8.597194e+05,6.905357e+05,9.334933e+05,1.020795e+06,8.343027e+05,1.915705e+05,1.704616e+05,1.377097e+04,7.337943e+03,2.019928e-04,2.000957e-04,1.371107e-04,1.283281e-02,2.058654e-02,1.885065e-01 -9.100000e-01,1.638333e-01,5.982136e-01,5.982136e-01,4.424893e-01,1.638333e-01,6.582602e-02,2.644805e-02,2.440744e+05,8.881591e+05,7.186064e+05,9.619330e+05,1.048865e+06,8.467896e+05,2.048938e+05,1.837443e+05,1.436916e+04,6.780391e+03,2.096910e-04,2.072843e-04,1.406085e-04,1.237201e-02,1.991295e-02,1.835142e-01 -9.100000e-01,1.701111e-01,5.989204e-01,5.989204e-01,4.405227e-01,1.701111e-01,6.822812e-02,2.736496e-02,2.440744e+05,9.166993e+05,7.466392e+05,9.904732e+05,1.076898e+06,8.588993e+05,2.187493e+05,1.976266e+05,1.497875e+04,6.143987e+03,2.174169e-04,2.144620e-04,1.439859e-04,1.194458e-02,1.929138e-02,1.789573e-01 -9.100000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.239715e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.511690e+05,2.331991e+05,2.142136e+05,1.477061e+04,4.214883e+03,2.270664e-04,2.212424e-04,1.395426e-04,1.153628e-02,1.917230e-02,1.865626e-01 -9.200000e-01,1.450000e-01,6.010544e-01,6.010544e-01,4.973518e-01,1.450000e-01,5.784712e-02,2.307790e-02,2.440744e+05,8.086461e+05,6.348962e+05,8.824200e+05,9.651551e+05,8.646059e+05,1.697932e+05,1.471005e+05,1.209027e+04,1.060243e+04,1.881593e-04,1.854772e-04,1.440293e-04,1.385698e-02,2.261763e-02,2.010971e-01 -9.200000e-01,1.512778e-01,6.016428e-01,6.016428e-01,4.958660e-01,1.512778e-01,6.026261e-02,2.400609e-02,2.440744e+05,8.370898e+05,6.629303e+05,9.108637e+05,9.931892e+05,8.792369e+05,1.823220e+05,1.593199e+05,1.261676e+04,1.038535e+04,1.958577e-04,1.926580e-04,1.481947e-04,1.331756e-02,2.180021e-02,1.948669e-01 -9.200000e-01,1.575556e-01,6.022715e-01,6.022715e-01,4.942709e-01,1.575556e-01,6.266436e-02,2.492345e-02,2.440744e+05,8.656342e+05,6.909295e+05,9.394081e+05,1.021188e+06,8.934785e+05,1.953626e+05,1.721108e+05,1.315532e+04,1.009644e+04,2.035839e-04,1.998282e-04,1.522337e-04,1.282027e-02,2.105108e-02,1.892007e-01 -9.200000e-01,1.638333e-01,6.029366e-01,6.029366e-01,4.925751e-01,1.638333e-01,6.505224e-02,2.582991e-02,2.440744e+05,8.942803e+05,7.188917e+05,9.680542e+05,1.049151e+06,9.073372e+05,2.089280e+05,1.854883e+05,1.370462e+04,9.735059e+03,2.113381e-04,2.069873e-04,1.561484e-04,1.236036e-02,2.036222e-02,1.840339e-01 -9.200000e-01,1.701111e-01,6.036353e-01,6.036353e-01,4.907847e-01,1.701111e-01,6.742606e-02,2.672536e-02,2.440744e+05,9.230296e+05,7.468149e+05,9.968035e+05,1.077074e+06,9.208165e+05,2.230314e+05,1.994678e+05,1.426307e+04,9.300512e+03,2.191206e-04,2.141350e-04,1.599397e-04,1.193376e-02,1.972688e-02,1.793123e-01 -9.200000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.879744e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,9.325777e+05,2.376863e+05,2.142136e+05,1.477061e+04,8.702057e+03,2.270664e-04,2.212424e-04,1.630656e-04,1.153628e-02,1.917230e-02,1.757268e-01 -9.300000e-01,1.450000e-01,6.062159e-01,6.062159e-01,5.485771e-01,1.450000e-01,5.709871e-02,2.248461e-02,2.440744e+05,8.146242e+05,6.355313e+05,8.883981e+05,9.657902e+05,9.267428e+05,1.733239e+05,1.486979e+05,1.153045e+04,1.309555e+04,1.897665e-04,1.852328e-04,1.596037e-04,1.384335e-02,2.318415e-02,2.062876e-01 -9.300000e-01,1.512778e-01,6.067686e-01,6.067686e-01,5.473074e-01,1.512778e-01,5.948719e-02,2.339228e-02,2.440744e+05,8.432650e+05,6.634423e+05,9.170389e+05,9.937012e+05,9.427696e+05,1.860893e+05,1.610099e+05,1.201129e+04,1.306821e+04,1.975184e-04,1.923823e-04,1.642079e-04,1.330499e-02,2.234329e-02,1.997019e-01 -9.300000e-01,1.575556e-01,6.073663e-01,6.073663e-01,5.459281e-01,1.575556e-01,6.186165e-02,2.428902e-02,2.440744e+05,8.720092e+05,6.913189e+05,9.457831e+05,1.021578e+06,9.584055e+05,1.993723e+05,1.738955e+05,1.250227e+04,1.297454e+04,2.052988e-04,1.995209e-04,1.686813e-04,1.280867e-02,2.157322e-02,1.937106e-01 -9.300000e-01,1.638333e-01,6.080050e-01,6.080050e-01,5.444471e-01,1.638333e-01,6.422186e-02,2.517470e-02,2.440744e+05,9.008582e+05,7.191586e+05,9.746321e+05,1.049417e+06,9.736557e+05,2.131858e+05,1.873701e+05,1.300189e+04,1.281378e+04,2.131080e-04,2.066481e-04,1.730260e-04,1.234968e-02,2.086564e-02,1.882460e-01 -9.300000e-01,1.701111e-01,6.086820e-01,6.086820e-01,5.428695e-01,1.701111e-01,6.656756e-02,2.604914e-02,2.440744e+05,9.298144e+05,7.469589e+05,1.003588e+06,1.077218e+06,9.885225e+05,2.275428e+05,2.014494e+05,1.350834e+04,1.258504e+04,2.209467e-04,2.137633e-04,1.772424e-04,1.192393e-02,2.021355e-02,1.832513e-01 -9.300000e-01,1.763889e-01,6.093952e-01,6.093952e-01,5.411988e-01,1.763889e-01,6.889838e-02,2.691210e-02,2.440744e+05,9.588805e+05,7.747177e+05,1.032654e+06,1.104977e+06,1.003005e+06,2.424563e+05,2.161493e+05,1.401956e+04,1.228739e+04,2.288154e-04,2.208658e-04,1.813303e-04,1.152796e-02,1.961101e-02,1.786787e-01 +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 +8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 +9.300000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.300000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 0902a79..145b0ed 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -18,7 +18,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): # Arguments being used in the demo "h5_results_file_name": "ps_demo.h5", # Resulting output file name "build_model": build_flowsheet, # Function that builds the flowsheet model - "build_model_kwargs": dict(scenario=None, op_limts=op_limits), + "build_model_kwargs": dict(scenario=None, op_limits=op_limits), "build_sweep_params": build_sweep_params, # Function for building sweep param dictionary "build_sweep_params_kwargs": dict( num_samples=num_samples, var_lims=var_lims, scenario="default" @@ -32,7 +32,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available "number_of_subprocesses": num_procs, # Additional useful keyword arguments - "csv_results_file_name": "ro_sweep_results.csv", # For storing results as CSV + "csv_results_file_name": "S1_S2_RR_not_equal.csv", # For storing results as CSV "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, "initialize_before_sweep": False, #!!!!!!! @@ -54,42 +54,34 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): if __name__ == "__main__": num_samples = 6 num_procs = 6 - op_limts = { + op_limits = { + # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 420 / 3600, - "Qin_max": 635 / 3600, + "Qout_min": 3*72/3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? + # "Qin_max": 635 / 3600, # Based on pump limitation }, "Stage 2": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 200 / 3600, - "Qin_max": 251 / 3600, + "Qout_min": 3*30/3600, + # "Qin_min": 200 / 3600, + # "Qin_max": 251 / 3600, # This came from stage 1 min recovery of 55% }, "Stage 3": { - "RR_min": 0.40, - "RR_max": 0.55, - "Qin_min": 75 / 3600, - "Qin_max": 126 / 3600, + "Qout_min": 3*15/3600, + # "Qin_min": 75 / 3600, + # "Qin_max": 126 / 3600, }, } var_lims = { "RR_lb": 0.88, - "RR_ub": 0.93, + "RR_ub": 0.925, "Qin_lb": 522 / 3600, # m3/s - "Qin_ub": 635 / 3600, # m3/s + "Qin_ub": 634 / 3600, # m3/s } - # Tighter limits on flowrate and recovery - # var_lims = { - # "RR_lb": 0.9, - # "RR_ub": 0.92, - # "Qin_lb": 602 / 3600, # m3/s - # "Qin_ub": 635 / 3600, # m3/s - # } + ps, kwargs_dict = create_parameter_sweep_object( - num_samples, num_procs, op_limts, var_lims + num_samples, num_procs, op_limits, var_lims ) results_array, results_dict = ps.parameter_sweep( diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index 70f4067..3a80618 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -80,7 +80,7 @@ def report_ports_with_multiple_arcs(model): return found_issue # Build flowsheet function -def build_flowsheet(op_limts=None,scenario=None): +def build_flowsheet(op_limits=None,scenario=None): m = ConcreteModel() m.fs = FlowsheetBlock(dynamic=False) m.fs.properties = NaClParameterBlock() @@ -164,14 +164,16 @@ def build_flowsheet(op_limts=None,scenario=None): set_ro_train_op_conditions(m.fs.ro_train) # Set limits on each stage recovery and flowrate for i in m.fs.ro_train.stages: - m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setlb(op_limts[f"Stage {i}"]["RR_min"]) - m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setub(op_limts[f"Stage {i}"]["RR_max"]) - m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setlb( - op_limts[f"Stage {i}"]["Qin_min"] - ) - m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setub( - op_limts[f"Stage {i}"]["Qin_max"] - ) + + # m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setlb( + # op_limits[f"Stage {i}"]["Qin_min"] + # ) + # m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setub( + # op_limits[f"Stage {i}"]["Qin_max"] + # ) + m.fs.ro_train.stage[i].disposal.properties[0].flow_vol_phase["Liq"].setlb(op_limits[f"Stage {i}"]["Qout_min"]) + # m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setlb(op_limits[f"Stage {i}"]["RR_min"]) + # m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setub(op_limits[f"Stage {i}"]["RR_max"]) print(degrees_of_freedom(m)) # Should be zero. return m @@ -266,9 +268,9 @@ def optimize(m, solver=None, check_termination=True): m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.unfix() m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.unfix() m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.unfix() - # But to make sure there are 0 DOF Assume S1 and S2 have same recovery and - m.fs.ro_train.eq_recovery = Constraint( - expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) + # Reduce DOF by assume S1 and S2 have same recovery, which is about typical from data, but not necessarily optimal... + # m.fs.ro_train.eq_recovery = Constraint( + # expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) m.fs.obj = Objective(expr= m.fs.ro_train.total_pump_power, sense=minimize) # Dummy objective to trigger solve @@ -297,6 +299,9 @@ def _pump_unit(stage_blk): outputs["Stage1 Qin (m3/s)"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] outputs["Stage2 Qin (m3/s)"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] outputs["Stage3 Qin (m3/s)"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] + outputs["Stage1 Brine (m3/s)"] = m.fs.ro_train.stage[1].disposal.properties[0].flow_vol_phase["Liq"] + outputs["Stage2 Brine (m3/s)"] = m.fs.ro_train.stage[2].disposal.properties[0].flow_vol_phase["Liq"] + outputs["Stage3 Brine (m3/s)"] = m.fs.ro_train.stage[3].disposal.properties[0].flow_vol_phase["Liq"] pump1 = _pump_unit(m.fs.ro_train.stage[1]) pump2 = _pump_unit(m.fs.ro_train.stage[2]) @@ -323,6 +328,9 @@ def _pump_unit(stage_blk): outputs["Stage1 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[1].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] outputs["Stage2 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[2].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] outputs["Stage3 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[3].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage1 Pump Speed (-)"] = pump1.design_speed_fraction + outputs["Stage2 Pump Speed (-)"] = pump2.design_speed_fraction + # outputs["Stage3 Pump Speed (-)"] = pump3.design_speed_fraction # Pump 3 has no speed fraction return outputs From 18b4092063f85926e91a6eda9312446b54904f6d Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Fri, 8 May 2026 13:30:32 -0600 Subject: [PATCH 07/12] Created sample energy surrogate Co-authored-by: Copilot --- ro_sweep_brine_lim(1).csv | 105 ++++++---- solution.pickle | Bin 0 -> 5957 bytes src/wrd/surrogate_models/energy_surrogate.py | 186 ++++++++++++++++++ .../ro_power_poly_fit_order_2.json | 1 + .../surrogate_models/ro_sweep_brine_lim.csv | 67 +++++++ 5 files changed, 323 insertions(+), 36 deletions(-) create mode 100644 solution.pickle create mode 100644 src/wrd/surrogate_models/energy_surrogate.py create mode 100644 src/wrd/surrogate_models/ro_power_poly_fit_order_2.json create mode 100644 src/wrd/surrogate_models/ro_sweep_brine_lim.csv diff --git a/ro_sweep_brine_lim(1).csv b/ro_sweep_brine_lim(1).csv index ec568f7..9775c49 100644 --- a/ro_sweep_brine_lim(1).csv +++ b/ro_sweep_brine_lim(1).csv @@ -1,37 +1,70 @@ # Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 -8.800000e-01,1.512222e-01,5.844850e-01,5.844850e-01,3.049622e-01,1.512222e-01,6.283512e-02,2.610898e-02,6.283512e-02,2.610898e-02,1.814675e-02,2.440744e+05,8.162474e+05,6.607105e+05,8.900213e+05,9.909694e+05,6.662238e+05,1.686141e+05,1.536270e+05,1.469921e+04,2.878957e+02,1.902522e-04,1.933741e-04,9.332732e-05,1.337931e-02,2.015657e-02,2.143733e-01 -8.800000e-01,1.574444e-01,5.850838e-01,5.850838e-01,3.029546e-01,1.574444e-01,6.532627e-02,2.710497e-02,6.532627e-02,2.710497e-02,1.889343e-02,2.440744e+05,8.437176e+05,6.888193e+05,9.174915e+05,1.019078e+06,6.750313e+05,1.806089e+05,1.659429e+05,1.541343e+04,-7.474519e+02,1.976874e-04,2.005825e-04,9.572745e-05,1.288241e-02,1.946445e-02,2.088784e-01 -8.800000e-01,1.636667e-01,5.857186e-01,5.857186e-01,3.008168e-01,1.636667e-01,6.780408e-02,2.809001e-02,6.780408e-02,2.809001e-02,1.964010e-02,2.440744e+05,8.712853e+05,7.168987e+05,9.450592e+05,1.047158e+06,6.834501e+05,1.930945e+05,1.788276e+05,1.614606e+04,-1.879142e+03,2.051495e-04,2.077821e-04,9.800780e-05,1.242249e-02,1.882722e-02,2.039268e-01 -8.800000e-01,1.698889e-01,5.863848e-01,5.863848e-01,2.985626e-01,1.698889e-01,7.026864e-02,2.906423e-02,7.026864e-02,2.906423e-02,2.038677e-02,2.440744e+05,8.989498e+05,7.449466e+05,9.727237e+05,1.075206e+06,6.914900e+05,2.060842e+05,1.922955e+05,1.689608e+04,-3.107350e+03,2.126382e-04,2.149725e-04,1.001712e-04,1.199558e-02,1.823864e-02,1.994567e-01 -8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 -8.900000e-01,1.450000e-01,5.847730e-01,5.847730e-01,3.619977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.595009e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.155596e+05,1.601726e+05,1.421216e+05,1.390794e+04,4.143061e+03,1.831058e-04,1.861288e-04,1.073009e-04,1.391427e-02,2.098942e-02,2.004896e-01 -8.900000e-01,1.512222e-01,5.883017e-01,5.883017e-01,3.510140e-01,1.512222e-01,6.225795e-02,2.563153e-02,6.225795e-02,2.563153e-02,1.663454e-02,2.440744e+05,8.208205e+05,6.611894e+05,8.945944e+05,9.914483e+05,7.160856e+05,1.719012e+05,1.548599e+05,1.422710e+04,2.814145e+03,1.914820e-04,1.932206e-04,1.063479e-04,1.336459e-02,2.050305e-02,2.032098e-01 -8.900000e-01,1.574444e-01,5.889255e-01,5.889255e-01,3.490431e-01,1.574444e-01,6.472142e-02,2.660537e-02,6.472142e-02,2.660537e-02,1.731899e-02,2.440744e+05,8.484976e+05,6.892262e+05,9.222715e+05,1.019485e+06,7.261894e+05,1.841253e+05,1.672608e+05,1.489768e+04,1.966836e+03,1.989732e-04,2.004070e-04,1.091359e-04,1.286846e-02,1.980191e-02,1.978341e-01 -8.900000e-01,1.636667e-01,5.895826e-01,5.895826e-01,3.469568e-01,1.636667e-01,6.717167e-02,2.756847e-02,6.717167e-02,2.756847e-02,1.800344e-02,2.440744e+05,8.762712e+05,7.172310e+05,9.500451e+05,1.047490e+06,7.359126e+05,1.968467e+05,1.802319e+05,1.558479e+04,1.030048e+03,2.064910e-04,2.075840e-04,1.118057e-04,1.240929e-02,1.915626e-02,1.929617e-01 -8.900000e-01,1.698889e-01,5.902692e-01,5.902692e-01,3.447662e-01,1.698889e-01,6.960872e-02,2.852089e-02,6.960872e-02,2.852089e-02,1.868789e-02,2.440744e+05,9.041411e+05,7.452020e+05,9.779150e+05,1.075461e+06,7.452633e+05,2.100786e+05,1.937878e+05,1.628733e+04,3.492087e+00,2.140354e-04,2.147513e-04,1.143596e-04,1.198309e-02,1.855985e-02,1.885365e-01 -8.900000e-01,1.761111e-01,5.909823e-01,5.909823e-01,3.424795e-01,1.761111e-01,7.203258e-02,2.946265e-02,7.203258e-02,2.946265e-02,1.937234e-02,2.440744e+05,9.321075e+05,7.731379e+05,1.005881e+06,1.103397e+06,7.542472e+05,2.238342e+05,2.079433e+05,1.700403e+04,-1.113141e+03,2.216062e-04,2.219086e-04,1.167993e-04,1.158644e-02,1.800736e-02,1.845116e-01 -9.000000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.199977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.450010e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.789099e+05,1.633402e+05,1.421216e+05,1.390794e+04,7.310576e+03,1.831058e-04,1.861288e-04,1.255632e-04,1.391427e-02,2.098942e-02,1.849483e-01 -9.000000e-01,1.512222e-01,5.924505e-01,5.924505e-01,3.979395e-01,1.512222e-01,6.163056e-02,2.511755e-02,6.163056e-02,2.511755e-02,1.512233e-02,2.440744e+05,8.257970e+05,6.616820e+05,8.995709e+05,9.919409e+05,7.674112e+05,1.752361e+05,1.562061e+05,1.371870e+04,5.311316e+03,1.928203e-04,1.930405e-04,1.196288e-04,1.334988e-02,2.089273e-02,1.967331e-01 -9.000000e-01,1.574444e-01,5.930861e-01,5.930861e-01,3.960571e-01,1.574444e-01,6.406635e-02,2.606954e-02,6.406635e-02,2.606954e-02,1.574456e-02,2.440744e+05,8.536801e+05,6.896353e+05,9.274540e+05,1.019894e+06,7.788327e+05,1.876896e+05,1.686945e+05,1.434442e+04,4.650668e+03,2.003673e-04,2.002025e-04,1.228128e-04,1.285462e-02,2.018011e-02,1.913725e-01 -9.000000e-01,1.636667e-01,5.937544e-01,5.937544e-01,3.940684e-01,1.636667e-01,6.648888e-02,2.701086e-02,6.648888e-02,2.701086e-02,1.636678e-02,2.440744e+05,8.816599e+05,7.175546e+05,9.554338e+05,1.047813e+06,7.898774e+05,2.006467e+05,1.817549e+05,1.498473e+04,3.907002e+03,2.079410e-04,2.073547e-04,1.258785e-04,1.239626e-02,1.952393e-02,1.864965e-01 -9.000000e-01,1.698889e-01,5.944520e-01,5.944520e-01,3.919821e-01,1.698889e-01,6.889812e-02,2.794155e-02,6.889812e-02,2.794155e-02,1.698901e-02,2.440744e+05,9.097369e+05,7.454381e+05,9.835108e+05,1.075697e+06,8.005516e+05,2.141203e+05,1.954020e+05,1.563841e+04,3.079913e+03,2.155414e-04,2.144967e-04,1.288279e-04,1.197084e-02,1.891786e-02,1.820520e-01 -9.000000e-01,1.761111e-01,5.951762e-01,5.951762e-01,3.898048e-01,1.761111e-01,7.129400e-02,2.886156e-02,7.129400e-02,2.886156e-02,1.761124e-02,2.440744e+05,9.379116e+05,7.732845e+05,1.011685e+06,1.103543e+06,8.108598e+05,2.281236e+05,2.096506e+05,1.630402e+04,2.168964e+03,2.231687e-04,2.216280e-04,1.316619e-04,1.157492e-02,1.835651e-02,1.779943e-01 -9.100000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.779977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.305011e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,8.450379e+05,1.666466e+05,1.421216e+05,1.390794e+04,1.061698e+04,1.831058e-04,1.861288e-04,1.446977e-04,1.391427e-02,2.098942e-02,1.746916e-01 -9.100000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.555975e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.361012e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.328607e+05,1.786727e+05,1.565168e+05,1.360243e+04,8.553459e+03,1.931286e-04,1.929971e-04,1.381283e-04,1.334669e-02,2.098440e-02,1.859961e-01 -9.100000e-01,1.574444e-01,5.975261e-01,5.975261e-01,4.443924e-01,1.574444e-01,6.336730e-02,2.550374e-02,6.336730e-02,2.550374e-02,1.417013e-02,2.440744e+05,8.592170e+05,6.900385e+05,9.329909e+05,1.020297e+06,8.340783e+05,1.913394e+05,1.702318e+05,1.376049e+04,7.347105e+03,2.018568e-04,1.999684e-04,1.370477e-04,1.284129e-02,2.059897e-02,1.885991e-01 -9.100000e-01,1.636667e-01,5.981953e-01,5.981953e-01,4.425402e-01,1.636667e-01,6.576206e-02,2.642356e-02,6.576206e-02,2.642356e-02,1.473013e-02,2.440744e+05,8.874028e+05,7.178617e+05,9.611767e+05,1.048121e+06,8.464630e+05,2.045333e+05,1.833839e+05,1.435313e+04,6.796209e+03,2.094863e-04,2.070936e-04,1.405172e-04,1.238379e-02,1.993013e-02,1.836409e-01 -9.100000e-01,1.698889e-01,5.988949e-01,5.988949e-01,4.405939e-01,1.698889e-01,6.814333e-02,2.733269e-02,6.814333e-02,2.733269e-02,1.529014e-02,2.440744e+05,9.156873e+05,7.456476e+05,9.894612e+05,1.075906e+06,8.584771e+05,2.182496e+05,1.971248e+05,1.495699e+04,6.167867e+03,2.171429e-04,2.142081e-04,1.438684e-04,1.195918e-02,1.931256e-02,1.791117e-01 -9.100000e-01,1.761111e-01,5.996225e-01,5.996225e-01,4.385588e-01,1.761111e-01,7.051095e-02,2.823105e-02,7.051095e-02,2.823105e-02,1.585014e-02,2.440744e+05,9.440718e+05,7.733946e+05,1.017846e+06,1.103654e+06,8.701233e+05,2.325015e+05,2.114695e+05,1.557049e+04,5.461505e+03,2.248270e-04,2.213114e-04,1.471022e-04,1.156402e-02,1.874075e-02,1.749674e-01 -9.200000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.200000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.200000e-01,1.574444e-01,6.015206e-01,6.015206e-01,4.961750e-01,1.574444e-01,6.273838e-02,2.500000e-02,6.273838e-02,2.500000e-02,1.259570e-02,2.440744e+05,8.642043e+05,6.903746e+05,9.379782e+05,1.020634e+06,8.956835e+05,1.951281e+05,1.716215e+05,1.324117e+04,1.026545e+04,2.031984e-04,1.997442e-04,1.531784e-04,1.283058e-02,2.098991e-02,1.876998e-01 -9.200000e-01,1.636667e-01,6.029185e-01,6.029185e-01,4.926214e-01,1.636667e-01,6.498902e-02,2.580599e-02,6.498902e-02,2.580599e-02,1.309348e-02,2.440744e+05,8.935185e+05,7.181499e+05,9.672924e+05,1.048409e+06,9.069742e+05,2.085609e+05,1.851254e+05,1.368991e+04,9.745595e+03,2.111318e-04,2.067974e-04,1.560460e-04,1.237212e-02,2.037979e-02,1.841651e-01 -9.200000e-01,1.698889e-01,6.036100e-01,6.036100e-01,4.908496e-01,1.698889e-01,6.734227e-02,2.669386e-02,6.734227e-02,2.669386e-02,1.359126e-02,2.440744e+05,9.220101e+05,7.458272e+05,9.957840e+05,1.076086e+06,9.203458e+05,2.225228e+05,1.989625e+05,1.424316e+04,9.317151e+03,2.188446e-04,2.138821e-04,1.598076e-04,1.194833e-02,1.974852e-02,1.794724e-01 -9.200000e-01,1.761111e-01,6.043324e-01,6.043324e-01,4.889888e-01,1.761111e-01,6.968148e-02,2.757076e-02,6.968148e-02,2.757076e-02,1.408905e-02,2.440744e+05,9.506050e+05,7.734644e+05,1.024379e+06,1.103723e+06,9.333459e+05,2.370258e+05,2.134060e+05,1.480367e+04,8.816114e+03,2.265857e-04,2.209551e-04,1.634482e-04,1.155395e-02,1.916437e-02,1.751738e-01 -9.300000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.45E-01,5.84E-01,5.84E-01,3.07E-01,1.45E-01,6.03E-02,2.51E-02,6.03E-02,2.51E-02,1.74E-02,2.44E+05,7.89E+05,6.33E+05,8.63E+05,9.63E+05,6.57E+05,1.57E+05,1.42E+05,1.40E+04,1.23E+03,1.83E-04,1.86E-04,9.08E-05,1.39E-02,2.09E-02,2.20E-01 +8.80E-01,1.51E-01,5.84E-01,5.84E-01,3.05E-01,1.51E-01,6.28E-02,2.61E-02,6.28E-02,2.61E-02,1.81E-02,2.44E+05,8.16E+05,6.61E+05,8.90E+05,9.91E+05,6.66E+05,1.69E+05,1.54E+05,1.47E+04,2.88E+02,1.90E-04,1.93E-04,9.33E-05,1.34E-02,2.02E-02,2.14E-01 +8.80E-01,1.57E-01,5.85E-01,5.85E-01,3.03E-01,1.57E-01,6.53E-02,2.71E-02,6.53E-02,2.71E-02,1.89E-02,2.44E+05,8.44E+05,6.89E+05,9.17E+05,1.02E+06,6.75E+05,1.81E+05,1.66E+05,1.54E+04,-7.47E+02,1.98E-04,2.01E-04,9.57E-05,1.29E-02,1.95E-02,2.09E-01 +8.80E-01,1.64E-01,5.86E-01,5.86E-01,3.01E-01,1.64E-01,6.78E-02,2.81E-02,6.78E-02,2.81E-02,1.96E-02,2.44E+05,8.71E+05,7.17E+05,9.45E+05,1.05E+06,6.83E+05,1.93E+05,1.79E+05,1.61E+04,-1.88E+03,2.05E-04,2.08E-04,9.80E-05,1.24E-02,1.88E-02,2.04E-01 +8.80E-01,1.70E-01,5.86E-01,5.86E-01,2.99E-01,1.70E-01,7.03E-02,2.91E-02,7.03E-02,2.91E-02,2.04E-02,2.44E+05,8.99E+05,7.45E+05,9.73E+05,1.08E+06,6.91E+05,2.06E+05,1.92E+05,1.69E+04,-3.11E+03,2.13E-04,2.15E-04,1.00E-04,1.20E-02,1.82E-02,1.99E-01 +8.80E-01,1.76E-01,5.87E-01,5.87E-01,2.96E-01,1.76E-01,7.27E-02,3.00E-02,7.27E-02,3.00E-02,2.11E-02,2.44E+05,9.27E+05,7.73E+05,1.00E+06,1.10E+06,6.99E+05,2.20E+05,2.06E+05,1.77E+04,-4.43E+03,2.20E-04,2.22E-04,1.02E-04,1.16E-02,1.77E-02,1.95E-01 +8.89E-01,1.45E-01,5.85E-01,5.85E-01,3.56E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.61E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.09E+05,1.60E+05,1.42E+05,1.39E+04,3.83E+03,1.83E-04,1.86E-04,1.06E-04,1.39E-02,2.10E-02,2.02E-01 +8.89E-01,1.51E-01,5.88E-01,5.88E-01,3.46E-01,1.51E-01,6.23E-02,2.57E-02,6.23E-02,2.57E-02,1.68E-02,2.44E+05,8.20E+05,6.61E+05,8.94E+05,9.91E+05,7.11E+05,1.72E+05,1.55E+05,1.43E+04,2.56E+03,1.91E-04,1.93E-04,1.05E-04,1.34E-02,2.05E-02,2.04E-01 +8.89E-01,1.57E-01,5.89E-01,5.89E-01,3.44E-01,1.57E-01,6.48E-02,2.67E-02,6.48E-02,2.67E-02,1.75E-02,2.44E+05,8.48E+05,6.89E+05,9.22E+05,1.02E+06,7.21E+05,1.84E+05,1.67E+05,1.50E+04,1.70E+03,1.99E-04,2.00E-04,1.08E-04,1.29E-02,1.98E-02,1.99E-01 +8.89E-01,1.64E-01,5.89E-01,5.89E-01,3.42E-01,1.64E-01,6.72E-02,2.76E-02,6.72E-02,2.76E-02,1.82E-02,2.44E+05,8.76E+05,7.17E+05,9.50E+05,1.05E+06,7.31E+05,1.96E+05,1.80E+05,1.56E+04,7.41E+02,2.06E-04,2.08E-04,1.10E-04,1.24E-02,1.91E-02,1.94E-01 +8.89E-01,1.70E-01,5.90E-01,5.90E-01,3.40E-01,1.70E-01,6.97E-02,2.86E-02,6.97E-02,2.86E-02,1.89E-02,2.44E+05,9.04E+05,7.45E+05,9.77E+05,1.08E+06,7.40E+05,2.10E+05,1.94E+05,1.64E+04,-3.05E+02,2.14E-04,2.15E-04,1.13E-04,1.20E-02,1.85E-02,1.89E-01 +8.89E-01,1.76E-01,5.91E-01,5.91E-01,3.38E-01,1.76E-01,7.21E-02,2.95E-02,7.21E-02,2.95E-02,1.95E-02,2.44E+05,9.32E+05,7.73E+05,1.01E+06,1.10E+06,7.49E+05,2.23E+05,2.08E+05,1.71E+04,-1.44E+03,2.21E-04,2.22E-04,1.15E-04,1.16E-02,1.80E-02,1.85E-01 +8.90E-01,1.45E-01,5.85E-01,5.85E-01,3.62E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.60E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.16E+05,1.60E+05,1.42E+05,1.39E+04,4.14E+03,1.83E-04,1.86E-04,1.07E-04,1.39E-02,2.10E-02,2.00E-01 +8.90E-01,1.51E-01,5.88E-01,5.88E-01,3.51E-01,1.51E-01,6.23E-02,2.56E-02,6.23E-02,2.56E-02,1.66E-02,2.44E+05,8.21E+05,6.61E+05,8.95E+05,9.91E+05,7.16E+05,1.72E+05,1.55E+05,1.42E+04,2.81E+03,1.91E-04,1.93E-04,1.06E-04,1.34E-02,2.05E-02,2.03E-01 +8.90E-01,1.57E-01,5.89E-01,5.89E-01,3.49E-01,1.57E-01,6.47E-02,2.66E-02,6.47E-02,2.66E-02,1.73E-02,2.44E+05,8.48E+05,6.89E+05,9.22E+05,1.02E+06,7.26E+05,1.84E+05,1.67E+05,1.49E+04,1.97E+03,1.99E-04,2.00E-04,1.09E-04,1.29E-02,1.98E-02,1.98E-01 +8.90E-01,1.64E-01,5.90E-01,5.90E-01,3.47E-01,1.64E-01,6.72E-02,2.76E-02,6.72E-02,2.76E-02,1.80E-02,2.44E+05,8.76E+05,7.17E+05,9.50E+05,1.05E+06,7.36E+05,1.97E+05,1.80E+05,1.56E+04,1.03E+03,2.06E-04,2.08E-04,1.12E-04,1.24E-02,1.92E-02,1.93E-01 +8.90E-01,1.70E-01,5.90E-01,5.90E-01,3.45E-01,1.70E-01,6.96E-02,2.85E-02,6.96E-02,2.85E-02,1.87E-02,2.44E+05,9.04E+05,7.45E+05,9.78E+05,1.08E+06,7.45E+05,2.10E+05,1.94E+05,1.63E+04,3.49E+00,2.14E-04,2.15E-04,1.14E-04,1.20E-02,1.86E-02,1.89E-01 +8.90E-01,1.76E-01,5.91E-01,5.91E-01,3.42E-01,1.76E-01,7.20E-02,2.95E-02,7.20E-02,2.95E-02,1.94E-02,2.44E+05,9.32E+05,7.73E+05,1.01E+06,1.10E+06,7.54E+05,2.24E+05,2.08E+05,1.70E+04,-1.11E+03,2.22E-04,2.22E-04,1.17E-04,1.16E-02,1.80E-02,1.85E-01 +8.98E-01,1.45E-01,5.85E-01,5.85E-01,4.08E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.48E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.66E+05,1.63E+05,1.42E+05,1.39E+04,6.67E+03,1.83E-04,1.86E-04,1.22E-04,1.39E-02,2.10E-02,1.88E-01 +8.98E-01,1.51E-01,5.92E-01,5.92E-01,3.88E-01,1.51E-01,6.18E-02,2.52E-02,6.18E-02,2.52E-02,1.54E-02,2.44E+05,8.25E+05,6.62E+05,8.99E+05,9.92E+05,7.57E+05,1.75E+05,1.56E+05,1.38E+04,4.81E+03,1.93E-04,1.93E-04,1.17E-04,1.34E-02,2.08E-02,1.98E-01 +8.98E-01,1.57E-01,5.92E-01,5.92E-01,3.87E-01,1.57E-01,6.42E-02,2.62E-02,6.42E-02,2.62E-02,1.61E-02,2.44E+05,8.53E+05,6.90E+05,9.26E+05,1.02E+06,7.68E+05,1.87E+05,1.68E+05,1.45E+04,4.11E+03,2.00E-04,2.00E-04,1.20E-04,1.29E-02,2.01E-02,1.92E-01 +8.98E-01,1.64E-01,5.93E-01,5.93E-01,3.85E-01,1.64E-01,6.66E-02,2.71E-02,6.66E-02,2.71E-02,1.67E-02,2.44E+05,8.81E+05,7.17E+05,9.54E+05,1.05E+06,7.79E+05,2.00E+05,1.81E+05,1.51E+04,3.33E+03,2.08E-04,2.07E-04,1.23E-04,1.24E-02,1.94E-02,1.87E-01 +8.98E-01,1.70E-01,5.94E-01,5.94E-01,3.82E-01,1.70E-01,6.90E-02,2.81E-02,6.90E-02,2.81E-02,1.73E-02,2.44E+05,9.09E+05,7.45E+05,9.82E+05,1.08E+06,7.89E+05,2.13E+05,1.95E+05,1.58E+04,2.47E+03,2.15E-04,2.15E-04,1.26E-04,1.20E-02,1.88E-02,1.83E-01 +8.98E-01,1.76E-01,5.94E-01,5.94E-01,3.80E-01,1.76E-01,7.14E-02,2.90E-02,7.14E-02,2.90E-02,1.80E-02,2.44E+05,9.37E+05,7.73E+05,1.01E+06,1.10E+06,7.99E+05,2.27E+05,2.09E+05,1.64E+04,1.51E+03,2.23E-04,2.22E-04,1.29E-04,1.16E-02,1.83E-02,1.79E-01 +9.00E-01,1.45E-01,5.85E-01,5.85E-01,4.20E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.45E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.79E+05,1.63E+05,1.42E+05,1.39E+04,7.31E+03,1.83E-04,1.86E-04,1.26E-04,1.39E-02,2.10E-02,1.85E-01 +9.00E-01,1.51E-01,5.92E-01,5.92E-01,3.98E-01,1.51E-01,6.16E-02,2.51E-02,6.16E-02,2.51E-02,1.51E-02,2.44E+05,8.26E+05,6.62E+05,9.00E+05,9.92E+05,7.67E+05,1.75E+05,1.56E+05,1.37E+04,5.31E+03,1.93E-04,1.93E-04,1.20E-04,1.33E-02,2.09E-02,1.97E-01 +9.00E-01,1.57E-01,5.93E-01,5.93E-01,3.96E-01,1.57E-01,6.41E-02,2.61E-02,6.41E-02,2.61E-02,1.57E-02,2.44E+05,8.54E+05,6.90E+05,9.27E+05,1.02E+06,7.79E+05,1.88E+05,1.69E+05,1.43E+04,4.65E+03,2.00E-04,2.00E-04,1.23E-04,1.29E-02,2.02E-02,1.91E-01 +9.00E-01,1.64E-01,5.94E-01,5.94E-01,3.94E-01,1.64E-01,6.65E-02,2.70E-02,6.65E-02,2.70E-02,1.64E-02,2.44E+05,8.82E+05,7.18E+05,9.55E+05,1.05E+06,7.90E+05,2.01E+05,1.82E+05,1.50E+04,3.91E+03,2.08E-04,2.07E-04,1.26E-04,1.24E-02,1.95E-02,1.86E-01 +9.00E-01,1.70E-01,5.94E-01,5.94E-01,3.92E-01,1.70E-01,6.89E-02,2.79E-02,6.89E-02,2.79E-02,1.70E-02,2.44E+05,9.10E+05,7.45E+05,9.84E+05,1.08E+06,8.01E+05,2.14E+05,1.95E+05,1.56E+04,3.08E+03,2.16E-04,2.14E-04,1.29E-04,1.20E-02,1.89E-02,1.82E-01 +9.00E-01,1.76E-01,5.95E-01,5.95E-01,3.90E-01,1.76E-01,7.13E-02,2.89E-02,7.13E-02,2.89E-02,1.76E-02,2.44E+05,9.38E+05,7.73E+05,1.01E+06,1.10E+06,8.11E+05,2.28E+05,2.10E+05,1.63E+04,2.17E+03,2.23E-04,2.22E-04,1.32E-04,1.16E-02,1.84E-02,1.78E-01 +9.07E-01,1.45E-01,5.85E-01,5.85E-01,4.61E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.35E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,8.25E+05,1.66E+05,1.42E+05,1.39E+04,9.61E+03,1.83E-04,1.86E-04,1.39E-04,1.39E-02,2.10E-02,1.77E-01 +9.07E-01,1.51E-01,5.93E-01,5.93E-01,4.37E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.41E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.12E+05,1.78E+05,1.57E+05,1.36E+04,7.51E+03,1.93E-04,1.93E-04,1.32E-04,1.33E-02,2.10E-02,1.89E-01 +9.07E-01,1.57E-01,5.96E-01,5.96E-01,4.30E-01,1.57E-01,6.36E-02,2.57E-02,6.36E-02,2.57E-02,1.46E-02,2.44E+05,8.58E+05,6.90E+05,9.31E+05,1.02E+06,8.17E+05,1.90E+05,1.70E+05,1.39E+04,6.53E+03,2.01E-04,2.00E-04,1.33E-04,1.28E-02,2.05E-02,1.89E-01 +9.07E-01,1.64E-01,5.97E-01,5.97E-01,4.28E-01,1.64E-01,6.60E-02,2.66E-02,6.60E-02,2.66E-02,1.52E-02,2.44E+05,8.86E+05,7.18E+05,9.59E+05,1.05E+06,8.29E+05,2.03E+05,1.83E+05,1.45E+04,5.93E+03,2.09E-04,2.07E-04,1.36E-04,1.24E-02,1.98E-02,1.84E-01 +9.07E-01,1.70E-01,5.98E-01,5.98E-01,4.26E-01,1.70E-01,6.84E-02,2.75E-02,6.84E-02,2.75E-02,1.58E-02,2.44E+05,9.14E+05,7.46E+05,9.88E+05,1.08E+06,8.41E+05,2.17E+05,1.97E+05,1.52E+04,5.24E+03,2.17E-04,2.14E-04,1.39E-04,1.20E-02,1.92E-02,1.80E-01 +9.07E-01,1.76E-01,5.98E-01,5.98E-01,4.24E-01,1.76E-01,7.08E-02,2.84E-02,7.08E-02,2.84E-02,1.64E-02,2.44E+05,9.42E+05,7.73E+05,1.02E+06,1.10E+06,8.52E+05,2.31E+05,2.11E+05,1.58E+04,4.47E+03,2.24E-04,2.21E-04,1.42E-04,1.16E-02,1.86E-02,1.76E-01 +9.10E-01,1.45E-01,5.85E-01,5.85E-01,4.78E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.31E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,8.45E+05,1.67E+05,1.42E+05,1.39E+04,1.06E+04,1.83E-04,1.86E-04,1.45E-04,1.39E-02,2.10E-02,1.75E-01 +9.10E-01,1.51E-01,5.93E-01,5.93E-01,4.56E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.36E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.33E+05,1.79E+05,1.57E+05,1.36E+04,8.55E+03,1.93E-04,1.93E-04,1.38E-04,1.33E-02,2.10E-02,1.86E-01 +9.10E-01,1.57E-01,5.98E-01,5.98E-01,4.44E-01,1.57E-01,6.34E-02,2.55E-02,6.34E-02,2.55E-02,1.42E-02,2.44E+05,8.59E+05,6.90E+05,9.33E+05,1.02E+06,8.34E+05,1.91E+05,1.70E+05,1.38E+04,7.35E+03,2.02E-04,2.00E-04,1.37E-04,1.28E-02,2.06E-02,1.89E-01 +9.10E-01,1.64E-01,5.98E-01,5.98E-01,4.43E-01,1.64E-01,6.58E-02,2.64E-02,6.58E-02,2.64E-02,1.47E-02,2.44E+05,8.87E+05,7.18E+05,9.61E+05,1.05E+06,8.46E+05,2.05E+05,1.83E+05,1.44E+04,6.80E+03,2.09E-04,2.07E-04,1.41E-04,1.24E-02,1.99E-02,1.84E-01 +9.10E-01,1.70E-01,5.99E-01,5.99E-01,4.41E-01,1.70E-01,6.81E-02,2.73E-02,6.81E-02,2.73E-02,1.53E-02,2.44E+05,9.16E+05,7.46E+05,9.89E+05,1.08E+06,8.58E+05,2.18E+05,1.97E+05,1.50E+04,6.17E+03,2.17E-04,2.14E-04,1.44E-04,1.20E-02,1.93E-02,1.79E-01 +9.10E-01,1.76E-01,6.00E-01,6.00E-01,4.39E-01,1.76E-01,7.05E-02,2.82E-02,7.05E-02,2.82E-02,1.59E-02,2.44E+05,9.44E+05,7.73E+05,1.02E+06,1.10E+06,8.70E+05,2.33E+05,2.11E+05,1.56E+04,5.46E+03,2.25E-04,2.21E-04,1.47E-04,1.16E-02,1.87E-02,1.75E-01 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.16E-01,1.51E-01,5.93E-01,5.93E-01,4.92E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.27E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.76E+05,1.81E+05,1.57E+05,1.36E+04,1.07E+04,1.93E-04,1.93E-04,1.51E-04,1.33E-02,2.10E-02,1.81E-01 +9.16E-01,1.57E-01,6.00E-01,6.00E-01,4.74E-01,1.57E-01,6.29E-02,2.51E-02,6.29E-02,2.51E-02,1.32E-02,2.44E+05,8.63E+05,6.90E+05,9.36E+05,1.02E+06,8.69E+05,1.94E+05,1.71E+05,1.34E+04,8.99E+03,2.03E-04,2.00E-04,1.46E-04,1.28E-02,2.09E-02,1.89E-01 +9.16E-01,1.64E-01,6.01E-01,6.01E-01,4.72E-01,1.64E-01,6.53E-02,2.61E-02,6.53E-02,2.61E-02,1.37E-02,2.44E+05,8.91E+05,7.18E+05,9.65E+05,1.05E+06,8.82E+05,2.07E+05,1.84E+05,1.40E+04,8.56E+03,2.10E-04,2.07E-04,1.50E-04,1.24E-02,2.02E-02,1.84E-01 +9.16E-01,1.70E-01,6.02E-01,6.02E-01,4.71E-01,1.70E-01,6.77E-02,2.70E-02,6.77E-02,2.70E-02,1.43E-02,2.44E+05,9.19E+05,7.46E+05,9.93E+05,1.08E+06,8.95E+05,2.21E+05,1.98E+05,1.45E+04,8.05E+03,2.18E-04,2.14E-04,1.53E-04,1.20E-02,1.96E-02,1.79E-01 +9.16E-01,1.76E-01,6.02E-01,6.02E-01,4.69E-01,1.76E-01,7.00E-02,2.78E-02,7.00E-02,2.78E-02,1.48E-02,2.44E+05,9.48E+05,7.73E+05,1.02E+06,1.10E+06,9.07E+05,2.35E+05,2.13E+05,1.51E+04,7.46E+03,2.26E-04,2.21E-04,1.57E-04,1.16E-02,1.90E-02,1.75E-01 +9.20E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.20E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.20E-01,1.57E-01,6.02E-01,6.02E-01,4.96E-01,1.57E-01,6.27E-02,2.50E-02,6.27E-02,2.50E-02,1.26E-02,2.44E+05,8.64E+05,6.90E+05,9.38E+05,1.02E+06,8.96E+05,1.95E+05,1.72E+05,1.32E+04,1.03E+04,2.03E-04,2.00E-04,1.53E-04,1.28E-02,2.10E-02,1.88E-01 +9.20E-01,1.64E-01,6.03E-01,6.03E-01,4.93E-01,1.64E-01,6.50E-02,2.58E-02,6.50E-02,2.58E-02,1.31E-02,2.44E+05,8.94E+05,7.18E+05,9.67E+05,1.05E+06,9.07E+05,2.09E+05,1.85E+05,1.37E+04,9.75E+03,2.11E-04,2.07E-04,1.56E-04,1.24E-02,2.04E-02,1.84E-01 +9.20E-01,1.70E-01,6.04E-01,6.04E-01,4.91E-01,1.70E-01,6.73E-02,2.67E-02,6.73E-02,2.67E-02,1.36E-02,2.44E+05,9.22E+05,7.46E+05,9.96E+05,1.08E+06,9.20E+05,2.23E+05,1.99E+05,1.42E+04,9.32E+03,2.19E-04,2.14E-04,1.60E-04,1.19E-02,1.97E-02,1.79E-01 +9.20E-01,1.76E-01,6.04E-01,6.04E-01,4.89E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.41E-02,2.44E+05,9.51E+05,7.73E+05,1.02E+06,1.10E+06,9.33E+05,2.37E+05,2.13E+05,1.48E+04,8.82E+03,2.27E-04,2.21E-04,1.63E-04,1.16E-02,1.92E-02,1.75E-01 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,6.06E-01,6.06E-01,5.17E-01,1.70E-01,6.69E-02,2.64E-02,6.69E-02,2.64E-02,1.27E-02,2.44E+05,9.25E+05,7.46E+05,9.99E+05,1.08E+06,9.53E+05,2.25E+05,2.00E+05,1.39E+04,1.09E+04,2.20E-04,2.14E-04,1.68E-04,1.19E-02,2.00E-02,1.81E-01 +9.25E-01,1.76E-01,6.07E-01,6.07E-01,5.15E-01,1.76E-01,6.92E-02,2.72E-02,6.92E-02,2.72E-02,1.32E-02,2.44E+05,9.54E+05,7.73E+05,1.03E+06,1.10E+06,9.67E+05,2.39E+05,2.14E+05,1.44E+04,1.05E+04,2.28E-04,2.21E-04,1.72E-04,1.15E-02,1.94E-02,1.77E-01 +9.30E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution.pickle b/solution.pickle new file mode 100644 index 0000000000000000000000000000000000000000..4fe7e835fc379923174d79278305f38b9144ce7b GIT binary patch literal 5957 zcmeHLZ)_Y#6~8;%mviF8apE|^QH|4<;;8g!(l%-!VK;S?)IG9E?KB^tVVS#~ySelJ zIrfiZhlWrjJ2n~#OCCPZKcdhUB&1e=5Tq#3v<-Y|;TsA~g=mW)LUrH+D&&87Z+7?2 zvGeEnOjf#^-I@2^ym|B9Z{C})H-Gyxs}u4$BzTME7}ON}-m*ccmn}Fh&3b|BIwj)M zY<0}DoNU!G$85(c6H|9-$)%oGc5J~r_tg3a>)kVA{ZrzQ=;N)<2z3v*WuJ;ko+*}1 zY7>hJ-tIYO;Ddy0wOklBp=Whns%{XU=mns#Y)|Y5F_}SHKuKeQx9*_S=-pvD2L$Cy z9k*O6+n^J&2;OA}R&^{3ys!c*F#R%dT>@Nfpmf2pJ>LxqzL7(&KUSs4lqxJm+(b?@}aZM ziNyLRzV*gOeX~lV?GK(g(fea}R%x{TYUe9E-#<93G}_+r?zyj3j?F5Kw!eEDpIN2R z_WABl|LM;38Ku$oTwojvW zyqTTn+dcG?bIKCf-K~o+DF4P?`{<(b!9fg!%TXL8)No&uQF~6AKsOt|5c$I;Wxw3O zE0JF(R4MM{_31As-Hvm-I`LTrC**`o|JKZQ7IMixvYfa2{l|tQVrujrM?PUJ$CfG@*-I0&- zkpFVTmr%oaNUGs@N{#Io>UkxiPpEQPuO!tl?o;ah_u+Fz3FX)A74oOlaJ{KW|0Y!c z0`m5GNG@0h>qKy6T~|YE&n>WQ1T-53$(ZhDAQ_Ke4NFet|0>L)% zrII(RIs1qi$UMFSNNkVlU?Qjx%<@4hrg&Np;L`(XX}usbe&B71=jBa?Q-HA+T^2AJ zOjD~Tr~%V1(m`Wt`;tahBT)aaHjvROWju@pN~C`u+sxW>37Th1*)FJ*pu~ZmrPvej z#h?}}S@$TIW#xRc$lm3<(G93ER3IjChk&pqc%LSx)!0%k;NA1NOQw^DVo3^V*Gtsb z=k!2<)3nVV6XQ_-s?DV#v%(3 z@wV7*)ZbmK>CQ&@ida|6f|9gol9DHQTHC#MX!~BELzDKyWG$eLWMn%uwo_w|OtJxu zH$!b%6l_UA^PnO#;kQKte}HNi!$Om+O~4A0<}$KJ55eF*j}5Xf@~+1rT&1V?J66@P z!IR`R;b!o5o!E{&W;ua}o#3M|7n|UBU8Ob@%qErLk0tzEA-t_7G*m-cU0r@O^T!`Ozv=kPN4J>CpR7K}im=<>x}8-1pyKeOzS2Y>zg-$oQM zf&S36YY1q5h67FJ+2%j2%R~dI!HrS>bM~uuC(ivd>R+!yjZ$RnA5P z0q?Az0tn{u36$g=wNKp(EQ{bBOh=W#wMleQ1cwCP=(Hlh?U3)%UvMqWx>bT$@0m+3 zHw^Z`%UZ-HB?`;tZ4a4FVR%>g4J+nd5eFO&c`sXI!AJ<~@Wx2bBM+KqL3PoZON1Mg zko8C=A3!9Q;Xvgr9ym1~0l7r3HJ8M4B$vYfae2+O=4wST9K9@_MgmaTrU!I+7~!1n z^OpEsE>r^kH8g>uXDv_dzUtcO$$8gC3KUIK`@vkx2V%?X;cf`Nynemb8=n1q+1}`E z@0DHyHtEO2;T{NrsE7TO9c9PZao(-TRKDFBD#qQYMw|+N{HI3Lb(+ioFFB1jt6a@hAJ#T#eUBsmy&X_@rODL!TJuB zVB6C7W;fiQ-5{~7nLq%EN;i=4w2W6oS`3(Ubb?ntg<~0j2_3@O6YLa3CIBqPWIzD2 zM81-i?9nb%GVlc|? d)Nv6Mn8x-{zPJc!5IDOZfFq=wVG#f>{TIJ&L0JF* literal 0 HcmV?d00001 diff --git a/src/wrd/surrogate_models/energy_surrogate.py b/src/wrd/surrogate_models/energy_surrogate.py new file mode 100644 index 0000000..cc65c9e --- /dev/null +++ b/src/wrd/surrogate_models/energy_surrogate.py @@ -0,0 +1,186 @@ +import pandas as pd +import numpy as np +import os + +from pyomo.environ import ( + Param, + Var, + value, + units as pyunits, + ConcreteModel, +) + +from idaes.core.surrogate.pysmo_surrogate import ( + PysmoRBFTrainer, + PysmoPolyTrainer, + PysmoSurrogate, +) +from idaes.core.surrogate.sampling.data_utils import ( + split_training_validation, +) # Yes, it's a random split +from idaes.core.surrogate.plotting.sm_plotter import ( + surrogate_scatter2D, + surrogate_parity, + surrogate_residual, +) +from idaes.core.util.scaling import calculate_variable_from_constraint + +from idaes.core.surrogate.pysmo.sampling import LatinHypercubeSampling +from idaes.core.surrogate.surrogate_block import SurrogateBlock +from matplotlib import pyplot as plt +from watertap.core.solvers import get_solver + + +# Load Data +# Get the absolute path of the current script +current_script_path = os.path.abspath(__file__) +# Get the directory containing the current script +current_directory = os.path.dirname(current_script_path) +filename = "ro_sweep_brine_lim.csv" +data_path = os.path.join(current_directory, filename) +Data = pd.read_csv(data_path) +# Create PySMO Surrogate Model + +input_data = Data.iloc[:,0:1] ## RR,feed flow +output_data = Data.iloc[:,17] #Check exact colum number for total power +input_labels = [Data.columns[0], Data.columns[1]] +output_labels = [Data.columns[17]]#Check exact colum number for total power + +# Remove the rows with nan values +Data = Data.dropna(subset=output_labels) + +# Check data is all expected +assert pd.to_numeric(Data[input_labels[0]], errors="coerce").notnull().all() +assert pd.to_numeric(Data[output_labels[0]], errors="coerce").notnull().all() + +# Scale Data +Data_Scaled = Data.copy() +# Change this as appropriate +Data_Scaled[output_labels[0]] = Data[output_labels[0]].mul(1e-5) # Power is in W, scale down +RRmin = min(Data_Scaled[input_labels[0]]) +RRmax = max(Data_Scaled[input_labels[0]]) +flowmin = min(Data_Scaled[input_labels[1]]) +flowmax = max(Data_Scaled[input_labels[1]]) + +input_bounds = {'Recovery': (RRmin, RRmax), 'Feed Flow': (flowmin, flowmax)} + +# Sample Data +n_data = output_data.size +# training_fraction = 0.8 # If I have like 30 points, not sure have to do training split +# data_training, data_validation = split_training_validation(Data_Scaled, training_fraction, seed= n_data) +# Create Surrogate +trainer = PysmoPolyTrainer( + input_labels=input_labels, + output_labels=output_labels, + training_dataframe = Data_Scaled + ) +trainer.config.maximum_polynomial_order = 2 + +trained_surr = trainer.train_surrogate() +Surrogate = PysmoSurrogate(trained_surr, input_labels, output_labels, input_bounds) +# Visualize Surrogate +m = ConcreteModel() +m.flowrate = Var() +m.recovery = Var() +m.power = Var() + +m.surrogate_blk = SurrogateBlock(concrete=True) +m.surrogate = Surrogate +m.surrogate_blk.build_model( + m.surrogate, + input_vars=[m.recovery,m.flowrate], + output_vars=[m.power], +) +m.surrogate_blk.pysmo_constraint.display() # display() +#m.surrogate_blk.pysmo_constraint["F_t"].pprint() + +minx1, maxx1 = m.recovery.bounds +minx2, maxx2 = m.flowrate.bounds +miny, maxy = m.power.bounds + +num_points = 25 +x1_vals = np.linspace(minx1, maxx1, num=num_points) +x2_vals = np.linspace(minx2, maxx2, num=num_points) +y_vals = np.zeros((num_points, num_points)) +solver = get_solver() +for i in range(num_points): + for j in range(num_points): + m.recovery.fix(x1_vals[i]) + m.flowrate.fix(x2_vals[j]) + calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Total Power (W)"]) + # m.surrogate_blk.display() + # results = solver.solve(m, tee=True) + # m.surrogate_blk.display() + # print(m.flowrate.value, m.power.value) + y_vals[i, j] = m.power.value + # assert False + +X1, X2 = np.meshgrid(x1_vals, x2_vals, indexing="ij") + +fig = plt.figure() +ax = fig.add_subplot(111, projection="3d") +ax.plot_surface(X1, X2, y_vals, cmap="viridis", alpha=0.85) +# ax.scatter(X1.ravel(), X2.ravel(), y_vals.ravel(), c="r", s=12, label="Predicted") +ax.scatter( + Data_Scaled[input_labels[0]], + Data_Scaled[input_labels[1]], + Data_Scaled[output_labels[0]], + c="r", + s=18, + alpha=0.85, + label="Actual Data", +) + +ax.set_xlabel("RR") +ax.set_ylabel("Feed Flowrate (m3/s)") +ax.set_zlabel("Power (scaled)") # Check units and scaling +ax.set_title("Train Power Consumption Surrogate") +ax.legend() + +# Optionally Show the validation data +# small_val_data = data_validation.sample(n=num_points*2) +# plt.scatter( +# small_val_data["UV1_mgd"], +# small_val_data["UV1_kW"], +# c="k", +# label='Random Selection of Data Points' +# ) +plt.show() + +# Residual plot at actual data points: percent difference = 100 * (surrogate - actual) / actual +actual_x1 = Data_Scaled[input_labels[0]].to_numpy() +actual_x2 = Data_Scaled[input_labels[1]].to_numpy() +actual_z = Data_Scaled[output_labels[0]].to_numpy() +predicted_z = np.zeros_like(actual_z, dtype=float) + +for k, (x1, x2) in enumerate(zip(actual_x1, actual_x2)): + m.recovery.fix(x1) + m.flowrate.fix(x2) + calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Total Power (W)"]) + predicted_z[k] = m.power.value + +denominator = np.where(np.abs(actual_z) > 1e-12, actual_z, np.nan) +percent_diff = 100.0 * (predicted_z - actual_z) / denominator +valid_mask = np.isfinite(percent_diff) + +fig_res = plt.figure() +ax_res = fig_res.add_subplot(111, projection="3d") +res_scatter = ax_res.scatter( + actual_x1[valid_mask], + actual_x2[valid_mask], + percent_diff[valid_mask], + c=percent_diff[valid_mask], + cmap="coolwarm", + s=24, +) +ax_res.set_xlabel("RR") +ax_res.set_ylabel("Feed Flowrate (m3/s)") +ax_res.set_zlabel("Percent Difference (%)") +ax_res.set_title("Surrogate Percent Difference at Actual Data Points") +fig_res.colorbar(res_scatter, ax=ax_res, shrink=0.7, label="Percent Difference (%)") +plt.show() + + +# Save Surrogate +surr_name = f"ro_power_poly_fit_order_{trainer.config.maximum_polynomial_order}.json" +Surrogate.save_to_file(os.path.join(current_directory, surr_name), overwrite=True) \ No newline at end of file diff --git a/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json b/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json new file mode 100644 index 0000000..84a8210 --- /dev/null +++ b/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json @@ -0,0 +1 @@ +{"model_encoding": {"Total Power (W)": {"attr": {"regression_data_columns": ["Recovery", "Feed Flow"], "multinomials": 0, "additional_term_expressions": [], "optimal_weights_array": [[9.197335683012916], [-22.627606870773946], [-5.922856990057125], [14.72411995003637], [82.7066316695091]], "final_polynomial_order": 2, "errors": {"MAE": 0.005591160591864165, "MSE": 4.6028436028154616e-05, "R2": 0.9991455892554374, "Adjusted R2": 0.9990743883600571}, "extra_terms_feature_vector": ["IndexedParam[Recovery]", "IndexedParam[Feed Flow]"]}, "map": {"regression_data_columns": "list", "multinomials": "str", "additional_term_expressions": "list", "optimal_weights_array": "numpy", "final_polynomial_order": "str", "errors": "str", "extra_terms_feature_vector": "other"}}}, "input_labels": ["Recovery", "Feed Flow"], "output_labels": ["Total Power (W)"], "input_bounds": {"Recovery": [0.88, 0.925], "Feed Flow": [0.145, 0.176]}, "surrogate_type": "poly"} \ No newline at end of file diff --git a/src/wrd/surrogate_models/ro_sweep_brine_lim.csv b/src/wrd/surrogate_models/ro_sweep_brine_lim.csv new file mode 100644 index 0000000..596ae01 --- /dev/null +++ b/src/wrd/surrogate_models/ro_sweep_brine_lim.csv @@ -0,0 +1,67 @@ +Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) +8.80E-01,1.45E-01,5.84E-01,5.84E-01,3.07E-01,1.45E-01,6.03E-02,2.51E-02,6.03E-02,2.51E-02,1.74E-02,2.44E+05,7.89E+05,6.33E+05,8.63E+05,9.63E+05,6.57E+05,1.57E+05,1.42E+05,1.40E+04,1.23E+03,1.83E-04,1.86E-04,9.08E-05,1.39E-02,2.09E-02,2.20E-01 +8.80E-01,1.51E-01,5.84E-01,5.84E-01,3.05E-01,1.51E-01,6.28E-02,2.61E-02,6.28E-02,2.61E-02,1.81E-02,2.44E+05,8.16E+05,6.61E+05,8.90E+05,9.91E+05,6.66E+05,1.69E+05,1.54E+05,1.47E+04,2.88E+02,1.90E-04,1.93E-04,9.33E-05,1.34E-02,2.02E-02,2.14E-01 +8.80E-01,1.57E-01,5.85E-01,5.85E-01,3.03E-01,1.57E-01,6.53E-02,2.71E-02,6.53E-02,2.71E-02,1.89E-02,2.44E+05,8.44E+05,6.89E+05,9.17E+05,1.02E+06,6.75E+05,1.81E+05,1.66E+05,1.54E+04,-7.47E+02,1.98E-04,2.01E-04,9.57E-05,1.29E-02,1.95E-02,2.09E-01 +8.80E-01,1.64E-01,5.86E-01,5.86E-01,3.01E-01,1.64E-01,6.78E-02,2.81E-02,6.78E-02,2.81E-02,1.96E-02,2.44E+05,8.71E+05,7.17E+05,9.45E+05,1.05E+06,6.83E+05,1.93E+05,1.79E+05,1.61E+04,-1.88E+03,2.05E-04,2.08E-04,9.80E-05,1.24E-02,1.88E-02,2.04E-01 +8.80E-01,1.70E-01,5.86E-01,5.86E-01,2.99E-01,1.70E-01,7.03E-02,2.91E-02,7.03E-02,2.91E-02,2.04E-02,2.44E+05,8.99E+05,7.45E+05,9.73E+05,1.08E+06,6.91E+05,2.06E+05,1.92E+05,1.69E+04,-3.11E+03,2.13E-04,2.15E-04,1.00E-04,1.20E-02,1.82E-02,1.99E-01 +8.80E-01,1.76E-01,5.87E-01,5.87E-01,2.96E-01,1.76E-01,7.27E-02,3.00E-02,7.27E-02,3.00E-02,2.11E-02,2.44E+05,9.27E+05,7.73E+05,1.00E+06,1.10E+06,6.99E+05,2.20E+05,2.06E+05,1.77E+04,-4.43E+03,2.20E-04,2.22E-04,1.02E-04,1.16E-02,1.77E-02,1.95E-01 +8.89E-01,1.45E-01,5.85E-01,5.85E-01,3.56E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.61E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.09E+05,1.60E+05,1.42E+05,1.39E+04,3.83E+03,1.83E-04,1.86E-04,1.06E-04,1.39E-02,2.10E-02,2.02E-01 +8.89E-01,1.51E-01,5.88E-01,5.88E-01,3.46E-01,1.51E-01,6.23E-02,2.57E-02,6.23E-02,2.57E-02,1.68E-02,2.44E+05,8.20E+05,6.61E+05,8.94E+05,9.91E+05,7.11E+05,1.72E+05,1.55E+05,1.43E+04,2.56E+03,1.91E-04,1.93E-04,1.05E-04,1.34E-02,2.05E-02,2.04E-01 +8.89E-01,1.57E-01,5.89E-01,5.89E-01,3.44E-01,1.57E-01,6.48E-02,2.67E-02,6.48E-02,2.67E-02,1.75E-02,2.44E+05,8.48E+05,6.89E+05,9.22E+05,1.02E+06,7.21E+05,1.84E+05,1.67E+05,1.50E+04,1.70E+03,1.99E-04,2.00E-04,1.08E-04,1.29E-02,1.98E-02,1.99E-01 +8.89E-01,1.64E-01,5.89E-01,5.89E-01,3.42E-01,1.64E-01,6.72E-02,2.76E-02,6.72E-02,2.76E-02,1.82E-02,2.44E+05,8.76E+05,7.17E+05,9.50E+05,1.05E+06,7.31E+05,1.96E+05,1.80E+05,1.56E+04,7.41E+02,2.06E-04,2.08E-04,1.10E-04,1.24E-02,1.91E-02,1.94E-01 +8.89E-01,1.70E-01,5.90E-01,5.90E-01,3.40E-01,1.70E-01,6.97E-02,2.86E-02,6.97E-02,2.86E-02,1.89E-02,2.44E+05,9.04E+05,7.45E+05,9.77E+05,1.08E+06,7.40E+05,2.10E+05,1.94E+05,1.64E+04,-3.05E+02,2.14E-04,2.15E-04,1.13E-04,1.20E-02,1.85E-02,1.89E-01 +8.89E-01,1.76E-01,5.91E-01,5.91E-01,3.38E-01,1.76E-01,7.21E-02,2.95E-02,7.21E-02,2.95E-02,1.95E-02,2.44E+05,9.32E+05,7.73E+05,1.01E+06,1.10E+06,7.49E+05,2.23E+05,2.08E+05,1.71E+04,-1.44E+03,2.21E-04,2.22E-04,1.15E-04,1.16E-02,1.80E-02,1.85E-01 +8.90E-01,1.45E-01,5.85E-01,5.85E-01,3.62E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.60E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.16E+05,1.60E+05,1.42E+05,1.39E+04,4.14E+03,1.83E-04,1.86E-04,1.07E-04,1.39E-02,2.10E-02,2.00E-01 +8.90E-01,1.51E-01,5.88E-01,5.88E-01,3.51E-01,1.51E-01,6.23E-02,2.56E-02,6.23E-02,2.56E-02,1.66E-02,2.44E+05,8.21E+05,6.61E+05,8.95E+05,9.91E+05,7.16E+05,1.72E+05,1.55E+05,1.42E+04,2.81E+03,1.91E-04,1.93E-04,1.06E-04,1.34E-02,2.05E-02,2.03E-01 +8.90E-01,1.57E-01,5.89E-01,5.89E-01,3.49E-01,1.57E-01,6.47E-02,2.66E-02,6.47E-02,2.66E-02,1.73E-02,2.44E+05,8.48E+05,6.89E+05,9.22E+05,1.02E+06,7.26E+05,1.84E+05,1.67E+05,1.49E+04,1.97E+03,1.99E-04,2.00E-04,1.09E-04,1.29E-02,1.98E-02,1.98E-01 +8.90E-01,1.64E-01,5.90E-01,5.90E-01,3.47E-01,1.64E-01,6.72E-02,2.76E-02,6.72E-02,2.76E-02,1.80E-02,2.44E+05,8.76E+05,7.17E+05,9.50E+05,1.05E+06,7.36E+05,1.97E+05,1.80E+05,1.56E+04,1.03E+03,2.06E-04,2.08E-04,1.12E-04,1.24E-02,1.92E-02,1.93E-01 +8.90E-01,1.70E-01,5.90E-01,5.90E-01,3.45E-01,1.70E-01,6.96E-02,2.85E-02,6.96E-02,2.85E-02,1.87E-02,2.44E+05,9.04E+05,7.45E+05,9.78E+05,1.08E+06,7.45E+05,2.10E+05,1.94E+05,1.63E+04,3.49E+00,2.14E-04,2.15E-04,1.14E-04,1.20E-02,1.86E-02,1.89E-01 +8.90E-01,1.76E-01,5.91E-01,5.91E-01,3.42E-01,1.76E-01,7.20E-02,2.95E-02,7.20E-02,2.95E-02,1.94E-02,2.44E+05,9.32E+05,7.73E+05,1.01E+06,1.10E+06,7.54E+05,2.24E+05,2.08E+05,1.70E+04,-1.11E+03,2.22E-04,2.22E-04,1.17E-04,1.16E-02,1.80E-02,1.85E-01 +8.98E-01,1.45E-01,5.85E-01,5.85E-01,4.08E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.48E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.66E+05,1.63E+05,1.42E+05,1.39E+04,6.67E+03,1.83E-04,1.86E-04,1.22E-04,1.39E-02,2.10E-02,1.88E-01 +8.98E-01,1.51E-01,5.92E-01,5.92E-01,3.88E-01,1.51E-01,6.18E-02,2.52E-02,6.18E-02,2.52E-02,1.54E-02,2.44E+05,8.25E+05,6.62E+05,8.99E+05,9.92E+05,7.57E+05,1.75E+05,1.56E+05,1.38E+04,4.81E+03,1.93E-04,1.93E-04,1.17E-04,1.34E-02,2.08E-02,1.98E-01 +8.98E-01,1.57E-01,5.92E-01,5.92E-01,3.87E-01,1.57E-01,6.42E-02,2.62E-02,6.42E-02,2.62E-02,1.61E-02,2.44E+05,8.53E+05,6.90E+05,9.26E+05,1.02E+06,7.68E+05,1.87E+05,1.68E+05,1.45E+04,4.11E+03,2.00E-04,2.00E-04,1.20E-04,1.29E-02,2.01E-02,1.92E-01 +8.98E-01,1.64E-01,5.93E-01,5.93E-01,3.85E-01,1.64E-01,6.66E-02,2.71E-02,6.66E-02,2.71E-02,1.67E-02,2.44E+05,8.81E+05,7.17E+05,9.54E+05,1.05E+06,7.79E+05,2.00E+05,1.81E+05,1.51E+04,3.33E+03,2.08E-04,2.07E-04,1.23E-04,1.24E-02,1.94E-02,1.87E-01 +8.98E-01,1.70E-01,5.94E-01,5.94E-01,3.82E-01,1.70E-01,6.90E-02,2.81E-02,6.90E-02,2.81E-02,1.73E-02,2.44E+05,9.09E+05,7.45E+05,9.82E+05,1.08E+06,7.89E+05,2.13E+05,1.95E+05,1.58E+04,2.47E+03,2.15E-04,2.15E-04,1.26E-04,1.20E-02,1.88E-02,1.83E-01 +8.98E-01,1.76E-01,5.94E-01,5.94E-01,3.80E-01,1.76E-01,7.14E-02,2.90E-02,7.14E-02,2.90E-02,1.80E-02,2.44E+05,9.37E+05,7.73E+05,1.01E+06,1.10E+06,7.99E+05,2.27E+05,2.09E+05,1.64E+04,1.51E+03,2.23E-04,2.22E-04,1.29E-04,1.16E-02,1.83E-02,1.79E-01 +9.00E-01,1.45E-01,5.85E-01,5.85E-01,4.20E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.45E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.79E+05,1.63E+05,1.42E+05,1.39E+04,7.31E+03,1.83E-04,1.86E-04,1.26E-04,1.39E-02,2.10E-02,1.85E-01 +9.00E-01,1.51E-01,5.92E-01,5.92E-01,3.98E-01,1.51E-01,6.16E-02,2.51E-02,6.16E-02,2.51E-02,1.51E-02,2.44E+05,8.26E+05,6.62E+05,9.00E+05,9.92E+05,7.67E+05,1.75E+05,1.56E+05,1.37E+04,5.31E+03,1.93E-04,1.93E-04,1.20E-04,1.33E-02,2.09E-02,1.97E-01 +9.00E-01,1.57E-01,5.93E-01,5.93E-01,3.96E-01,1.57E-01,6.41E-02,2.61E-02,6.41E-02,2.61E-02,1.57E-02,2.44E+05,8.54E+05,6.90E+05,9.27E+05,1.02E+06,7.79E+05,1.88E+05,1.69E+05,1.43E+04,4.65E+03,2.00E-04,2.00E-04,1.23E-04,1.29E-02,2.02E-02,1.91E-01 +9.00E-01,1.64E-01,5.94E-01,5.94E-01,3.94E-01,1.64E-01,6.65E-02,2.70E-02,6.65E-02,2.70E-02,1.64E-02,2.44E+05,8.82E+05,7.18E+05,9.55E+05,1.05E+06,7.90E+05,2.01E+05,1.82E+05,1.50E+04,3.91E+03,2.08E-04,2.07E-04,1.26E-04,1.24E-02,1.95E-02,1.86E-01 +9.00E-01,1.70E-01,5.94E-01,5.94E-01,3.92E-01,1.70E-01,6.89E-02,2.79E-02,6.89E-02,2.79E-02,1.70E-02,2.44E+05,9.10E+05,7.45E+05,9.84E+05,1.08E+06,8.01E+05,2.14E+05,1.95E+05,1.56E+04,3.08E+03,2.16E-04,2.14E-04,1.29E-04,1.20E-02,1.89E-02,1.82E-01 +9.00E-01,1.76E-01,5.95E-01,5.95E-01,3.90E-01,1.76E-01,7.13E-02,2.89E-02,7.13E-02,2.89E-02,1.76E-02,2.44E+05,9.38E+05,7.73E+05,1.01E+06,1.10E+06,8.11E+05,2.28E+05,2.10E+05,1.63E+04,2.17E+03,2.23E-04,2.22E-04,1.32E-04,1.16E-02,1.84E-02,1.78E-01 +9.07E-01,1.45E-01,5.85E-01,5.85E-01,4.61E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.35E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,8.25E+05,1.66E+05,1.42E+05,1.39E+04,9.61E+03,1.83E-04,1.86E-04,1.39E-04,1.39E-02,2.10E-02,1.77E-01 +9.07E-01,1.51E-01,5.93E-01,5.93E-01,4.37E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.41E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.12E+05,1.78E+05,1.57E+05,1.36E+04,7.51E+03,1.93E-04,1.93E-04,1.32E-04,1.33E-02,2.10E-02,1.89E-01 +9.07E-01,1.57E-01,5.96E-01,5.96E-01,4.30E-01,1.57E-01,6.36E-02,2.57E-02,6.36E-02,2.57E-02,1.46E-02,2.44E+05,8.58E+05,6.90E+05,9.31E+05,1.02E+06,8.17E+05,1.90E+05,1.70E+05,1.39E+04,6.53E+03,2.01E-04,2.00E-04,1.33E-04,1.28E-02,2.05E-02,1.89E-01 +9.07E-01,1.64E-01,5.97E-01,5.97E-01,4.28E-01,1.64E-01,6.60E-02,2.66E-02,6.60E-02,2.66E-02,1.52E-02,2.44E+05,8.86E+05,7.18E+05,9.59E+05,1.05E+06,8.29E+05,2.03E+05,1.83E+05,1.45E+04,5.93E+03,2.09E-04,2.07E-04,1.36E-04,1.24E-02,1.98E-02,1.84E-01 +9.07E-01,1.70E-01,5.98E-01,5.98E-01,4.26E-01,1.70E-01,6.84E-02,2.75E-02,6.84E-02,2.75E-02,1.58E-02,2.44E+05,9.14E+05,7.46E+05,9.88E+05,1.08E+06,8.41E+05,2.17E+05,1.97E+05,1.52E+04,5.24E+03,2.17E-04,2.14E-04,1.39E-04,1.20E-02,1.92E-02,1.80E-01 +9.07E-01,1.76E-01,5.98E-01,5.98E-01,4.24E-01,1.76E-01,7.08E-02,2.84E-02,7.08E-02,2.84E-02,1.64E-02,2.44E+05,9.42E+05,7.73E+05,1.02E+06,1.10E+06,8.52E+05,2.31E+05,2.11E+05,1.58E+04,4.47E+03,2.24E-04,2.21E-04,1.42E-04,1.16E-02,1.86E-02,1.76E-01 +9.10E-01,1.45E-01,5.85E-01,5.85E-01,4.78E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.31E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,8.45E+05,1.67E+05,1.42E+05,1.39E+04,1.06E+04,1.83E-04,1.86E-04,1.45E-04,1.39E-02,2.10E-02,1.75E-01 +9.10E-01,1.51E-01,5.93E-01,5.93E-01,4.56E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.36E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.33E+05,1.79E+05,1.57E+05,1.36E+04,8.55E+03,1.93E-04,1.93E-04,1.38E-04,1.33E-02,2.10E-02,1.86E-01 +9.10E-01,1.57E-01,5.98E-01,5.98E-01,4.44E-01,1.57E-01,6.34E-02,2.55E-02,6.34E-02,2.55E-02,1.42E-02,2.44E+05,8.59E+05,6.90E+05,9.33E+05,1.02E+06,8.34E+05,1.91E+05,1.70E+05,1.38E+04,7.35E+03,2.02E-04,2.00E-04,1.37E-04,1.28E-02,2.06E-02,1.89E-01 +9.10E-01,1.64E-01,5.98E-01,5.98E-01,4.43E-01,1.64E-01,6.58E-02,2.64E-02,6.58E-02,2.64E-02,1.47E-02,2.44E+05,8.87E+05,7.18E+05,9.61E+05,1.05E+06,8.46E+05,2.05E+05,1.83E+05,1.44E+04,6.80E+03,2.09E-04,2.07E-04,1.41E-04,1.24E-02,1.99E-02,1.84E-01 +9.10E-01,1.70E-01,5.99E-01,5.99E-01,4.41E-01,1.70E-01,6.81E-02,2.73E-02,6.81E-02,2.73E-02,1.53E-02,2.44E+05,9.16E+05,7.46E+05,9.89E+05,1.08E+06,8.58E+05,2.18E+05,1.97E+05,1.50E+04,6.17E+03,2.17E-04,2.14E-04,1.44E-04,1.20E-02,1.93E-02,1.79E-01 +9.10E-01,1.76E-01,6.00E-01,6.00E-01,4.39E-01,1.76E-01,7.05E-02,2.82E-02,7.05E-02,2.82E-02,1.59E-02,2.44E+05,9.44E+05,7.73E+05,1.02E+06,1.10E+06,8.70E+05,2.33E+05,2.11E+05,1.56E+04,5.46E+03,2.25E-04,2.21E-04,1.47E-04,1.16E-02,1.87E-02,1.75E-01 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.16E-01,1.51E-01,5.93E-01,5.93E-01,4.92E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.27E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.76E+05,1.81E+05,1.57E+05,1.36E+04,1.07E+04,1.93E-04,1.93E-04,1.51E-04,1.33E-02,2.10E-02,1.81E-01 +9.16E-01,1.57E-01,6.00E-01,6.00E-01,4.74E-01,1.57E-01,6.29E-02,2.51E-02,6.29E-02,2.51E-02,1.32E-02,2.44E+05,8.63E+05,6.90E+05,9.36E+05,1.02E+06,8.69E+05,1.94E+05,1.71E+05,1.34E+04,8.99E+03,2.03E-04,2.00E-04,1.46E-04,1.28E-02,2.09E-02,1.89E-01 +9.16E-01,1.64E-01,6.01E-01,6.01E-01,4.72E-01,1.64E-01,6.53E-02,2.61E-02,6.53E-02,2.61E-02,1.37E-02,2.44E+05,8.91E+05,7.18E+05,9.65E+05,1.05E+06,8.82E+05,2.07E+05,1.84E+05,1.40E+04,8.56E+03,2.10E-04,2.07E-04,1.50E-04,1.24E-02,2.02E-02,1.84E-01 +9.16E-01,1.70E-01,6.02E-01,6.02E-01,4.71E-01,1.70E-01,6.77E-02,2.70E-02,6.77E-02,2.70E-02,1.43E-02,2.44E+05,9.19E+05,7.46E+05,9.93E+05,1.08E+06,8.95E+05,2.21E+05,1.98E+05,1.45E+04,8.05E+03,2.18E-04,2.14E-04,1.53E-04,1.20E-02,1.96E-02,1.79E-01 +9.16E-01,1.76E-01,6.02E-01,6.02E-01,4.69E-01,1.76E-01,7.00E-02,2.78E-02,7.00E-02,2.78E-02,1.48E-02,2.44E+05,9.48E+05,7.73E+05,1.02E+06,1.10E+06,9.07E+05,2.35E+05,2.13E+05,1.51E+04,7.46E+03,2.26E-04,2.21E-04,1.57E-04,1.16E-02,1.90E-02,1.75E-01 +9.20E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.20E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.20E-01,1.57E-01,6.02E-01,6.02E-01,4.96E-01,1.57E-01,6.27E-02,2.50E-02,6.27E-02,2.50E-02,1.26E-02,2.44E+05,8.64E+05,6.90E+05,9.38E+05,1.02E+06,8.96E+05,1.95E+05,1.72E+05,1.32E+04,1.03E+04,2.03E-04,2.00E-04,1.53E-04,1.28E-02,2.10E-02,1.88E-01 +9.20E-01,1.64E-01,6.03E-01,6.03E-01,4.93E-01,1.64E-01,6.50E-02,2.58E-02,6.50E-02,2.58E-02,1.31E-02,2.44E+05,8.94E+05,7.18E+05,9.67E+05,1.05E+06,9.07E+05,2.09E+05,1.85E+05,1.37E+04,9.75E+03,2.11E-04,2.07E-04,1.56E-04,1.24E-02,2.04E-02,1.84E-01 +9.20E-01,1.70E-01,6.04E-01,6.04E-01,4.91E-01,1.70E-01,6.73E-02,2.67E-02,6.73E-02,2.67E-02,1.36E-02,2.44E+05,9.22E+05,7.46E+05,9.96E+05,1.08E+06,9.20E+05,2.23E+05,1.99E+05,1.42E+04,9.32E+03,2.19E-04,2.14E-04,1.60E-04,1.19E-02,1.97E-02,1.79E-01 +9.20E-01,1.76E-01,6.04E-01,6.04E-01,4.89E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.41E-02,2.44E+05,9.51E+05,7.73E+05,1.02E+06,1.10E+06,9.33E+05,2.37E+05,2.13E+05,1.48E+04,8.82E+03,2.27E-04,2.21E-04,1.63E-04,1.16E-02,1.92E-02,1.75E-01 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,6.06E-01,6.06E-01,5.17E-01,1.70E-01,6.69E-02,2.64E-02,6.69E-02,2.64E-02,1.27E-02,2.44E+05,9.25E+05,7.46E+05,9.99E+05,1.08E+06,9.53E+05,2.25E+05,2.00E+05,1.39E+04,1.09E+04,2.20E-04,2.14E-04,1.68E-04,1.19E-02,2.00E-02,1.81E-01 +9.25E-01,1.76E-01,6.07E-01,6.07E-01,5.15E-01,1.76E-01,6.92E-02,2.72E-02,6.92E-02,2.72E-02,1.32E-02,2.44E+05,9.54E+05,7.73E+05,1.03E+06,1.10E+06,9.67E+05,2.39E+05,2.14E+05,1.44E+04,1.05E+04,2.28E-04,2.21E-04,1.72E-04,1.15E-02,1.94E-02,1.77E-01 +9.30E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.30E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan From f22e56deec34e020c4e50fdb51e3721915724650 Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Mon, 11 May 2026 14:53:06 -0600 Subject: [PATCH 08/12] Updated surrogates Co-authored-by: Copilot --- S1_S2_RR_not_equal.csv | 76 +++++++++--------- ps_demo.h5 | Bin 99288 -> 15480 bytes solution.pickle | Bin 5957 -> 4701 bytes .../surrogate_models/S1_S2_RR_not_equal.csv | 46 +++++++++++ .../surrogate_models/energy_param_sweep.py | 5 +- .../energy_param_sweep_pump.py | 6 +- src/wrd/surrogate_models/energy_surrogate.py | 57 ++++++------- src/wrd/surrogate_models/param_sweep_fxs.py | 1 - .../ro_SEC_poly_fit_order_2.json | 1 + uf_pump_sweep_USED_IN_PT.xlsx | Bin 0 -> 17789 bytes up_pump_sweep.csv | 25 +++--- 11 files changed, 138 insertions(+), 79 deletions(-) create mode 100644 src/wrd/surrogate_models/S1_S2_RR_not_equal.csv create mode 100644 src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json create mode 100644 uf_pump_sweep_USED_IN_PT.xlsx diff --git a/S1_S2_RR_not_equal.csv b/S1_S2_RR_not_equal.csv index 2264f75..d8783e0 100644 --- a/S1_S2_RR_not_equal.csv +++ b/S1_S2_RR_not_equal.csv @@ -1,37 +1,39 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) -8.800000e-01,1.450000e-01,5.630852e-01,6.053842e-01,3.039977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.740008e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,6.542419e+05,1.553794e+05,1.356285e+05,2.140399e+04,-1.653092e+03,1.764094e-04,2.015159e-04,8.969533e-05,1.402424e-02,1.892376e-02,2.237020e-01,8.532024e-01,1.000000e+00 -8.800000e-01,1.512222e-01,5.712852e-01,6.143840e-01,2.741308e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.814675e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,6.340083e+05,1.667060e+05,1.494033e+05,2.159395e+04,-4.291241e+03,1.860083e-04,2.093579e-04,8.117472e-05,1.343905e-02,1.886423e-02,2.502854e-01,8.801531e-01,1.000000e+00 -8.800000e-01,1.574444e-01,5.784627e-01,6.221311e-01,2.466364e-01,1.574444e-01,6.636873e-02,2.507873e-02,6.636873e-02,2.507873e-02,1.889343e-02,2.440744e+05,8.354904e+05,7.515747e+05,9.092643e+05,1.081834e+06,6.155084e+05,1.786456e+05,1.636847e+05,2.178560e+04,-6.824737e+03,1.954742e-04,2.170465e-04,7.349237e-05,1.290907e-02,1.877001e-02,2.790816e-01,9.062817e-01,1.000000e+00 -8.800000e-01,1.636667e-01,5.813442e-01,6.216460e-01,2.424237e-01,1.636667e-01,6.852002e-02,2.592488e-02,6.852002e-02,2.592488e-02,1.964010e-02,2.440744e+05,8.656467e+05,7.768424e+05,9.394206e+05,1.107101e+06,6.197921e+05,1.911441e+05,1.772450e+05,2.204207e+04,-8.143019e+03,2.036322e-04,2.233786e-04,7.434989e-05,1.243875e-02,1.835002e-02,2.759924e-01,9.292690e-01,1.000000e+00 -8.800000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.800000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.890000e-01,1.450000e-01,5.630852e-01,6.053842e-01,3.561977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.609509e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,7.095302e+05,1.581438e+05,1.356285e+05,2.140399e+04,1.111321e+03,1.764094e-04,2.015159e-04,1.055226e-04,1.402424e-02,1.892376e-02,2.025458e-01,8.532024e-01,1.000000e+00 -8.890000e-01,1.512222e-01,5.712852e-01,6.143840e-01,3.285708e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.678576e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,6.918619e+05,1.695987e+05,1.494033e+05,2.159395e+04,-1.398564e+03,1.860083e-04,2.093579e-04,9.758909e-05,1.343905e-02,1.886423e-02,2.221154e-01,8.801531e-01,1.000000e+00 -8.890000e-01,1.574444e-01,5.788679e-01,6.229549e-01,3.009439e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.747643e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,6.737541e+05,1.816770e+05,1.638224e+05,2.177780e+04,-3.923180e+03,1.956095e-04,2.171815e-04,8.962506e-05,1.290734e-02,1.880482e-02,2.448960e-01,9.065663e-01,1.000000e+00 -8.890000e-01,1.636667e-01,5.833488e-01,6.258111e-01,2.880326e-01,1.636667e-01,6.819194e-02,2.551672e-02,6.819194e-02,2.551672e-02,1.816710e-02,2.440744e+05,8.682299e+05,7.801948e+05,9.420038e+05,1.110454e+06,6.702883e+05,1.943644e+05,1.779693e+05,2.200399e+04,-5.608910e+03,2.043273e-04,2.240874e-04,8.738558e-05,1.243113e-02,1.852109e-02,2.522802e-01,9.306878e-01,1.000000e+00 -8.890000e-01,1.698889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.890000e-01,1.761111e-01,5.887746e-01,6.251114e-01,2.799850e-01,1.761111e-01,7.242138e-02,2.715001e-02,7.242138e-02,2.715001e-02,1.954845e-02,2.440744e+05,9.290546e+05,8.304713e+05,1.002829e+06,1.160730e+06,6.805511e+05,2.213736e+05,2.070478e+05,2.246650e+04,-8.140669e+03,2.207843e-04,2.366952e-04,8.959396e-05,1.159299e-02,1.775082e-02,2.461957e-01,9.760575e-01,1.000000e+00 -8.980000e-01,1.450000e-01,5.630852e-01,6.053842e-01,4.083977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.479010e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,7.662519e+05,1.609799e+05,1.356285e+05,2.140399e+04,3.947408e+03,1.764094e-04,2.015159e-04,1.218610e-04,1.402424e-02,1.892376e-02,1.877114e-01,8.532024e-01,1.000000e+00 -8.980000e-01,1.512222e-01,5.712852e-01,6.143840e-01,3.830108e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.542477e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,7.509823e+05,1.725547e+05,1.494033e+05,2.159395e+04,1.557459e+03,1.860083e-04,2.093579e-04,1.145097e-04,1.343905e-02,1.886423e-02,2.028136e-01,8.801531e-01,1.000000e+00 -8.980000e-01,1.574444e-01,5.788679e-01,6.229549e-01,3.576239e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.605944e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,7.353713e+05,1.847579e+05,1.638224e+05,2.177780e+04,-8.423220e+02,1.956095e-04,2.171815e-04,1.071302e-04,1.290734e-02,1.880482e-02,2.198102e-01,9.065663e-01,1.000000e+00 -8.980000e-01,1.636667e-01,5.858057e-01,6.309210e-01,3.327668e-01,1.636667e-01,6.778981e-02,2.501985e-02,6.778981e-02,2.501985e-02,1.669411e-02,2.440744e+05,8.713977e+05,7.842944e+05,9.451716e+05,1.114553e+06,7.199595e+05,1.975967e+05,1.788592e+05,2.195685e+04,-3.219302e+03,2.051797e-04,2.249514e-04,9.994444e-05,1.242218e-02,1.873708e-02,2.385192e-01,9.324256e-01,1.000000e+00 -8.980000e-01,1.698889e-01,5.885422e-01,6.306054e-01,3.289032e-01,1.698889e-01,6.990213e-02,2.582153e-02,6.990213e-02,2.582153e-02,1.732879e-02,2.440744e+05,9.018324e+05,8.097037e+05,9.756063e+05,1.139963e+06,7.264985e+05,2.110257e+05,1.931235e+05,2.219916e+04,-4.296968e+03,2.134140e-04,2.313217e-04,1.014490e-04,1.198851e-02,1.833420e-02,2.349766e-01,9.552007e-01,1.000000e+00 -8.980000e-01,1.761111e-01,5.911842e-01,6.303346e-01,3.250609e-01,1.761111e-01,7.199703e-02,2.661487e-02,7.199703e-02,2.661487e-02,1.796346e-02,2.440744e+05,9.323868e+05,8.349277e+05,1.006161e+06,1.165187e+06,7.327253e+05,2.250085e+05,2.080253e+05,2.242339e+04,-5.440208e+03,2.216814e-04,2.376484e-04,1.028667e-04,1.158586e-02,1.795622e-02,2.317486e-01,9.777864e-01,1.000000e+00 -9.070000e-01,1.450000e-01,5.630852e-01,6.053842e-01,4.605977e-01,1.450000e-01,6.335265e-02,2.500000e-02,6.335265e-02,2.500000e-02,1.348511e-02,2.440744e+05,7.649415e+05,6.873038e+05,8.387154e+05,1.017563e+06,8.250610e+05,1.639204e+05,1.356285e+05,2.140399e+04,6.887862e+03,1.764094e-04,2.015159e-04,1.388643e-04,1.402424e-02,1.892376e-02,1.774193e-01,8.532024e-01,1.000000e+00 -9.070000e-01,1.512222e-01,5.712852e-01,6.143840e-01,4.374508e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.406378e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,8.121196e+05,1.756116e+05,1.494033e+05,2.159395e+04,4.614325e+03,1.860083e-04,2.093579e-04,1.320978e-04,1.343905e-02,1.886423e-02,1.895160e-01,8.801531e-01,1.000000e+00 -9.070000e-01,1.574444e-01,5.788679e-01,6.229549e-01,4.143039e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.464245e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,7.988863e+05,1.879337e+05,1.638224e+05,2.177780e+04,2.333428e+03,1.956095e-04,2.171815e-04,1.253021e-04,1.290734e-02,1.880482e-02,2.027800e-01,9.065663e-01,1.000000e+00 -9.070000e-01,1.636667e-01,5.859043e-01,6.311261e-01,3.911570e-01,1.636667e-01,6.777368e-02,2.500000e-02,6.777368e-02,2.500000e-02,1.522113e-02,2.440744e+05,8.715248e+05,7.844587e+05,9.452987e+05,1.114718e+06,7.853561e+05,2.008948e+05,1.788949e+05,2.195495e+04,4.487148e+01,2.052139e-04,2.249860e-04,1.184795e-04,1.242183e-02,1.874589e-02,2.174154e-01,9.324953e-01,1.000000e+00 -9.070000e-01,1.698889e-01,5.912637e-01,6.363905e-01,3.742432e-01,1.698889e-01,6.943977e-02,2.524902e-02,6.943977e-02,2.524902e-02,1.579980e-02,2.440744e+05,9.054710e+05,8.144735e+05,9.792449e+05,1.144732e+06,7.784277e+05,2.144983e+05,1.941709e+05,2.214758e+04,-1.820243e+03,2.143933e-04,2.323307e-04,1.144079e-04,1.198007e-02,1.857809e-02,2.270918e-01,9.571387e-01,1.000000e+00 -9.070000e-01,1.761111e-01,5.938776e-01,6.361786e-01,3.705825e-01,1.761111e-01,7.152270e-02,2.602155e-02,7.152270e-02,2.602155e-02,1.637847e-02,2.440744e+05,9.361137e+05,8.398941e+05,1.009888e+06,1.170153e+06,7.858615e+05,2.286834e+05,2.091211e+05,2.237430e+04,-2.812023e+03,2.226847e-04,2.387067e-04,1.161681e-04,1.157836e-02,1.819407e-02,2.235941e-01,9.797178e-01,1.000000e+00 -9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.160000e-01,1.512222e-01,5.712852e-01,6.143840e-01,4.918908e-01,1.512222e-01,6.483122e-02,2.500000e-02,6.483122e-02,2.500000e-02,1.270280e-02,2.440744e+05,8.004670e+05,7.198331e+05,8.742409e+05,1.050092e+06,8.761351e+05,1.788123e+05,1.494033e+05,2.159395e+04,7.815097e+03,1.860083e-04,2.093579e-04,1.505693e-04,1.343905e-02,1.886423e-02,1.806848e-01,8.801531e-01,1.000000e+00 -9.160000e-01,1.574444e-01,5.788679e-01,6.229549e-01,4.709839e-01,1.574444e-01,6.630493e-02,2.500000e-02,6.630493e-02,2.500000e-02,1.322547e-02,2.440744e+05,8.359934e+05,7.522177e+05,9.097674e+05,1.082477e+06,8.652401e+05,1.912514e+05,1.638224e+05,2.177780e+04,5.651122e+03,1.956095e-04,2.171815e-04,1.443633e-04,1.290734e-02,1.880482e-02,1.914173e-01,9.065663e-01,1.000000e+00 -9.160000e-01,1.636667e-01,5.859043e-01,6.311261e-01,4.500770e-01,1.636667e-01,6.777368e-02,2.500000e-02,6.777368e-02,2.500000e-02,1.374814e-02,2.440744e+05,8.715248e+05,7.844587e+05,9.452987e+05,1.114718e+06,8.540810e+05,2.043310e+05,1.788949e+05,2.195495e+04,3.481119e+03,2.052139e-04,2.249860e-04,1.381281e-04,1.242183e-02,1.874589e-02,2.029934e-01,9.324953e-01,1.000000e+00 -9.160000e-01,1.698889e-01,5.924551e-01,6.389242e-01,4.291700e-01,1.698889e-01,6.923737e-02,2.500000e-02,6.923737e-02,2.500000e-02,1.427081e-02,2.440744e+05,9.070647e+05,8.165571e+05,9.808386e+05,1.146816e+06,8.426590e+05,2.180603e+05,1.946304e+05,2.212476e+04,1.305096e+03,2.148222e-04,2.327702e-04,1.318662e-04,1.197653e-02,1.868773e-02,2.155373e-01,9.579867e-01,1.000000e+00 -9.160000e-01,1.761111e-01,5.968060e-01,6.425370e-01,4.171787e-01,1.761111e-01,7.100697e-02,2.538243e-02,7.100697e-02,2.538243e-02,1.479349e-02,2.440744e+05,9.401688e+05,8.452761e+05,1.013943e+06,1.175535e+06,8.413409e+05,2.324364e+05,2.103163e+05,2.231989e+04,-1.997713e+02,2.237763e-04,2.398488e-04,1.298537e-04,1.157077e-02,1.846297e-02,2.201895e-01,9.818163e-01,1.000000e+00 -9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.698889e-01,5.924551e-01,6.389242e-01,4.903300e-01,1.698889e-01,6.923737e-02,2.500000e-02,6.923737e-02,2.500000e-02,1.274183e-02,2.440744e+05,9.070647e+05,8.165571e+05,9.808386e+05,1.146816e+06,9.178064e+05,2.218177e+05,1.946304e+05,2.212476e+04,5.062468e+03,2.148222e-04,2.327702e-04,1.533246e-04,1.197653e-02,1.868773e-02,2.040510e-01,9.579867e-01,1.000000e+00 -9.250000e-01,1.761111e-01,5.985724e-01,6.463736e-01,4.716631e-01,1.761111e-01,7.069588e-02,2.500000e-02,7.069588e-02,2.500000e-02,1.320850e-02,2.440744e+05,9.426163e+05,8.485138e+05,1.016390e+06,1.178773e+06,9.085295e+05,2.363265e+05,2.110391e+05,2.228656e+04,3.000788e+03,2.244352e-04,2.405334e-04,1.476293e-04,1.156647e-02,1.863058e-02,2.147927e-01,9.830814e-01,1.000000e+00 +Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.80E-01,1.45E-01,5.63E-01,6.05E-01,3.04E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.74E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,6.54E+05,1.55E+05,1.36E+05,2.14E+04,-1.65E+03,1.76E-04,2.02E-04,8.97E-05,1.40E-02,1.89E-02,2.24E-01,8.53E-01,1.00E+00 +8.89E-01,1.45E-01,5.63E-01,6.05E-01,3.56E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.61E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.10E+05,1.58E+05,1.36E+05,2.14E+04,1.11E+03,1.76E-04,2.02E-04,1.06E-04,1.40E-02,1.89E-02,2.03E-01,8.53E-01,1.00E+00 +8.98E-01,1.45E-01,5.63E-01,6.05E-01,4.08E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.48E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.66E+05,1.61E+05,1.36E+05,2.14E+04,3.95E+03,1.76E-04,2.02E-04,1.22E-04,1.40E-02,1.89E-02,1.88E-01,8.53E-01,1.00E+00 +9.07E-01,1.45E-01,5.63E-01,6.05E-01,4.61E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.35E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,8.25E+05,1.64E+05,1.36E+05,2.14E+04,6.89E+03,1.76E-04,2.02E-04,1.39E-04,1.40E-02,1.89E-02,1.77E-01,8.53E-01,1.00E+00 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.51E-01,5.71E-01,6.14E-01,2.74E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.81E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.34E+05,1.67E+05,1.49E+05,2.16E+04,-4.29E+03,1.86E-04,2.09E-04,8.12E-05,1.34E-02,1.89E-02,2.50E-01,8.80E-01,1.00E+00 +8.89E-01,1.51E-01,5.71E-01,6.14E-01,3.29E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.68E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.92E+05,1.70E+05,1.49E+05,2.16E+04,-1.40E+03,1.86E-04,2.09E-04,9.76E-05,1.34E-02,1.89E-02,2.22E-01,8.80E-01,1.00E+00 +8.98E-01,1.51E-01,5.71E-01,6.14E-01,3.83E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.54E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,7.51E+05,1.73E+05,1.49E+05,2.16E+04,1.56E+03,1.86E-04,2.09E-04,1.15E-04,1.34E-02,1.89E-02,2.03E-01,8.80E-01,1.00E+00 +9.07E-01,1.51E-01,5.71E-01,6.14E-01,4.37E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.41E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.12E+05,1.76E+05,1.49E+05,2.16E+04,4.61E+03,1.86E-04,2.09E-04,1.32E-04,1.34E-02,1.89E-02,1.90E-01,8.80E-01,1.00E+00 +9.16E-01,1.51E-01,5.71E-01,6.14E-01,4.92E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.27E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.76E+05,1.79E+05,1.49E+05,2.16E+04,7.82E+03,1.86E-04,2.09E-04,1.51E-04,1.34E-02,1.89E-02,1.81E-01,8.80E-01,1.00E+00 +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.57E-01,5.78E-01,6.22E-01,2.47E-01,1.57E-01,6.64E-02,2.51E-02,6.64E-02,2.51E-02,1.89E-02,2.44E+05,8.35E+05,7.52E+05,9.09E+05,1.08E+06,6.16E+05,1.79E+05,1.64E+05,2.18E+04,-6.82E+03,1.95E-04,2.17E-04,7.35E-05,1.29E-02,1.88E-02,2.79E-01,9.06E-01,1.00E+00 +8.89E-01,1.57E-01,5.79E-01,6.23E-01,3.01E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.75E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,6.74E+05,1.82E+05,1.64E+05,2.18E+04,-3.92E+03,1.96E-04,2.17E-04,8.96E-05,1.29E-02,1.88E-02,2.45E-01,9.07E-01,1.00E+00 +8.98E-01,1.57E-01,5.79E-01,6.23E-01,3.58E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.61E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.35E+05,1.85E+05,1.64E+05,2.18E+04,-8.42E+02,1.96E-04,2.17E-04,1.07E-04,1.29E-02,1.88E-02,2.20E-01,9.07E-01,1.00E+00 +9.07E-01,1.57E-01,5.79E-01,6.23E-01,4.14E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.46E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.99E+05,1.88E+05,1.64E+05,2.18E+04,2.33E+03,1.96E-04,2.17E-04,1.25E-04,1.29E-02,1.88E-02,2.03E-01,9.07E-01,1.00E+00 +9.16E-01,1.57E-01,5.79E-01,6.23E-01,4.71E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.32E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,8.65E+05,1.91E+05,1.64E+05,2.18E+04,5.65E+03,1.96E-04,2.17E-04,1.44E-04,1.29E-02,1.88E-02,1.91E-01,9.07E-01,1.00E+00 +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.64E-01,5.81E-01,6.22E-01,2.42E-01,1.64E-01,6.85E-02,2.59E-02,6.85E-02,2.59E-02,1.96E-02,2.44E+05,8.66E+05,7.77E+05,9.39E+05,1.11E+06,6.20E+05,1.91E+05,1.77E+05,2.20E+04,-8.14E+03,2.04E-04,2.23E-04,7.43E-05,1.24E-02,1.84E-02,2.76E-01,9.29E-01,1.00E+00 +8.89E-01,1.64E-01,5.83E-01,6.26E-01,2.88E-01,1.64E-01,6.82E-02,2.55E-02,6.82E-02,2.55E-02,1.82E-02,2.44E+05,8.68E+05,7.80E+05,9.42E+05,1.11E+06,6.70E+05,1.94E+05,1.78E+05,2.20E+04,-5.61E+03,2.04E-04,2.24E-04,8.74E-05,1.24E-02,1.85E-02,2.52E-01,9.31E-01,1.00E+00 +8.98E-01,1.64E-01,5.86E-01,6.31E-01,3.33E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.67E-02,2.44E+05,8.71E+05,7.84E+05,9.45E+05,1.11E+06,7.20E+05,1.98E+05,1.79E+05,2.20E+04,-3.22E+03,2.05E-04,2.25E-04,9.99E-05,1.24E-02,1.87E-02,2.39E-01,9.32E-01,1.00E+00 +9.07E-01,1.64E-01,5.86E-01,6.31E-01,3.91E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.52E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,7.85E+05,2.01E+05,1.79E+05,2.20E+04,4.49E+01,2.05E-04,2.25E-04,1.18E-04,1.24E-02,1.87E-02,2.17E-01,9.32E-01,1.00E+00 +9.16E-01,1.64E-01,5.86E-01,6.31E-01,4.50E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.37E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,8.54E+05,2.04E+05,1.79E+05,2.20E+04,3.48E+03,2.05E-04,2.25E-04,1.38E-04,1.24E-02,1.87E-02,2.03E-01,9.32E-01,1.00E+00 +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.98E-01,1.70E-01,5.89E-01,6.31E-01,3.29E-01,1.70E-01,6.99E-02,2.58E-02,6.99E-02,2.58E-02,1.73E-02,2.44E+05,9.02E+05,8.10E+05,9.76E+05,1.14E+06,7.26E+05,2.11E+05,1.93E+05,2.22E+04,-4.30E+03,2.13E-04,2.31E-04,1.01E-04,1.20E-02,1.83E-02,2.35E-01,9.55E-01,1.00E+00 +9.07E-01,1.70E-01,5.91E-01,6.36E-01,3.74E-01,1.70E-01,6.94E-02,2.52E-02,6.94E-02,2.52E-02,1.58E-02,2.44E+05,9.05E+05,8.14E+05,9.79E+05,1.14E+06,7.78E+05,2.14E+05,1.94E+05,2.21E+04,-1.82E+03,2.14E-04,2.32E-04,1.14E-04,1.20E-02,1.86E-02,2.27E-01,9.57E-01,1.00E+00 +9.16E-01,1.70E-01,5.92E-01,6.39E-01,4.29E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.43E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,8.43E+05,2.18E+05,1.95E+05,2.21E+04,1.31E+03,2.15E-04,2.33E-04,1.32E-04,1.20E-02,1.87E-02,2.16E-01,9.58E-01,1.00E+00 +9.25E-01,1.70E-01,5.92E-01,6.39E-01,4.90E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.27E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,9.18E+05,2.22E+05,1.95E+05,2.21E+04,5.06E+03,2.15E-04,2.33E-04,1.53E-04,1.20E-02,1.87E-02,2.04E-01,9.58E-01,1.00E+00 +8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.76E-01,5.89E-01,6.25E-01,2.80E-01,1.76E-01,7.24E-02,2.72E-02,7.24E-02,2.72E-02,1.95E-02,2.44E+05,9.29E+05,8.30E+05,1.00E+06,1.16E+06,6.81E+05,2.21E+05,2.07E+05,2.25E+04,-8.14E+03,2.21E-04,2.37E-04,8.96E-05,1.16E-02,1.78E-02,2.46E-01,9.76E-01,1.00E+00 +8.98E-01,1.76E-01,5.91E-01,6.30E-01,3.25E-01,1.76E-01,7.20E-02,2.66E-02,7.20E-02,2.66E-02,1.80E-02,2.44E+05,9.32E+05,8.35E+05,1.01E+06,1.17E+06,7.33E+05,2.25E+05,2.08E+05,2.24E+04,-5.44E+03,2.22E-04,2.38E-04,1.03E-04,1.16E-02,1.80E-02,2.32E-01,9.78E-01,1.00E+00 +9.07E-01,1.76E-01,5.94E-01,6.36E-01,3.71E-01,1.76E-01,7.15E-02,2.60E-02,7.15E-02,2.60E-02,1.64E-02,2.44E+05,9.36E+05,8.40E+05,1.01E+06,1.17E+06,7.86E+05,2.29E+05,2.09E+05,2.24E+04,-2.81E+03,2.23E-04,2.39E-04,1.16E-04,1.16E-02,1.82E-02,2.24E-01,9.80E-01,1.00E+00 +9.16E-01,1.76E-01,5.97E-01,6.43E-01,4.17E-01,1.76E-01,7.10E-02,2.54E-02,7.10E-02,2.54E-02,1.48E-02,2.44E+05,9.40E+05,8.45E+05,1.01E+06,1.18E+06,8.41E+05,2.32E+05,2.10E+05,2.23E+04,-2.00E+02,2.24E-04,2.40E-04,1.30E-04,1.16E-02,1.85E-02,2.20E-01,9.82E-01,1.00E+00 +9.25E-01,1.76E-01,5.99E-01,6.46E-01,4.72E-01,1.76E-01,7.07E-02,2.50E-02,7.07E-02,2.50E-02,1.32E-02,2.44E+05,9.43E+05,8.49E+05,1.02E+06,1.18E+06,9.09E+05,2.36E+05,2.11E+05,2.23E+04,3.00E+03,2.24E-04,2.41E-04,1.48E-04,1.16E-02,1.86E-02,2.15E-01,9.83E-01,1.00E+00 +,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/ps_demo.h5 b/ps_demo.h5 index 75f6f85a3739997d7f6dd1f4c17e3b4ffb5075ee..798677a6ca44feb9cb6d218bfac31d98e16688c1 100644 GIT binary patch delta 845 zcmcc7&i12Xf(CPi4Z}ulUseGL1_(KN4>mWKY%KTf+e}@iDzr%em7##0aX%~g7FgbcY@8&IaC}ehga-h9w z;W-w^$u|zmC^G|Hpo-)o79g7u6>N6YbZ6Ndpc%z9`GY|;Bj08l13pG34!+GkhCo_? zZ*zW7l5CBJV zLb4>ME`+~9X7Z}<@{=`X%DE76J#nMm00b;v-pz#P>9cg)6( za*Sx{s&JzdCm%#TBwaC8m`&U$H@Sd^gUQ1f#QLDe!IWVNVjTdAMVNqC4*DFE74#J* z8`NK#d`nbf@++GklV6EROt$j)xtUqwDC1@aGXo}W1&Fx}CoCDJD>pLMB9im;m5q#n XoHw8r^G|1PVw^kqf%S}u2NnPT>P-E? literal 99288 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 HvdaGh6COV@ diff --git a/solution.pickle b/solution.pickle index 4fe7e835fc379923174d79278305f38b9144ce7b..b373fa23032064ecc1287c115937d5e3e3d77d32 100644 GIT binary patch delta 1687 zcmX@AcUOhAfn{ot&_vd)0{m{NsVNF>Ir-%ZxyJe#MH7!CFv?6;Wi+c_z{J3y8Pk90 ztHvAqWwVbcY$$qTuYCJwUDlpA_6wx+@2ar9wI?Jm8x-=8dX^;j*08Hnx>nE0%j zAn+EagVEJ7fIvWl114P$kvMw>2>vuU5Td~ruWWQ6L>q%ZagzffngL`#gF>?dh{8sL z+;!$mvjZXesegld@{FtY(>KZog`K);FZ+J6j_2>I_JU2}5zgAz>~F`-+_EkFn*F@X zduFyYU$bAUc4vFxx@-3JxBtJ}-*V%ceb~ZT@<$l2+lL$MpOM9J-QIU~W<|H&b^8mq zBsabYzHVRf?UHCm#dZ7mcmM42=Ulfpx_7)+qy4&l@c{$DE6cCjpW<}j-v8{n{o~4? zhc2?-u+L=uqUoV>!@j(5`R9m9H|%S^3glL;xnaLd^>u8};~VypU~p5@e)n$AiJmey z?JwVc8_Df|)Bak@4d>GhH|_7)hVz9@y=iZ6AIY14^rrpfa5jy48E@vcDH(DdP6Lx{ z>+$CkShAy8vIVCWq;yOuxx(ZLC0Cd{q2yW*Q-CYE!o&$BSC~AB$+jMzZU-jW8o|>o z@yWJ@dp4uYW(A%X%xnj0x6Qc0G?`DJgDt@N`7|JNj=%yXW^YDNn(lO#_`XBTR^;d5 z{Xd>nPOUp|$)2IE`L)&>Tl>j*f^v+ElY0e~BPJaQ3pX$cvY*m6C1^?yvv08Ll#DGI za?TtIzO2`KT6fz)B$$GXpyGGtZ8!11^&YB$+c71pw73LV7r+%1t7Z9mU*F6jRKd*1 zJh@R+Ve(c{MFr+oh?Ce|KQo8{os_VC!vm0$qTeR!i);WoiA_vN6r|`~XY3S>EJa2J nhAbrzp*-1L%t=%W$n4?BO)rYi$xkkxl5xwM!JB#VJh9~fh5Q93 literal 5957 zcmeHLZ)_Y#6~8;%mviF8apE|^QH|4<;;8g!(l%-!VK;S?)IG9E?KB^tVVS#~ySelJ zIrfiZhlWrjJ2n~#OCCPZKcdhUB&1e=5Tq#3v<-Y|;TsA~g=mW)LUrH+D&&87Z+7?2 zvGeEnOjf#^-I@2^ym|B9Z{C})H-Gyxs}u4$BzTME7}ON}-m*ccmn}Fh&3b|BIwj)M zY<0}DoNU!G$85(c6H|9-$)%oGc5J~r_tg3a>)kVA{ZrzQ=;N)<2z3v*WuJ;ko+*}1 zY7>hJ-tIYO;Ddy0wOklBp=Whns%{XU=mns#Y)|Y5F_}SHKuKeQx9*_S=-pvD2L$Cy z9k*O6+n^J&2;OA}R&^{3ys!c*F#R%dT>@Nfpmf2pJ>LxqzL7(&KUSs4lqxJm+(b?@}aZM ziNyLRzV*gOeX~lV?GK(g(fea}R%x{TYUe9E-#<93G}_+r?zyj3j?F5Kw!eEDpIN2R z_WABl|LM;38Ku$oTwojvW zyqTTn+dcG?bIKCf-K~o+DF4P?`{<(b!9fg!%TXL8)No&uQF~6AKsOt|5c$I;Wxw3O zE0JF(R4MM{_31As-Hvm-I`LTrC**`o|JKZQ7IMixvYfa2{l|tQVrujrM?PUJ$CfG@*-I0&- zkpFVTmr%oaNUGs@N{#Io>UkxiPpEQPuO!tl?o;ah_u+Fz3FX)A74oOlaJ{KW|0Y!c z0`m5GNG@0h>qKy6T~|YE&n>WQ1T-53$(ZhDAQ_Ke4NFet|0>L)% zrII(RIs1qi$UMFSNNkVlU?Qjx%<@4hrg&Np;L`(XX}usbe&B71=jBa?Q-HA+T^2AJ zOjD~Tr~%V1(m`Wt`;tahBT)aaHjvROWju@pN~C`u+sxW>37Th1*)FJ*pu~ZmrPvej z#h?}}S@$TIW#xRc$lm3<(G93ER3IjChk&pqc%LSx)!0%k;NA1NOQw^DVo3^V*Gtsb z=k!2<)3nVV6XQ_-s?DV#v%(3 z@wV7*)ZbmK>CQ&@ida|6f|9gol9DHQTHC#MX!~BELzDKyWG$eLWMn%uwo_w|OtJxu zH$!b%6l_UA^PnO#;kQKte}HNi!$Om+O~4A0<}$KJ55eF*j}5Xf@~+1rT&1V?J66@P z!IR`R;b!o5o!E{&W;ua}o#3M|7n|UBU8Ob@%qErLk0tzEA-t_7G*m-cU0r@O^T!`Ozv=kPN4J>CpR7K}im=<>x}8-1pyKeOzS2Y>zg-$oQM zf&S36YY1q5h67FJ+2%j2%R~dI!HrS>bM~uuC(ivd>R+!yjZ$RnA5P z0q?Az0tn{u36$g=wNKp(EQ{bBOh=W#wMleQ1cwCP=(Hlh?U3)%UvMqWx>bT$@0m+3 zHw^Z`%UZ-HB?`;tZ4a4FVR%>g4J+nd5eFO&c`sXI!AJ<~@Wx2bBM+KqL3PoZON1Mg zko8C=A3!9Q;Xvgr9ym1~0l7r3HJ8M4B$vYfae2+O=4wST9K9@_MgmaTrU!I+7~!1n z^OpEsE>r^kH8g>uXDv_dzUtcO$$8gC3KUIK`@vkx2V%?X;cf`Nynemb8=n1q+1}`E z@0DHyHtEO2;T{NrsE7TO9c9PZao(-TRKDFBD#qQYMw|+N{HI3Lb(+ioFFB1jt6a@hAJ#T#eUBsmy&X_@rODL!TJuB zVB6C7W;fiQ-5{~7nLq%EN;i=4w2W6oS`3(Ubb?ntg<~0j2_3@O6YLa3CIBqPWIzD2 zM81-i?9nb%GVlc|? d)Nv6Mn8x-{zPJc!5IDOZfFq=wVG#f>{TIJ&L0JF* diff --git a/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv b/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv new file mode 100644 index 0000000..d88eadc --- /dev/null +++ b/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv @@ -0,0 +1,46 @@ +Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.80E-01,1.45E-01,5.63E-01,6.05E-01,3.04E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.74E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,6.54E+05,1.55E+05,1.36E+05,2.14E+04,-1.65E+03,1.76E-04,2.02E-04,8.97E-05,1.40E-02,1.89E-02,2.24E-01,8.53E-01,1.00E+00 +8.80E-01,1.51E-01,5.71E-01,6.14E-01,2.74E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.81E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.34E+05,1.67E+05,1.49E+05,2.16E+04,-4.29E+03,1.86E-04,2.09E-04,8.12E-05,1.34E-02,1.89E-02,2.50E-01,8.80E-01,1.00E+00 +8.80E-01,1.57E-01,5.78E-01,6.22E-01,2.47E-01,1.57E-01,6.64E-02,2.51E-02,6.64E-02,2.51E-02,1.89E-02,2.44E+05,8.35E+05,7.52E+05,9.09E+05,1.08E+06,6.16E+05,1.79E+05,1.64E+05,2.18E+04,-6.82E+03,1.95E-04,2.17E-04,7.35E-05,1.29E-02,1.88E-02,2.79E-01,9.06E-01,1.00E+00 +8.80E-01,1.64E-01,5.81E-01,6.22E-01,2.42E-01,1.64E-01,6.85E-02,2.59E-02,6.85E-02,2.59E-02,1.96E-02,2.44E+05,8.66E+05,7.77E+05,9.39E+05,1.11E+06,6.20E+05,1.91E+05,1.77E+05,2.20E+04,-8.14E+03,2.04E-04,2.23E-04,7.43E-05,1.24E-02,1.84E-02,2.76E-01,9.29E-01,1.00E+00 +8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.45E-01,5.63E-01,6.05E-01,3.56E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.61E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.10E+05,1.58E+05,1.36E+05,2.14E+04,1.11E+03,1.76E-04,2.02E-04,1.06E-04,1.40E-02,1.89E-02,2.03E-01,8.53E-01,1.00E+00 +8.89E-01,1.51E-01,5.71E-01,6.14E-01,3.29E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.68E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.92E+05,1.70E+05,1.49E+05,2.16E+04,-1.40E+03,1.86E-04,2.09E-04,9.76E-05,1.34E-02,1.89E-02,2.22E-01,8.80E-01,1.00E+00 +8.89E-01,1.57E-01,5.79E-01,6.23E-01,3.01E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.75E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,6.74E+05,1.82E+05,1.64E+05,2.18E+04,-3.92E+03,1.96E-04,2.17E-04,8.96E-05,1.29E-02,1.88E-02,2.45E-01,9.07E-01,1.00E+00 +8.89E-01,1.64E-01,5.83E-01,6.26E-01,2.88E-01,1.64E-01,6.82E-02,2.55E-02,6.82E-02,2.55E-02,1.82E-02,2.44E+05,8.68E+05,7.80E+05,9.42E+05,1.11E+06,6.70E+05,1.94E+05,1.78E+05,2.20E+04,-5.61E+03,2.04E-04,2.24E-04,8.74E-05,1.24E-02,1.85E-02,2.52E-01,9.31E-01,1.00E+00 +8.89E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.76E-01,5.89E-01,6.25E-01,2.80E-01,1.76E-01,7.24E-02,2.72E-02,7.24E-02,2.72E-02,1.95E-02,2.44E+05,9.29E+05,8.30E+05,1.00E+06,1.16E+06,6.81E+05,2.21E+05,2.07E+05,2.25E+04,-8.14E+03,2.21E-04,2.37E-04,8.96E-05,1.16E-02,1.78E-02,2.46E-01,9.76E-01,1.00E+00 +8.98E-01,1.45E-01,5.63E-01,6.05E-01,4.08E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.48E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.66E+05,1.61E+05,1.36E+05,2.14E+04,3.95E+03,1.76E-04,2.02E-04,1.22E-04,1.40E-02,1.89E-02,1.88E-01,8.53E-01,1.00E+00 +8.98E-01,1.51E-01,5.71E-01,6.14E-01,3.83E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.54E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,7.51E+05,1.73E+05,1.49E+05,2.16E+04,1.56E+03,1.86E-04,2.09E-04,1.15E-04,1.34E-02,1.89E-02,2.03E-01,8.80E-01,1.00E+00 +8.98E-01,1.57E-01,5.79E-01,6.23E-01,3.58E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.61E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.35E+05,1.85E+05,1.64E+05,2.18E+04,-8.42E+02,1.96E-04,2.17E-04,1.07E-04,1.29E-02,1.88E-02,2.20E-01,9.07E-01,1.00E+00 +8.98E-01,1.64E-01,5.86E-01,6.31E-01,3.33E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.67E-02,2.44E+05,8.71E+05,7.84E+05,9.45E+05,1.11E+06,7.20E+05,1.98E+05,1.79E+05,2.20E+04,-3.22E+03,2.05E-04,2.25E-04,9.99E-05,1.24E-02,1.87E-02,2.39E-01,9.32E-01,1.00E+00 +8.98E-01,1.70E-01,5.89E-01,6.31E-01,3.29E-01,1.70E-01,6.99E-02,2.58E-02,6.99E-02,2.58E-02,1.73E-02,2.44E+05,9.02E+05,8.10E+05,9.76E+05,1.14E+06,7.26E+05,2.11E+05,1.93E+05,2.22E+04,-4.30E+03,2.13E-04,2.31E-04,1.01E-04,1.20E-02,1.83E-02,2.35E-01,9.55E-01,1.00E+00 +8.98E-01,1.76E-01,5.91E-01,6.30E-01,3.25E-01,1.76E-01,7.20E-02,2.66E-02,7.20E-02,2.66E-02,1.80E-02,2.44E+05,9.32E+05,8.35E+05,1.01E+06,1.17E+06,7.33E+05,2.25E+05,2.08E+05,2.24E+04,-5.44E+03,2.22E-04,2.38E-04,1.03E-04,1.16E-02,1.80E-02,2.32E-01,9.78E-01,1.00E+00 +9.07E-01,1.45E-01,5.63E-01,6.05E-01,4.61E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.35E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,8.25E+05,1.64E+05,1.36E+05,2.14E+04,6.89E+03,1.76E-04,2.02E-04,1.39E-04,1.40E-02,1.89E-02,1.77E-01,8.53E-01,1.00E+00 +9.07E-01,1.51E-01,5.71E-01,6.14E-01,4.37E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.41E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.12E+05,1.76E+05,1.49E+05,2.16E+04,4.61E+03,1.86E-04,2.09E-04,1.32E-04,1.34E-02,1.89E-02,1.90E-01,8.80E-01,1.00E+00 +9.07E-01,1.57E-01,5.79E-01,6.23E-01,4.14E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.46E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.99E+05,1.88E+05,1.64E+05,2.18E+04,2.33E+03,1.96E-04,2.17E-04,1.25E-04,1.29E-02,1.88E-02,2.03E-01,9.07E-01,1.00E+00 +9.07E-01,1.64E-01,5.86E-01,6.31E-01,3.91E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.52E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,7.85E+05,2.01E+05,1.79E+05,2.20E+04,4.49E+01,2.05E-04,2.25E-04,1.18E-04,1.24E-02,1.87E-02,2.17E-01,9.32E-01,1.00E+00 +9.07E-01,1.70E-01,5.91E-01,6.36E-01,3.74E-01,1.70E-01,6.94E-02,2.52E-02,6.94E-02,2.52E-02,1.58E-02,2.44E+05,9.05E+05,8.14E+05,9.79E+05,1.14E+06,7.78E+05,2.14E+05,1.94E+05,2.21E+04,-1.82E+03,2.14E-04,2.32E-04,1.14E-04,1.20E-02,1.86E-02,2.27E-01,9.57E-01,1.00E+00 +9.07E-01,1.76E-01,5.94E-01,6.36E-01,3.71E-01,1.76E-01,7.15E-02,2.60E-02,7.15E-02,2.60E-02,1.64E-02,2.44E+05,9.36E+05,8.40E+05,1.01E+06,1.17E+06,7.86E+05,2.29E+05,2.09E+05,2.24E+04,-2.81E+03,2.23E-04,2.39E-04,1.16E-04,1.16E-02,1.82E-02,2.24E-01,9.80E-01,1.00E+00 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.16E-01,1.51E-01,5.71E-01,6.14E-01,4.92E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.27E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.76E+05,1.79E+05,1.49E+05,2.16E+04,7.82E+03,1.86E-04,2.09E-04,1.51E-04,1.34E-02,1.89E-02,1.81E-01,8.80E-01,1.00E+00 +9.16E-01,1.57E-01,5.79E-01,6.23E-01,4.71E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.32E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,8.65E+05,1.91E+05,1.64E+05,2.18E+04,5.65E+03,1.96E-04,2.17E-04,1.44E-04,1.29E-02,1.88E-02,1.91E-01,9.07E-01,1.00E+00 +9.16E-01,1.64E-01,5.86E-01,6.31E-01,4.50E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.37E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,8.54E+05,2.04E+05,1.79E+05,2.20E+04,3.48E+03,2.05E-04,2.25E-04,1.38E-04,1.24E-02,1.87E-02,2.03E-01,9.32E-01,1.00E+00 +9.16E-01,1.70E-01,5.92E-01,6.39E-01,4.29E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.43E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,8.43E+05,2.18E+05,1.95E+05,2.21E+04,1.31E+03,2.15E-04,2.33E-04,1.32E-04,1.20E-02,1.87E-02,2.16E-01,9.58E-01,1.00E+00 +9.16E-01,1.76E-01,5.97E-01,6.43E-01,4.17E-01,1.76E-01,7.10E-02,2.54E-02,7.10E-02,2.54E-02,1.48E-02,2.44E+05,9.40E+05,8.45E+05,1.01E+06,1.18E+06,8.41E+05,2.32E+05,2.10E+05,2.23E+04,-2.00E+02,2.24E-04,2.40E-04,1.30E-04,1.16E-02,1.85E-02,2.20E-01,9.82E-01,1.00E+00 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,5.92E-01,6.39E-01,4.90E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.27E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,9.18E+05,2.22E+05,1.95E+05,2.21E+04,5.06E+03,2.15E-04,2.33E-04,1.53E-04,1.20E-02,1.87E-02,2.04E-01,9.58E-01,1.00E+00 +9.25E-01,1.76E-01,5.99E-01,6.46E-01,4.72E-01,1.76E-01,7.07E-02,2.50E-02,7.07E-02,2.50E-02,1.32E-02,2.44E+05,9.43E+05,8.49E+05,1.02E+06,1.18E+06,9.09E+05,2.36E+05,2.11E+05,2.23E+04,3.00E+03,2.24E-04,2.41E-04,1.48E-04,1.16E-02,1.86E-02,2.15E-01,9.83E-01,1.00E+00 +,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Upper lim,,,,,,,,,,,,,,,,,,,,,,,,,,,, +RR,0.88,0.889,,,,,,,,,,,,,,,,,,,,,,,,,, +Flow,0.164,0.164,,,,,,,,,,,,,,,,,,,,,,,,,, +Flow,590.4,590.4,,,,,,,,,,,,,,,,,,,,,,,,,, +Lower lim,,,,,,,,,,,,,,,,,,,,,,,,,,,, +RR,0.916,0.925,,,,,,,,,,,,,,,,,,,,,,,,,, +Flow,0.151,0.17,,,,,,,,,,,,,,,,,,,,,,,,,, +Flow,543.6,612,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 145b0ed..147f171 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -1,4 +1,5 @@ # Imports +from pathlib import Path from pprint import pprint from IPython import get_ipython from watertap.core.solvers import get_solver @@ -32,7 +33,9 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "parallel_back_end": "MultiProcessing", # ConcurrentFutures, MPI, Ray available "number_of_subprocesses": num_procs, # Additional useful keyword arguments - "csv_results_file_name": "S1_S2_RR_not_equal.csv", # For storing results as CSV + "csv_results_file_name": str( + Path(__file__).resolve().parent / "S1_S2_RR_not_equal.csv" + ), # Store CSV next to this script "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, "initialize_before_sweep": False, #!!!!!!! diff --git a/src/wrd/surrogate_models/energy_param_sweep_pump.py b/src/wrd/surrogate_models/energy_param_sweep_pump.py index 3a13294..1543344 100644 --- a/src/wrd/surrogate_models/energy_param_sweep_pump.py +++ b/src/wrd/surrogate_models/energy_param_sweep_pump.py @@ -52,12 +52,12 @@ def create_parameter_sweep_object(num_samples, num_procs, var_lims): return ps, kwargs_dict if __name__ == "__main__": - num_samples = 10 + num_samples = 15 num_procs = 1 var_lims = { "Feed Flow": { - "Qin_min": 520 / 3600, # m3/s - "Qin_max": 910 / 3600, # m3/s + "Qin_min": 344 / 3600, # m3/s + "Qin_max": 989 / 3600, # m3/s } } ps, kwargs_dict = create_parameter_sweep_object(num_samples, num_procs, var_lims) diff --git a/src/wrd/surrogate_models/energy_surrogate.py b/src/wrd/surrogate_models/energy_surrogate.py index cc65c9e..68d633d 100644 --- a/src/wrd/surrogate_models/energy_surrogate.py +++ b/src/wrd/surrogate_models/energy_surrogate.py @@ -36,15 +36,20 @@ current_script_path = os.path.abspath(__file__) # Get the directory containing the current script current_directory = os.path.dirname(current_script_path) -filename = "ro_sweep_brine_lim.csv" +filename = "S1_S2_RR_not_equal.csv" data_path = os.path.join(current_directory, filename) Data = pd.read_csv(data_path) # Create PySMO Surrogate Model -input_data = Data.iloc[:,0:1] ## RR,feed flow -output_data = Data.iloc[:,17] #Check exact colum number for total power -input_labels = [Data.columns[0], Data.columns[1]] -output_labels = [Data.columns[17]]#Check exact colum number for total power +# Find the SEC +Data['Feed Flow m3/hr'] = Data['Feed Flow'] * 3600 +Data['Total_Permeate_Flow_m3_s'] = Data['Recovery'] * Data['Feed Flow'] +Data['Specific Energy (kWh/m3)'] = Data['Total Power (W)'] / Data['Total_Permeate_Flow_m3_s'] / 3600 / 1000 +# Pull input and output data +input_data = Data.iloc[:,[0,-3]] ## RR,feed flow +output_data = Data.iloc[:,-1] # Specific Energy +input_labels = [Data.columns[0], Data.columns[-3]] +output_labels = [Data.columns[-1]] # Remove the rows with nan values Data = Data.dropna(subset=output_labels) @@ -53,16 +58,15 @@ assert pd.to_numeric(Data[input_labels[0]], errors="coerce").notnull().all() assert pd.to_numeric(Data[output_labels[0]], errors="coerce").notnull().all() -# Scale Data -Data_Scaled = Data.copy() +# No need to scale data + # Change this as appropriate -Data_Scaled[output_labels[0]] = Data[output_labels[0]].mul(1e-5) # Power is in W, scale down -RRmin = min(Data_Scaled[input_labels[0]]) -RRmax = max(Data_Scaled[input_labels[0]]) -flowmin = min(Data_Scaled[input_labels[1]]) -flowmax = max(Data_Scaled[input_labels[1]]) +RRmin = min(Data[input_labels[0]]) +RRmax = max(Data[input_labels[0]]) +flowmin = min(Data[input_labels[1]]) +flowmax = max(Data[input_labels[1]]) -input_bounds = {'Recovery': (RRmin, RRmax), 'Feed Flow': (flowmin, flowmax)} +input_bounds = {'Recovery': (RRmin, RRmax), 'Feed Flow m3/hr': (flowmin, flowmax)} # Sample Data n_data = output_data.size @@ -72,7 +76,7 @@ trainer = PysmoPolyTrainer( input_labels=input_labels, output_labels=output_labels, - training_dataframe = Data_Scaled + training_dataframe = Data ) trainer.config.maximum_polynomial_order = 2 @@ -107,7 +111,7 @@ for j in range(num_points): m.recovery.fix(x1_vals[i]) m.flowrate.fix(x2_vals[j]) - calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Total Power (W)"]) + calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"]) # m.surrogate_blk.display() # results = solver.solve(m, tee=True) # m.surrogate_blk.display() @@ -122,9 +126,9 @@ ax.plot_surface(X1, X2, y_vals, cmap="viridis", alpha=0.85) # ax.scatter(X1.ravel(), X2.ravel(), y_vals.ravel(), c="r", s=12, label="Predicted") ax.scatter( - Data_Scaled[input_labels[0]], - Data_Scaled[input_labels[1]], - Data_Scaled[output_labels[0]], + Data[input_labels[0]], + Data[input_labels[1]], + Data[output_labels[0]], c="r", s=18, alpha=0.85, @@ -132,8 +136,8 @@ ) ax.set_xlabel("RR") -ax.set_ylabel("Feed Flowrate (m3/s)") -ax.set_zlabel("Power (scaled)") # Check units and scaling +ax.set_ylabel("Feed Flowrate (m3/hr)") +ax.set_zlabel("Specific Energy (kWh/m3)") # Check units and scaling ax.set_title("Train Power Consumption Surrogate") ax.legend() @@ -148,15 +152,15 @@ plt.show() # Residual plot at actual data points: percent difference = 100 * (surrogate - actual) / actual -actual_x1 = Data_Scaled[input_labels[0]].to_numpy() -actual_x2 = Data_Scaled[input_labels[1]].to_numpy() -actual_z = Data_Scaled[output_labels[0]].to_numpy() +actual_x1 = Data[input_labels[0]].to_numpy() +actual_x2 = Data[input_labels[1]].to_numpy() +actual_z = Data[output_labels[0]].to_numpy() predicted_z = np.zeros_like(actual_z, dtype=float) for k, (x1, x2) in enumerate(zip(actual_x1, actual_x2)): m.recovery.fix(x1) m.flowrate.fix(x2) - calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Total Power (W)"]) + calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"]) predicted_z[k] = m.power.value denominator = np.where(np.abs(actual_z) > 1e-12, actual_z, np.nan) @@ -174,13 +178,12 @@ s=24, ) ax_res.set_xlabel("RR") -ax_res.set_ylabel("Feed Flowrate (m3/s)") +ax_res.set_ylabel("Feed Flowrate (m3/hr)") ax_res.set_zlabel("Percent Difference (%)") ax_res.set_title("Surrogate Percent Difference at Actual Data Points") fig_res.colorbar(res_scatter, ax=ax_res, shrink=0.7, label="Percent Difference (%)") plt.show() - # Save Surrogate -surr_name = f"ro_power_poly_fit_order_{trainer.config.maximum_polynomial_order}.json" +surr_name = f"ro_SEC_poly_fit_order_{trainer.config.maximum_polynomial_order}.json" Surrogate.save_to_file(os.path.join(current_directory, surr_name), overwrite=True) \ No newline at end of file diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index 3a80618..e80306c 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -164,7 +164,6 @@ def build_flowsheet(op_limits=None,scenario=None): set_ro_train_op_conditions(m.fs.ro_train) # Set limits on each stage recovery and flowrate for i in m.fs.ro_train.stages: - # m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setlb( # op_limits[f"Stage {i}"]["Qin_min"] # ) diff --git a/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json b/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json new file mode 100644 index 0000000..017b206 --- /dev/null +++ b/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json @@ -0,0 +1 @@ +{"model_encoding": {"Specific Energy (kWh/m3)": {"attr": {"regression_data_columns": ["Recovery", "Feed Flow m3/hr"], "multinomials": 0, "additional_term_expressions": [], "optimal_weights_array": [[-0.15603878958558656], [0.2929989299515081], [0.00045276687479930966]], "final_polynomial_order": 1, "errors": {"MAE": 0.0011110755998340644, "MSE": 1.6404199777067706e-06, "R2": 0.9953990964540611, "Adjusted R2": 0.995031024170386}, "extra_terms_feature_vector": ["IndexedParam[Recovery]", "IndexedParam[Feed Flow m3/hr]"]}, "map": {"regression_data_columns": "list", "multinomials": "str", "additional_term_expressions": "list", "optimal_weights_array": "numpy", "final_polynomial_order": "str", "errors": "str", "extra_terms_feature_vector": "other"}}}, "input_labels": ["Recovery", "Feed Flow m3/hr"], "output_labels": ["Specific Energy (kWh/m3)"], "input_bounds": {"Recovery": [0.88, 0.925], "Feed Flow m3/hr": [522.0, 633.5999999999999]}, "surrogate_type": "poly"} \ No newline at end of file diff --git a/uf_pump_sweep_USED_IN_PT.xlsx b/uf_pump_sweep_USED_IN_PT.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6647c793ab4ef1316c6df0c8cc4c760a63f62030 GIT binary patch literal 17789 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 Date: Mon, 11 May 2026 15:03:49 -0600 Subject: [PATCH 09/12] black and deleting unneeded files --- S1_S2_RR_not_equal.csv | 39 ---- initial_ro_sweep_results.csv | 67 ------ ps_demo.h5 | Bin 15480 -> 0 bytes ro_sweep_brine_lim.csv | 37 ---- ro_sweep_results.csv | 5 - src/wrd/components/ro_stage.py | 4 +- .../surrogate_models/energy_param_sweep.py | 11 +- .../energy_param_sweep_pump.py | 1 + src/wrd/surrogate_models/energy_surrogate.py | 38 ++-- src/wrd/surrogate_models/param_sweep_fxs.py | 191 +++++++++++++----- .../surrogate_models/param_sweep_fxs_pump.py | 52 +++-- .../ro_power_poly_fit_order_2.json | 1 - ...ne_lim.csv => ro_sweep_S1_S2_equal_RR.csv} | 0 ...al.csv => ro_sweep_S1_S2_not_equal_RR.csv} | 0 .../uf_pump_sweep_USED_IN_PT.xlsx | Bin sweep_results_limited_range.csv | 26 --- up_pump_sweep.csv | 16 -- 17 files changed, 204 insertions(+), 284 deletions(-) delete mode 100644 S1_S2_RR_not_equal.csv delete mode 100644 initial_ro_sweep_results.csv delete mode 100644 ps_demo.h5 delete mode 100644 ro_sweep_brine_lim.csv delete mode 100644 ro_sweep_results.csv delete mode 100644 src/wrd/surrogate_models/ro_power_poly_fit_order_2.json rename src/wrd/surrogate_models/{ro_sweep_brine_lim.csv => ro_sweep_S1_S2_equal_RR.csv} (100%) rename src/wrd/surrogate_models/{S1_S2_RR_not_equal.csv => ro_sweep_S1_S2_not_equal_RR.csv} (100%) rename uf_pump_sweep_USED_IN_PT.xlsx => src/wrd/surrogate_models/uf_pump_sweep_USED_IN_PT.xlsx (100%) delete mode 100644 sweep_results_limited_range.csv delete mode 100644 up_pump_sweep.csv diff --git a/S1_S2_RR_not_equal.csv b/S1_S2_RR_not_equal.csv deleted file mode 100644 index d8783e0..0000000 --- a/S1_S2_RR_not_equal.csv +++ /dev/null @@ -1,39 +0,0 @@ -Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) -8.80E-01,1.45E-01,5.63E-01,6.05E-01,3.04E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.74E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,6.54E+05,1.55E+05,1.36E+05,2.14E+04,-1.65E+03,1.76E-04,2.02E-04,8.97E-05,1.40E-02,1.89E-02,2.24E-01,8.53E-01,1.00E+00 -8.89E-01,1.45E-01,5.63E-01,6.05E-01,3.56E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.61E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.10E+05,1.58E+05,1.36E+05,2.14E+04,1.11E+03,1.76E-04,2.02E-04,1.06E-04,1.40E-02,1.89E-02,2.03E-01,8.53E-01,1.00E+00 -8.98E-01,1.45E-01,5.63E-01,6.05E-01,4.08E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.48E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.66E+05,1.61E+05,1.36E+05,2.14E+04,3.95E+03,1.76E-04,2.02E-04,1.22E-04,1.40E-02,1.89E-02,1.88E-01,8.53E-01,1.00E+00 -9.07E-01,1.45E-01,5.63E-01,6.05E-01,4.61E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.35E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,8.25E+05,1.64E+05,1.36E+05,2.14E+04,6.89E+03,1.76E-04,2.02E-04,1.39E-04,1.40E-02,1.89E-02,1.77E-01,8.53E-01,1.00E+00 -9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.51E-01,5.71E-01,6.14E-01,2.74E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.81E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.34E+05,1.67E+05,1.49E+05,2.16E+04,-4.29E+03,1.86E-04,2.09E-04,8.12E-05,1.34E-02,1.89E-02,2.50E-01,8.80E-01,1.00E+00 -8.89E-01,1.51E-01,5.71E-01,6.14E-01,3.29E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.68E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,6.92E+05,1.70E+05,1.49E+05,2.16E+04,-1.40E+03,1.86E-04,2.09E-04,9.76E-05,1.34E-02,1.89E-02,2.22E-01,8.80E-01,1.00E+00 -8.98E-01,1.51E-01,5.71E-01,6.14E-01,3.83E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.54E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,7.51E+05,1.73E+05,1.49E+05,2.16E+04,1.56E+03,1.86E-04,2.09E-04,1.15E-04,1.34E-02,1.89E-02,2.03E-01,8.80E-01,1.00E+00 -9.07E-01,1.51E-01,5.71E-01,6.14E-01,4.37E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.41E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.12E+05,1.76E+05,1.49E+05,2.16E+04,4.61E+03,1.86E-04,2.09E-04,1.32E-04,1.34E-02,1.89E-02,1.90E-01,8.80E-01,1.00E+00 -9.16E-01,1.51E-01,5.71E-01,6.14E-01,4.92E-01,1.51E-01,6.48E-02,2.50E-02,6.48E-02,2.50E-02,1.27E-02,2.44E+05,8.00E+05,7.20E+05,8.74E+05,1.05E+06,8.76E+05,1.79E+05,1.49E+05,2.16E+04,7.82E+03,1.86E-04,2.09E-04,1.51E-04,1.34E-02,1.89E-02,1.81E-01,8.80E-01,1.00E+00 -9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.57E-01,5.78E-01,6.22E-01,2.47E-01,1.57E-01,6.64E-02,2.51E-02,6.64E-02,2.51E-02,1.89E-02,2.44E+05,8.35E+05,7.52E+05,9.09E+05,1.08E+06,6.16E+05,1.79E+05,1.64E+05,2.18E+04,-6.82E+03,1.95E-04,2.17E-04,7.35E-05,1.29E-02,1.88E-02,2.79E-01,9.06E-01,1.00E+00 -8.89E-01,1.57E-01,5.79E-01,6.23E-01,3.01E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.75E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,6.74E+05,1.82E+05,1.64E+05,2.18E+04,-3.92E+03,1.96E-04,2.17E-04,8.96E-05,1.29E-02,1.88E-02,2.45E-01,9.07E-01,1.00E+00 -8.98E-01,1.57E-01,5.79E-01,6.23E-01,3.58E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.61E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.35E+05,1.85E+05,1.64E+05,2.18E+04,-8.42E+02,1.96E-04,2.17E-04,1.07E-04,1.29E-02,1.88E-02,2.20E-01,9.07E-01,1.00E+00 -9.07E-01,1.57E-01,5.79E-01,6.23E-01,4.14E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.46E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.99E+05,1.88E+05,1.64E+05,2.18E+04,2.33E+03,1.96E-04,2.17E-04,1.25E-04,1.29E-02,1.88E-02,2.03E-01,9.07E-01,1.00E+00 -9.16E-01,1.57E-01,5.79E-01,6.23E-01,4.71E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.32E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,8.65E+05,1.91E+05,1.64E+05,2.18E+04,5.65E+03,1.96E-04,2.17E-04,1.44E-04,1.29E-02,1.88E-02,1.91E-01,9.07E-01,1.00E+00 -9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.64E-01,5.81E-01,6.22E-01,2.42E-01,1.64E-01,6.85E-02,2.59E-02,6.85E-02,2.59E-02,1.96E-02,2.44E+05,8.66E+05,7.77E+05,9.39E+05,1.11E+06,6.20E+05,1.91E+05,1.77E+05,2.20E+04,-8.14E+03,2.04E-04,2.23E-04,7.43E-05,1.24E-02,1.84E-02,2.76E-01,9.29E-01,1.00E+00 -8.89E-01,1.64E-01,5.83E-01,6.26E-01,2.88E-01,1.64E-01,6.82E-02,2.55E-02,6.82E-02,2.55E-02,1.82E-02,2.44E+05,8.68E+05,7.80E+05,9.42E+05,1.11E+06,6.70E+05,1.94E+05,1.78E+05,2.20E+04,-5.61E+03,2.04E-04,2.24E-04,8.74E-05,1.24E-02,1.85E-02,2.52E-01,9.31E-01,1.00E+00 -8.98E-01,1.64E-01,5.86E-01,6.31E-01,3.33E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.67E-02,2.44E+05,8.71E+05,7.84E+05,9.45E+05,1.11E+06,7.20E+05,1.98E+05,1.79E+05,2.20E+04,-3.22E+03,2.05E-04,2.25E-04,9.99E-05,1.24E-02,1.87E-02,2.39E-01,9.32E-01,1.00E+00 -9.07E-01,1.64E-01,5.86E-01,6.31E-01,3.91E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.52E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,7.85E+05,2.01E+05,1.79E+05,2.20E+04,4.49E+01,2.05E-04,2.25E-04,1.18E-04,1.24E-02,1.87E-02,2.17E-01,9.32E-01,1.00E+00 -9.16E-01,1.64E-01,5.86E-01,6.31E-01,4.50E-01,1.64E-01,6.78E-02,2.50E-02,6.78E-02,2.50E-02,1.37E-02,2.44E+05,8.72E+05,7.84E+05,9.45E+05,1.11E+06,8.54E+05,2.04E+05,1.79E+05,2.20E+04,3.48E+03,2.05E-04,2.25E-04,1.38E-04,1.24E-02,1.87E-02,2.03E-01,9.32E-01,1.00E+00 -9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.89E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.98E-01,1.70E-01,5.89E-01,6.31E-01,3.29E-01,1.70E-01,6.99E-02,2.58E-02,6.99E-02,2.58E-02,1.73E-02,2.44E+05,9.02E+05,8.10E+05,9.76E+05,1.14E+06,7.26E+05,2.11E+05,1.93E+05,2.22E+04,-4.30E+03,2.13E-04,2.31E-04,1.01E-04,1.20E-02,1.83E-02,2.35E-01,9.55E-01,1.00E+00 -9.07E-01,1.70E-01,5.91E-01,6.36E-01,3.74E-01,1.70E-01,6.94E-02,2.52E-02,6.94E-02,2.52E-02,1.58E-02,2.44E+05,9.05E+05,8.14E+05,9.79E+05,1.14E+06,7.78E+05,2.14E+05,1.94E+05,2.21E+04,-1.82E+03,2.14E-04,2.32E-04,1.14E-04,1.20E-02,1.86E-02,2.27E-01,9.57E-01,1.00E+00 -9.16E-01,1.70E-01,5.92E-01,6.39E-01,4.29E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.43E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,8.43E+05,2.18E+05,1.95E+05,2.21E+04,1.31E+03,2.15E-04,2.33E-04,1.32E-04,1.20E-02,1.87E-02,2.16E-01,9.58E-01,1.00E+00 -9.25E-01,1.70E-01,5.92E-01,6.39E-01,4.90E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.27E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,9.18E+05,2.22E+05,1.95E+05,2.21E+04,5.06E+03,2.15E-04,2.33E-04,1.53E-04,1.20E-02,1.87E-02,2.04E-01,9.58E-01,1.00E+00 -8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.89E-01,1.76E-01,5.89E-01,6.25E-01,2.80E-01,1.76E-01,7.24E-02,2.72E-02,7.24E-02,2.72E-02,1.95E-02,2.44E+05,9.29E+05,8.30E+05,1.00E+06,1.16E+06,6.81E+05,2.21E+05,2.07E+05,2.25E+04,-8.14E+03,2.21E-04,2.37E-04,8.96E-05,1.16E-02,1.78E-02,2.46E-01,9.76E-01,1.00E+00 -8.98E-01,1.76E-01,5.91E-01,6.30E-01,3.25E-01,1.76E-01,7.20E-02,2.66E-02,7.20E-02,2.66E-02,1.80E-02,2.44E+05,9.32E+05,8.35E+05,1.01E+06,1.17E+06,7.33E+05,2.25E+05,2.08E+05,2.24E+04,-5.44E+03,2.22E-04,2.38E-04,1.03E-04,1.16E-02,1.80E-02,2.32E-01,9.78E-01,1.00E+00 -9.07E-01,1.76E-01,5.94E-01,6.36E-01,3.71E-01,1.76E-01,7.15E-02,2.60E-02,7.15E-02,2.60E-02,1.64E-02,2.44E+05,9.36E+05,8.40E+05,1.01E+06,1.17E+06,7.86E+05,2.29E+05,2.09E+05,2.24E+04,-2.81E+03,2.23E-04,2.39E-04,1.16E-04,1.16E-02,1.82E-02,2.24E-01,9.80E-01,1.00E+00 -9.16E-01,1.76E-01,5.97E-01,6.43E-01,4.17E-01,1.76E-01,7.10E-02,2.54E-02,7.10E-02,2.54E-02,1.48E-02,2.44E+05,9.40E+05,8.45E+05,1.01E+06,1.18E+06,8.41E+05,2.32E+05,2.10E+05,2.23E+04,-2.00E+02,2.24E-04,2.40E-04,1.30E-04,1.16E-02,1.85E-02,2.20E-01,9.82E-01,1.00E+00 -9.25E-01,1.76E-01,5.99E-01,6.46E-01,4.72E-01,1.76E-01,7.07E-02,2.50E-02,7.07E-02,2.50E-02,1.32E-02,2.44E+05,9.43E+05,8.49E+05,1.02E+06,1.18E+06,9.09E+05,2.36E+05,2.11E+05,2.23E+04,3.00E+03,2.24E-04,2.41E-04,1.48E-04,1.16E-02,1.86E-02,2.15E-01,9.83E-01,1.00E+00 -,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/initial_ro_sweep_results.csv b/initial_ro_sweep_results.csv deleted file mode 100644 index a9519c3..0000000 --- a/initial_ro_sweep_results.csv +++ /dev/null @@ -1,67 +0,0 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine Flow (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -8.80E-01,1.45E-01,5.53E-01,5.53E-01,4.00E-01,1.45E-01,6.48E-02,2.90E-02,6.48E-02,2.90E-02,1.74E-02,2.44E+05,7.53E+05,6.27E+05,8.27E+05,9.57E+05,7.68E+05,1.58E+05,1.33E+05,1.77E+04,8.18E+03,1.73E-04,1.87E-04,1.33E-04,1.41E-02,1.84E-02,1.43E-01 -8.80E-01,1.51E-01,5.53E-01,5.53E-01,4.00E-01,1.51E-01,6.77E-02,3.03E-02,6.77E-02,3.03E-02,1.82E-02,2.44E+05,7.79E+05,6.56E+05,8.52E+05,9.86E+05,7.84E+05,1.70E+05,1.44E+05,1.88E+04,7.77E+03,1.80E-04,1.94E-04,1.37E-04,1.35E-02,1.77E-02,1.37E-01 -8.80E-01,1.58E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.90E-01,1.45E-01,5.72E-01,5.72E-01,4.00E-01,1.45E-01,6.21E-02,2.66E-02,6.21E-02,2.66E-02,1.60E-02,2.44E+05,7.75E+05,6.31E+05,8.49E+05,9.61E+05,7.60E+05,1.61E+05,1.38E+05,1.54E+04,6.87E+03,1.79E-04,1.87E-04,1.24E-04,1.40E-02,1.98E-02,1.69E-01 -8.90E-01,1.51E-01,5.72E-01,5.72E-01,4.00E-01,1.51E-01,6.48E-02,2.77E-02,6.48E-02,2.77E-02,1.66E-02,2.44E+05,8.01E+05,6.59E+05,8.75E+05,9.89E+05,7.75E+05,1.72E+05,1.50E+05,1.63E+04,6.43E+03,1.86E-04,1.94E-04,1.29E-04,1.34E-02,1.91E-02,1.62E-01 -8.90E-01,1.58E-01,5.72E-01,5.72E-01,4.00E-01,1.58E-01,6.75E-02,2.89E-02,6.75E-02,2.89E-02,1.73E-02,2.44E+05,8.28E+05,6.88E+05,9.01E+05,1.02E+06,7.90E+05,1.85E+05,1.62E+05,1.72E+04,5.92E+03,1.93E-04,2.01E-04,1.33E-04,1.29E-02,1.84E-02,1.56E-01 -8.90E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.90E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -8.90E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.00E-01,1.45E-01,5.92E-01,5.92E-01,4.00E-01,1.45E-01,5.92E-02,2.42E-02,5.92E-02,2.42E-02,1.45E-02,2.44E+05,7.98E+05,6.34E+05,8.72E+05,9.64E+05,7.56E+05,1.63E+05,1.44E+05,1.31E+04,5.91E+03,1.85E-04,1.86E-04,1.16E-04,1.39E-02,2.17E-02,2.02E-01 -9.00E-01,1.51E-01,5.92E-01,5.92E-01,4.00E-01,1.51E-01,6.18E-02,2.52E-02,6.18E-02,2.52E-02,1.51E-02,2.44E+05,8.25E+05,6.62E+05,8.99E+05,9.92E+05,7.70E+05,1.75E+05,1.56E+05,1.38E+04,5.45E+03,1.93E-04,1.93E-04,1.21E-04,1.33E-02,2.08E-02,1.95E-01 -9.00E-01,1.58E-01,5.92E-01,5.92E-01,4.00E-01,1.58E-01,6.43E-02,2.63E-02,6.43E-02,2.63E-02,1.58E-02,2.44E+05,8.52E+05,6.90E+05,9.26E+05,1.02E+06,7.84E+05,1.88E+05,1.68E+05,1.45E+04,4.93E+03,2.00E-04,2.00E-04,1.25E-04,1.29E-02,2.00E-02,1.88E-01 -9.00E-01,1.64E-01,5.92E-01,5.92E-01,4.00E-01,1.64E-01,6.69E-02,2.73E-02,6.69E-02,2.73E-02,1.64E-02,2.44E+05,8.80E+05,7.18E+05,9.54E+05,1.05E+06,7.98E+05,2.01E+05,1.81E+05,1.53E+04,4.34E+03,2.07E-04,2.08E-04,1.29E-04,1.24E-02,1.93E-02,1.81E-01 -9.00E-01,1.70E-01,5.92E-01,5.92E-01,4.00E-01,1.70E-01,6.94E-02,2.84E-02,6.94E-02,2.84E-02,1.70E-02,2.44E+05,9.07E+05,7.46E+05,9.81E+05,1.08E+06,8.11E+05,2.15E+05,1.95E+05,1.61E+04,3.69E+03,2.15E-04,2.15E-04,1.33E-04,1.20E-02,1.87E-02,1.75E-01 -9.00E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.10E-01,1.45E-01,5.96E-01,5.96E-01,4.48E-01,1.45E-01,5.85E-02,2.36E-02,5.85E-02,2.36E-02,1.31E-02,2.44E+05,8.03E+05,6.34E+05,8.77E+05,9.65E+05,8.08E+05,1.66E+05,1.46E+05,1.26E+04,8.22E+03,1.87E-04,1.86E-04,1.30E-04,1.39E-02,2.21E-02,2.00E-01 -9.10E-01,1.51E-01,5.97E-01,5.97E-01,4.46E-01,1.51E-01,6.10E-02,2.46E-02,6.10E-02,2.46E-02,1.36E-02,2.44E+05,8.31E+05,6.62E+05,9.05E+05,9.93E+05,8.21E+05,1.79E+05,1.58E+05,1.32E+04,7.82E+03,1.94E-04,1.93E-04,1.33E-04,1.33E-02,2.13E-02,1.94E-01 -9.10E-01,1.58E-01,5.98E-01,5.98E-01,4.44E-01,1.58E-01,6.34E-02,2.55E-02,6.34E-02,2.55E-02,1.42E-02,2.44E+05,8.60E+05,6.91E+05,9.33E+05,1.02E+06,8.34E+05,1.92E+05,1.70E+05,1.38E+04,7.34E+03,2.02E-04,2.00E-04,1.37E-04,1.28E-02,2.06E-02,1.89E-01 -9.10E-01,1.64E-01,5.98E-01,5.98E-01,4.42E-01,1.64E-01,6.58E-02,2.64E-02,6.58E-02,2.64E-02,1.47E-02,2.44E+05,8.88E+05,7.19E+05,9.62E+05,1.05E+06,8.47E+05,2.05E+05,1.84E+05,1.44E+04,6.78E+03,2.10E-04,2.07E-04,1.41E-04,1.24E-02,1.99E-02,1.84E-01 -9.10E-01,1.70E-01,5.99E-01,5.99E-01,4.41E-01,1.70E-01,6.82E-02,2.74E-02,6.82E-02,2.74E-02,1.53E-02,2.44E+05,9.17E+05,7.47E+05,9.90E+05,1.08E+06,8.59E+05,2.19E+05,1.98E+05,1.50E+04,6.14E+03,2.17E-04,2.14E-04,1.44E-04,1.19E-02,1.93E-02,1.79E-01 -9.10E-01,1.76E-01,6.05E-01,6.05E-01,4.24E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.59E-02,2.44E+05,9.52E+05,7.75E+05,1.03E+06,1.10E+06,8.51E+05,2.33E+05,2.14E+05,1.48E+04,4.21E+03,2.27E-04,2.21E-04,1.40E-04,1.15E-02,1.92E-02,1.87E-01 -9.20E-01,1.45E-01,6.01E-01,6.01E-01,4.97E-01,1.45E-01,5.78E-02,2.31E-02,5.78E-02,2.31E-02,1.16E-02,2.44E+05,8.09E+05,6.35E+05,8.82E+05,9.65E+05,8.65E+05,1.70E+05,1.47E+05,1.21E+04,1.06E+04,1.88E-04,1.85E-04,1.44E-04,1.39E-02,2.26E-02,2.01E-01 -9.20E-01,1.51E-01,6.02E-01,6.02E-01,4.96E-01,1.51E-01,6.03E-02,2.40E-02,6.03E-02,2.40E-02,1.21E-02,2.44E+05,8.37E+05,6.63E+05,9.11E+05,9.93E+05,8.79E+05,1.82E+05,1.59E+05,1.26E+04,1.04E+04,1.96E-04,1.93E-04,1.48E-04,1.33E-02,2.18E-02,1.95E-01 -9.20E-01,1.58E-01,6.02E-01,6.02E-01,4.94E-01,1.58E-01,6.27E-02,2.49E-02,6.27E-02,2.49E-02,1.26E-02,2.44E+05,8.66E+05,6.91E+05,9.39E+05,1.02E+06,8.93E+05,1.95E+05,1.72E+05,1.32E+04,1.01E+04,2.04E-04,2.00E-04,1.52E-04,1.28E-02,2.11E-02,1.89E-01 -9.20E-01,1.64E-01,6.03E-01,6.03E-01,4.93E-01,1.64E-01,6.51E-02,2.58E-02,6.51E-02,2.58E-02,1.31E-02,2.44E+05,8.94E+05,7.19E+05,9.68E+05,1.05E+06,9.07E+05,2.09E+05,1.85E+05,1.37E+04,9.74E+03,2.11E-04,2.07E-04,1.56E-04,1.24E-02,2.04E-02,1.84E-01 -9.20E-01,1.70E-01,6.04E-01,6.04E-01,4.91E-01,1.70E-01,6.74E-02,2.67E-02,6.74E-02,2.67E-02,1.36E-02,2.44E+05,9.23E+05,7.47E+05,9.97E+05,1.08E+06,9.21E+05,2.23E+05,1.99E+05,1.43E+04,9.30E+03,2.19E-04,2.14E-04,1.60E-04,1.19E-02,1.97E-02,1.79E-01 -9.20E-01,1.76E-01,6.05E-01,6.05E-01,4.88E-01,1.76E-01,6.97E-02,2.76E-02,6.97E-02,2.76E-02,1.41E-02,2.44E+05,9.52E+05,7.75E+05,1.03E+06,1.10E+06,9.33E+05,2.38E+05,2.14E+05,1.48E+04,8.70E+03,2.27E-04,2.21E-04,1.63E-04,1.15E-02,1.92E-02,1.76E-01 -9.30E-01,1.45E-01,6.06E-01,6.06E-01,5.49E-01,1.45E-01,5.71E-02,2.25E-02,5.71E-02,2.25E-02,1.02E-02,2.44E+05,8.15E+05,6.36E+05,8.88E+05,9.66E+05,9.27E+05,1.73E+05,1.49E+05,1.15E+04,1.31E+04,1.90E-04,1.85E-04,1.60E-04,1.38E-02,2.32E-02,2.06E-01 -9.30E-01,1.51E-01,6.07E-01,6.07E-01,5.47E-01,1.51E-01,5.95E-02,2.34E-02,5.95E-02,2.34E-02,1.06E-02,2.44E+05,8.43E+05,6.63E+05,9.17E+05,9.94E+05,9.43E+05,1.86E+05,1.61E+05,1.20E+04,1.31E+04,1.98E-04,1.92E-04,1.64E-04,1.33E-02,2.23E-02,2.00E-01 -9.30E-01,1.58E-01,6.07E-01,6.07E-01,5.46E-01,1.58E-01,6.19E-02,2.43E-02,6.19E-02,2.43E-02,1.10E-02,2.44E+05,8.72E+05,6.91E+05,9.46E+05,1.02E+06,9.58E+05,1.99E+05,1.74E+05,1.25E+04,1.30E+04,2.05E-04,2.00E-04,1.69E-04,1.28E-02,2.16E-02,1.94E-01 -9.30E-01,1.64E-01,6.08E-01,6.08E-01,5.44E-01,1.64E-01,6.42E-02,2.52E-02,6.42E-02,2.52E-02,1.15E-02,2.44E+05,9.01E+05,7.19E+05,9.75E+05,1.05E+06,9.74E+05,2.13E+05,1.87E+05,1.30E+04,1.28E+04,2.13E-04,2.07E-04,1.73E-04,1.23E-02,2.09E-02,1.88E-01 -9.30E-01,1.70E-01,6.09E-01,6.09E-01,5.43E-01,1.70E-01,6.66E-02,2.60E-02,6.66E-02,2.60E-02,1.19E-02,2.44E+05,9.30E+05,7.47E+05,1.00E+06,1.08E+06,9.89E+05,2.28E+05,2.01E+05,1.35E+04,1.26E+04,2.21E-04,2.14E-04,1.77E-04,1.19E-02,2.02E-02,1.83E-01 -9.30E-01,1.76E-01,6.09E-01,6.09E-01,5.41E-01,1.76E-01,6.89E-02,2.69E-02,6.89E-02,2.69E-02,1.23E-02,2.44E+05,9.59E+05,7.75E+05,1.03E+06,1.10E+06,1.00E+06,2.42E+05,2.16E+05,1.40E+04,1.23E+04,2.29E-04,2.21E-04,1.81E-04,1.15E-02,1.96E-02,1.79E-01 -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/ps_demo.h5 b/ps_demo.h5 deleted file mode 100644 index 798677a6ca44feb9cb6d218bfac31d98e16688c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15480 zcmeHOZ)hAv6ra1~^h{Heg4MPvE@B}~>E)WlCf364X_KB1o6w}Tw1o4TY?34QFSpqw zl}JE8bhS`wpx6&qtOy?XC5T8wMcZmUC8SjZ{UD+!*a{_~N=peEXLjCel1VS;1#NPd znUH%kZ{EJ0`Q4j0GjHZz^6#u)U9_Qyu;g}=LQ-mH@nag&zz)vAGS)u}83#}cXwu0u z4#NHjSqJ&r*KqC?hGs}WJhHP2RV#oC4J+?_F39 z?cTd;VY#KM9lKIe+0r+v*1Y-5Dfh=8sx~S3L_OlV`a$i+GwMfy6BEO!vnnfH>HbVD zyXS`kyGqWhtuCh}5FBjAc zpKl5U&RtZ0PfWd7eBx^r`^)!R6GL}UhBa&M-#n|#mfG!!w=TQCozSKaZ+~a_@}&00 zvB7Urj;mVZj_&v0+xCZc=K9NZgGc|=8t&iM{Jis;_V&-NvxiPy*EaM#l&ERFp>>aq zzk2wIDQ!#D>z3!~zqGZl9H_ZAIIUTmcAq@zrfW}i_Cc;Lz$%^^SR zBYQlQ9L3|-=PY7;FH?LfS;4=5(OaNZNSfaWi18`h&U+y~jJ_KfLFn(7yjVewMat{Zr>E&^<-m%jUl*U#FOpES&EdG zS5?qJA0BtHeK|`VhNpub8F=D}7!3^ehIHeg*W+#VbkM+Ipf45<#Jhrqey}0b(`w5@ z*oiW`a|xW}Y%Mo(KT+MA#{sa`Xpd-`LEZu@Oq z)c({k@HLAkvl0P`fJ8tdAQ6xVNCYGT5&?;TL_i`S5s(OQ1Tw|tNF|q(ak-UgG2;C# z3*ucEClcdiD-)&6y`F!r#3P*avWWdKhOdw={{EI1&JhNLMp;66X^Z0ht$}R|w+By& z{C2c3y{s3ix*kn0!)g?$-d_!wGz9(LBq~lLw^Z!;cEwwa<8$$Ll+5e%%Ixn&j^s5S z*`HUA=ID8)c#rnh<0X4MQaOo7ruCoqaqijB4=$CTlkZ&`1jKVs1)7n9-{WAbGX2i2 z76tz$ojbZj&UVs YKS4jl^%U}N4;9zp%J$py-h6w@Klq2l+yDRo diff --git a/ro_sweep_brine_lim.csv b/ro_sweep_brine_lim.csv deleted file mode 100644 index 3008e63..0000000 --- a/ro_sweep_brine_lim.csv +++ /dev/null @@ -1,37 +0,0 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 -8.800000e-01,1.512222e-01,5.844850e-01,5.844850e-01,3.049622e-01,1.512222e-01,6.283512e-02,2.610898e-02,6.283512e-02,2.610898e-02,1.814675e-02,2.440744e+05,8.162474e+05,6.607105e+05,8.900213e+05,9.909694e+05,6.662238e+05,1.686141e+05,1.536270e+05,1.469921e+04,2.878957e+02,1.902522e-04,1.933741e-04,9.332732e-05,1.337931e-02,2.015657e-02,2.143733e-01 -8.800000e-01,1.574444e-01,5.850838e-01,5.850838e-01,3.029546e-01,1.574444e-01,6.532627e-02,2.710497e-02,6.532627e-02,2.710497e-02,1.889343e-02,2.440744e+05,8.437176e+05,6.888193e+05,9.174915e+05,1.019078e+06,6.750313e+05,1.806089e+05,1.659429e+05,1.541343e+04,-7.474519e+02,1.976874e-04,2.005825e-04,9.572745e-05,1.288241e-02,1.946445e-02,2.088784e-01 -8.800000e-01,1.636667e-01,5.857186e-01,5.857186e-01,3.008168e-01,1.636667e-01,6.780408e-02,2.809001e-02,6.780408e-02,2.809001e-02,1.964010e-02,2.440744e+05,8.712853e+05,7.168987e+05,9.450592e+05,1.047158e+06,6.834501e+05,1.930945e+05,1.788276e+05,1.614606e+04,-1.879142e+03,2.051495e-04,2.077821e-04,9.800780e-05,1.242249e-02,1.882722e-02,2.039268e-01 -8.800000e-01,1.698889e-01,5.863848e-01,5.863848e-01,2.985626e-01,1.698889e-01,7.026864e-02,2.906423e-02,7.026864e-02,2.906423e-02,2.038677e-02,2.440744e+05,8.989498e+05,7.449466e+05,9.727237e+05,1.075206e+06,6.914900e+05,2.060842e+05,1.922955e+05,1.689608e+04,-3.107350e+03,2.126382e-04,2.149725e-04,1.001712e-04,1.199558e-02,1.823864e-02,1.994567e-01 -8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 -8.890000e-01,1.450000e-01,5.847730e-01,5.847730e-01,3.561977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.609509e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.093406e+05,1.598617e+05,1.421216e+05,1.390794e+04,3.832111e+03,1.831058e-04,1.861288e-04,1.055135e-04,1.391427e-02,2.098942e-02,2.024069e-01 -8.890000e-01,1.512222e-01,5.879038e-01,5.879038e-01,3.463782e-01,1.512222e-01,6.231812e-02,2.568110e-02,6.231812e-02,2.568110e-02,1.678576e-02,2.440744e+05,8.203436e+05,6.611407e+05,8.941175e+05,9.913995e+05,7.110520e+05,1.715708e+05,1.547312e+05,1.427613e+04,2.563559e+03,1.913537e-04,1.932372e-04,1.050391e-04,1.336607e-02,2.046640e-02,2.040924e-01 -8.890000e-01,1.574444e-01,5.885257e-01,5.885257e-01,3.444010e-01,1.574444e-01,6.478436e-02,2.665715e-02,6.478436e-02,2.665715e-02,1.747643e-02,2.440744e+05,8.480000e+05,6.891853e+05,9.217739e+05,1.019444e+06,7.210253e+05,1.837721e+05,1.671234e+05,1.495113e+04,1.697527e+03,1.988394e-04,2.004259e-04,1.077880e-04,1.286986e-02,1.976628e-02,1.987098e-01 -8.890000e-01,1.636667e-01,5.891811e-01,5.891811e-01,3.423074e-01,1.636667e-01,6.723737e-02,2.762243e-02,6.723737e-02,2.762243e-02,1.816710e-02,2.440744e+05,8.757530e+05,7.171980e+05,9.495269e+05,1.047457e+06,7.306173e+05,1.964699e+05,1.800857e+05,1.564286e+04,7.413503e+02,2.063516e-04,2.076052e-04,1.104185e-04,1.241061e-02,1.912156e-02,1.938335e-01 -8.890000e-01,1.698889e-01,5.898662e-01,5.898662e-01,3.401084e-01,1.698889e-01,6.967720e-02,2.857702e-02,6.967720e-02,2.857702e-02,1.885778e-02,2.440744e+05,9.036023e+05,7.451772e+05,9.773762e+05,1.075436e+06,7.398364e+05,2.096777e+05,1.936327e+05,1.635023e+04,-3.052491e+02,2.138903e-04,2.147749e-04,1.129332e-04,1.198434e-02,1.852602e-02,1.894067e-01 -8.890000e-01,1.761111e-01,5.905778e-01,5.905778e-01,3.378127e-01,1.761111e-01,7.210383e-02,2.952096e-02,7.210383e-02,2.952096e-02,1.954845e-02,2.440744e+05,9.315479e+05,7.731214e+05,1.005322e+06,1.103380e+06,7.486885e+05,2.234084e+05,2.077791e+05,1.707196e+04,-1.442570e+03,2.214556e-04,2.219347e-04,1.153337e-04,1.158762e-02,1.797433e-02,1.853825e-01 -8.980000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.083977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.479010e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,7.660497e+05,1.626971e+05,1.421216e+05,1.390794e+04,6.667565e+03,1.831058e-04,1.861288e-04,1.218491e-04,1.391427e-02,2.098942e-02,1.875822e-01 -8.980000e-01,1.512222e-01,5.915971e-01,5.915971e-01,3.884622e-01,1.512222e-01,6.175962e-02,2.522286e-02,6.175962e-02,2.522286e-02,1.542477e-02,2.440744e+05,8.247728e+05,6.615830e+05,8.985467e+05,9.918418e+05,7.569760e+05,1.745637e+05,1.559287e+05,1.382286e+04,4.812172e+03,1.925449e-04,1.930786e-04,1.169379e-04,1.335280e-02,2.081143e-02,1.977088e-01 -8.980000e-01,1.574444e-01,5.922312e-01,5.922312e-01,3.865585e-01,1.574444e-01,6.420094e-02,2.617919e-02,6.420094e-02,2.617919e-02,1.605944e-02,2.440744e+05,8.526148e+05,6.895538e+05,9.263887e+05,1.019813e+06,7.681323e+05,1.869713e+05,1.683994e+05,1.445763e+04,4.114241e+03,2.000808e-04,2.002457e-04,1.200420e-04,1.285736e-02,2.010130e-02,1.923527e-01 -8.980000e-01,1.636667e-01,5.928981e-01,5.928981e-01,3.845470e-01,1.636667e-01,6.662902e-02,2.712485e-02,6.662902e-02,2.712485e-02,1.669411e-02,2.440744e+05,8.805534e+05,7.174910e+05,9.543273e+05,1.047750e+06,7.789112e+05,1.998811e+05,1.814417e+05,1.510738e+04,3.332029e+03,2.076433e-04,2.074030e-04,1.230280e-04,1.239883e-02,1.944738e-02,1.874836e-01 -8.980000e-01,1.698889e-01,5.935942e-01,5.935942e-01,3.824369e-01,1.698889e-01,6.904385e-02,2.805987e-02,6.904385e-02,2.805987e-02,1.732879e-02,2.440744e+05,9.085889e+05,7.453929e+05,9.823628e+05,1.075652e+06,7.893195e+05,2.133064e+05,1.950703e+05,1.577091e+04,2.465154e+03,2.152324e-04,2.145502e-04,1.258977e-04,1.197325e-02,1.884339e-02,1.830480e-01 -8.980000e-01,1.761111e-01,5.943168e-01,5.943168e-01,3.802351e-01,1.761111e-01,7.144534e-02,2.898423e-02,7.144534e-02,2.898423e-02,1.796346e-02,2.440744e+05,9.367218e+05,7.732579e+05,1.010496e+06,1.103517e+06,7.993619e+05,2.272602e+05,2.093001e+05,1.644683e+04,1.513207e+03,2.228484e-04,2.216870e-04,1.286525e-04,1.157718e-02,1.828393e-02,1.790008e-01 -9.070000e-01,1.450000e-01,5.847730e-01,5.847730e-01,4.605977e-01,1.450000e-01,6.020793e-02,2.500000e-02,6.020793e-02,2.500000e-02,1.348511e-02,2.440744e+05,7.898492e+05,6.326984e+05,8.636231e+05,9.629572e+05,8.248443e+05,1.656369e+05,1.421216e+05,1.390794e+04,9.607298e+03,1.831058e-04,1.861288e-04,1.388493e-04,1.391427e-02,2.098942e-02,1.772966e-01 -9.070000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.374508e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.406378e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.118965e+05,1.776245e+05,1.565168e+05,1.360243e+04,7.505250e+03,1.931286e-04,1.929971e-04,1.320834e-04,1.334669e-02,2.098440e-02,1.893829e-01 -9.070000e-01,1.574444e-01,5.961648e-01,5.961648e-01,4.297363e-01,1.574444e-01,6.358163e-02,2.567655e-02,6.358163e-02,2.567655e-02,1.464245e-02,2.440744e+05,8.575187e+05,6.899184e+05,9.312926e+05,1.020177e+06,8.171607e+05,1.902328e+05,1.697597e+05,1.393879e+04,6.534286e+03,2.014000e-04,2.000419e-04,1.327010e-04,1.284522e-02,2.046883e-02,1.890675e-01 -9.070000e-01,1.636667e-01,5.968349e-01,5.968349e-01,4.278392e-01,1.636667e-01,6.598471e-02,2.660279e-02,6.598471e-02,2.660279e-02,1.522113e-02,2.440744e+05,8.856428e+05,7.177715e+05,9.594167e+05,1.048030e+06,8.291413e+05,2.033554e+05,1.828841e+05,1.454581e+04,5.925498e+03,2.090127e-04,2.071754e-04,1.360484e-04,1.238746e-02,1.980403e-02,1.841427e-01 -9.070000e-01,1.698889e-01,5.975348e-01,5.975348e-01,4.258474e-01,1.698889e-01,6.837439e-02,2.751836e-02,6.837439e-02,2.751836e-02,1.579980e-02,2.440744e+05,9.138650e+05,7.455878e+05,9.876389e+05,1.075847e+06,8.407516e+05,2.169987e+05,1.965965e+05,1.516470e+04,5.237508e+03,2.166525e-04,2.142984e-04,1.392783e-04,1.196260e-02,1.919011e-02,1.796463e-01 -9.070000e-01,1.761111e-01,5.982622e-01,5.982622e-01,4.237662e-01,1.761111e-01,7.075050e-02,2.842320e-02,7.075050e-02,2.842320e-02,1.637847e-02,2.440744e+05,9.421865e+05,7.733657e+05,1.015960e+06,1.103625e+06,8.519949e+05,2.311758e+05,2.109121e+05,1.579393e+04,4.469787e+03,2.243195e-04,2.214103e-04,1.423914e-04,1.156721e-02,1.862162e-02,1.755343e-01 -9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.160000e-01,1.512222e-01,5.934053e-01,5.934053e-01,4.918908e-01,1.512222e-01,6.148618e-02,2.500000e-02,6.148618e-02,2.500000e-02,1.270280e-02,2.440744e+05,8.269431e+05,6.617915e+05,9.007170e+05,9.920504e+05,8.758944e+05,1.808244e+05,1.565168e+05,1.360243e+04,1.070514e+04,1.931286e-04,1.929971e-04,1.505509e-04,1.334669e-02,2.098440e-02,1.805572e-01 -9.160000e-01,1.574444e-01,6.003282e-01,6.003282e-01,4.741359e-01,1.574444e-01,6.292612e-02,2.514985e-02,6.292612e-02,2.514985e-02,1.322547e-02,2.440744e+05,8.627149e+05,6.902768e+05,9.364888e+05,1.020536e+06,8.689996e+05,1.935913e+05,1.712060e+05,1.339558e+04,8.989705e+03,2.027978e-04,1.998124e-04,1.459869e-04,1.283365e-02,2.087177e-02,1.885922e-01 -9.160000e-01,1.636667e-01,6.009926e-01,6.009926e-01,4.723832e-01,1.636667e-01,6.530424e-02,2.605693e-02,6.530424e-02,2.605693e-02,1.374814e-02,2.440744e+05,8.910237e+05,7.180369e+05,9.647976e+05,1.048296e+06,8.821977e+05,2.069285e+05,1.844142e+05,1.395925e+04,8.555057e+03,2.104606e-04,2.069205e-04,1.497030e-04,1.237668e-02,2.019418e-02,1.835425e-01 -9.160000e-01,1.698889e-01,6.016887e-01,6.016887e-01,4.705375e-01,1.698889e-01,6.766869e-02,2.695326e-02,6.766869e-02,2.695326e-02,1.427081e-02,2.440744e+05,9.194327e+05,7.457590e+05,9.932066e+05,1.076018e+06,8.950242e+05,2.207917e+05,1.982125e+05,1.453284e+04,8.046366e+03,2.181509e-04,2.140174e-04,1.532993e-04,1.195256e-02,1.956869e-02,1.789260e-01 -9.160000e-01,1.761111e-01,6.024143e-01,6.024143e-01,4.686030e-01,1.761111e-01,7.001928e-02,2.783872e-02,7.001928e-02,2.783872e-02,1.479349e-02,2.440744e+05,9.479434e+05,7.734415e+05,1.021717e+06,1.103700e+06,9.074808e+05,2.351938e+05,2.126161e+05,1.511466e+04,7.462965e+03,2.258692e-04,2.211027e-04,1.567762e-04,1.155787e-02,1.898974e-02,1.746987e-01 -9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.250000e-01,1.698889e-01,6.060862e-01,6.060862e-01,5.166515e-01,1.698889e-01,6.692161e-02,2.636140e-02,6.692161e-02,2.636140e-02,1.274183e-02,2.440744e+05,9.253338e+05,7.459053e+05,9.991077e+05,1.076164e+06,9.533013e+05,2.247383e+05,1.999315e+05,1.387234e+04,1.093450e+04,2.197391e-04,2.137031e-04,1.682468e-04,1.194327e-02,1.998482e-02,1.809572e-01 -9.250000e-01,1.761111e-01,6.068018e-01,6.068018e-01,5.148904e-01,1.761111e-01,6.924659e-02,2.722769e-02,6.924659e-02,2.722769e-02,1.320850e-02,2.440744e+05,9.540337e+05,7.734830e+05,1.027808e+06,1.103742e+06,9.669843e+05,2.393686e+05,2.144254e+05,1.440600e+04,1.053719e+04,2.275087e-04,2.207600e-04,1.720941e-04,1.154929e-02,1.939359e-02,1.765483e-01 diff --git a/ro_sweep_results.csv b/ro_sweep_results.csv deleted file mode 100644 index 8b9bebb..0000000 --- a/ro_sweep_results.csv +++ /dev/null @@ -1,5 +0,0 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -8.800000e-01,1.450000e-01,5.839279e-01,5.839279e-01,3.068222e-01,1.450000e-01,6.033047e-02,2.510187e-02,6.033047e-02,2.510187e-02,1.740008e-02,2.440744e+05,7.888760e+05,6.325741e+05,8.626499e+05,9.628330e+05,6.570158e+05,1.570969e+05,1.418657e+05,1.400423e+04,1.227061e+03,1.828442e-04,1.861573e-04,9.080377e-05,1.391783e-02,2.091097e-02,2.204861e-01 -8.800000e-01,1.761111e-01,5.870788e-01,5.870788e-01,2.962027e-01,1.761111e-01,7.272003e-02,3.002769e-02,7.272003e-02,3.002769e-02,2.113344e-02,2.440744e+05,9.267107e+05,7.729618e+05,1.000485e+06,1.103221e+06,6.991587e+05,2.195914e+05,2.063614e+05,1.766231e+04,-4.432272e+03,2.201534e-04,2.221535e-04,1.022200e-04,1.159825e-02,1.769344e-02,1.954166e-01 -9.300000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.300000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan diff --git a/src/wrd/components/ro_stage.py b/src/wrd/components/ro_stage.py index d485fc2..5b7d1b9 100644 --- a/src/wrd/components/ro_stage.py +++ b/src/wrd/components/ro_stage.py @@ -294,10 +294,10 @@ def run_march_stages(): # run_august_stages() # run_march_stages() m = main( - Qin=396*.29/.25, # gpm? + Qin=396 * 0.29 / 0.25, # gpm? Cin=2.58, Tin=295, - Pin= 100 * pyunits.psi, + Pin=100 * pyunits.psi, stage_num=3, file="wrd_inputs_8_19_21.yaml", ) diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 147f171..bc01364 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -38,7 +38,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): ), # Store CSV next to this script "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, - "initialize_before_sweep": False, #!!!!!!! + "initialize_before_sweep": False, #!!!!!!! "reinitialize_function": None, "reinitialize_kwargs": {}, "reinitialize_before_sweep": False, @@ -54,23 +54,26 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): ps = ParameterSweep(**kwargs_dict) return ps, kwargs_dict + if __name__ == "__main__": num_samples = 6 num_procs = 6 op_limits = { # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "Qout_min": 3*72/3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + "Qout_min": 3 + * 72 + / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? # "Qin_max": 635 / 3600, # Based on pump limitation }, "Stage 2": { - "Qout_min": 3*30/3600, + "Qout_min": 3 * 30 / 3600, # "Qin_min": 200 / 3600, # "Qin_max": 251 / 3600, # This came from stage 1 min recovery of 55% }, "Stage 3": { - "Qout_min": 3*15/3600, + "Qout_min": 3 * 15 / 3600, # "Qin_min": 75 / 3600, # "Qin_max": 126 / 3600, }, diff --git a/src/wrd/surrogate_models/energy_param_sweep_pump.py b/src/wrd/surrogate_models/energy_param_sweep_pump.py index 1543344..9d0d8f4 100644 --- a/src/wrd/surrogate_models/energy_param_sweep_pump.py +++ b/src/wrd/surrogate_models/energy_param_sweep_pump.py @@ -51,6 +51,7 @@ def create_parameter_sweep_object(num_samples, num_procs, var_lims): ps = ParameterSweep(**kwargs_dict) return ps, kwargs_dict + if __name__ == "__main__": num_samples = 15 num_procs = 1 diff --git a/src/wrd/surrogate_models/energy_surrogate.py b/src/wrd/surrogate_models/energy_surrogate.py index 68d633d..70226d5 100644 --- a/src/wrd/surrogate_models/energy_surrogate.py +++ b/src/wrd/surrogate_models/energy_surrogate.py @@ -42,12 +42,14 @@ # Create PySMO Surrogate Model # Find the SEC -Data['Feed Flow m3/hr'] = Data['Feed Flow'] * 3600 -Data['Total_Permeate_Flow_m3_s'] = Data['Recovery'] * Data['Feed Flow'] -Data['Specific Energy (kWh/m3)'] = Data['Total Power (W)'] / Data['Total_Permeate_Flow_m3_s'] / 3600 / 1000 +Data["Feed Flow m3/hr"] = Data["Feed Flow"] * 3600 +Data["Total_Permeate_Flow_m3_s"] = Data["Recovery"] * Data["Feed Flow"] +Data["Specific Energy (kWh/m3)"] = ( + Data["Total Power (W)"] / Data["Total_Permeate_Flow_m3_s"] / 3600 / 1000 +) # Pull input and output data -input_data = Data.iloc[:,[0,-3]] ## RR,feed flow -output_data = Data.iloc[:,-1] # Specific Energy +input_data = Data.iloc[:, [0, -3]] ## RR,feed flow +output_data = Data.iloc[:, -1] # Specific Energy input_labels = [Data.columns[0], Data.columns[-3]] output_labels = [Data.columns[-1]] @@ -66,7 +68,7 @@ flowmin = min(Data[input_labels[1]]) flowmax = max(Data[input_labels[1]]) -input_bounds = {'Recovery': (RRmin, RRmax), 'Feed Flow m3/hr': (flowmin, flowmax)} +input_bounds = {"Recovery": (RRmin, RRmax), "Feed Flow m3/hr": (flowmin, flowmax)} # Sample Data n_data = output_data.size @@ -74,10 +76,8 @@ # data_training, data_validation = split_training_validation(Data_Scaled, training_fraction, seed= n_data) # Create Surrogate trainer = PysmoPolyTrainer( - input_labels=input_labels, - output_labels=output_labels, - training_dataframe = Data - ) + input_labels=input_labels, output_labels=output_labels, training_dataframe=Data +) trainer.config.maximum_polynomial_order = 2 trained_surr = trainer.train_surrogate() @@ -92,11 +92,11 @@ m.surrogate = Surrogate m.surrogate_blk.build_model( m.surrogate, - input_vars=[m.recovery,m.flowrate], + input_vars=[m.recovery, m.flowrate], output_vars=[m.power], ) m.surrogate_blk.pysmo_constraint.display() # display() -#m.surrogate_blk.pysmo_constraint["F_t"].pprint() +# m.surrogate_blk.pysmo_constraint["F_t"].pprint() minx1, maxx1 = m.recovery.bounds minx2, maxx2 = m.flowrate.bounds @@ -111,13 +111,15 @@ for j in range(num_points): m.recovery.fix(x1_vals[i]) m.flowrate.fix(x2_vals[j]) - calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"]) + calculate_variable_from_constraint( + m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"] + ) # m.surrogate_blk.display() # results = solver.solve(m, tee=True) # m.surrogate_blk.display() # print(m.flowrate.value, m.power.value) y_vals[i, j] = m.power.value - # assert False + # assert False X1, X2 = np.meshgrid(x1_vals, x2_vals, indexing="ij") @@ -137,7 +139,7 @@ ax.set_xlabel("RR") ax.set_ylabel("Feed Flowrate (m3/hr)") -ax.set_zlabel("Specific Energy (kWh/m3)") # Check units and scaling +ax.set_zlabel("Specific Energy (kWh/m3)") # Check units and scaling ax.set_title("Train Power Consumption Surrogate") ax.legend() @@ -160,7 +162,9 @@ for k, (x1, x2) in enumerate(zip(actual_x1, actual_x2)): m.recovery.fix(x1) m.flowrate.fix(x2) - calculate_variable_from_constraint(m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"]) + calculate_variable_from_constraint( + m.power, m.surrogate_blk.pysmo_constraint["Specific Energy (kWh/m3)"] + ) predicted_z[k] = m.power.value denominator = np.where(np.abs(actual_z) > 1e-12, actual_z, np.nan) @@ -186,4 +190,4 @@ # Save Surrogate surr_name = f"ro_SEC_poly_fit_order_{trainer.config.maximum_polynomial_order}.json" -Surrogate.save_to_file(os.path.join(current_directory, surr_name), overwrite=True) \ No newline at end of file +Surrogate.save_to_file(os.path.join(current_directory, surr_name), overwrite=True) diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index e80306c..fbb67ec 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -3,7 +3,16 @@ from wrd.components.ro_stage import initialize_ro_stage from wrd.components.ro_train import * from models import HeadLoss -from pyomo.environ import assert_optimal_termination, ConcreteModel, TransformationFactory, units as pyunits, Constraint, value, Objective, minimize +from pyomo.environ import ( + assert_optimal_termination, + ConcreteModel, + TransformationFactory, + units as pyunits, + Constraint, + value, + Objective, + minimize, +) from pyomo.network import Arc from srp.utils import touch_flow_and_conc from idaes.models.unit_models import ( @@ -18,15 +27,16 @@ from wrd.utilities import * from idaes.core.util.model_diagnostics import DiagnosticsToolbox + # Debugging def print_arcs_to_port(model, port, port_name=""): """Print all arcs connected to a given port (as source or destination)""" from pyomo.network import Arc - + print(f"\n{'='*60}") print(f"Arcs connected to {port_name or port}:") print(f"{'='*60}") - + found = False for component in model.component_data_objects(Arc, descend_into=True): name = component.getname(fully_qualified=True) @@ -36,7 +46,7 @@ def print_arcs_to_port(model, port, port_name=""): elif component.source is port: print(f" → {name}: {port_name or port} → {component.destination}") found = True - + if not found: print(f" (No arcs found)") print() @@ -79,8 +89,9 @@ def report_ports_with_multiple_arcs(model): print() return found_issue + # Build flowsheet function -def build_flowsheet(op_limits=None,scenario=None): +def build_flowsheet(op_limits=None, scenario=None): m = ConcreteModel() m.fs = FlowsheetBlock(dynamic=False) m.fs.properties = NaClParameterBlock() @@ -114,14 +125,14 @@ def build_flowsheet(op_limits=None,scenario=None): source=m.fs.ro_train.disposal.outlet, destination=m.fs.brine.inlet, ) - + # Add the pressure drop between PRO and TSRO m.fs.ro_train.tsro_header = HeadLoss(property_package=m.fs.properties) touch_flow_and_conc(m.fs.ro_train.tsro_header) m.fs.ro_train.tsro_header.control_volume.deltaP[0].fix( get_config_value(m.fs.ro_train.config_data, "tsro_header_loss", "headers") ) - + # Undo connection between the second and third stage to add in the head loss unit. # Deactivate (do not delete) to keep port arc bookkeeping consistent. if hasattr(m.fs.ro_train, "stage_2_to_stage_3"): @@ -153,13 +164,13 @@ def build_flowsheet(op_limits=None,scenario=None): # Set feed and operational conditions m.fs.feed.properties.calculate_state( - var_args={ - ("flow_vol_phase", ("Liq")): 2500 * pyunits.gallons / pyunits.minute, - ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, - ("pressure", None): 35.4 * pyunits.psi, - ("temperature", None): 298.15 * pyunits.K, - }, - hold_state=True, + var_args={ + ("flow_vol_phase", ("Liq")): 2500 * pyunits.gallons / pyunits.minute, + ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, + ("pressure", None): 35.4 * pyunits.psi, + ("temperature", None): 298.15 * pyunits.K, + }, + hold_state=True, ) set_ro_train_op_conditions(m.fs.ro_train) # Set limits on each stage recovery and flowrate @@ -170,12 +181,15 @@ def build_flowsheet(op_limits=None,scenario=None): # m.fs.ro_train.stage[i].feed.properties[0].flow_vol_phase["Liq"].setub( # op_limits[f"Stage {i}"]["Qin_max"] # ) - m.fs.ro_train.stage[i].disposal.properties[0].flow_vol_phase["Liq"].setlb(op_limits[f"Stage {i}"]["Qout_min"]) + m.fs.ro_train.stage[i].disposal.properties[0].flow_vol_phase["Liq"].setlb( + op_limits[f"Stage {i}"]["Qout_min"] + ) # m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setlb(op_limits[f"Stage {i}"]["RR_min"]) # m.fs.ro_train.stage[i].ro.unit.recovery_vol_phase[0, "Liq"].setub(op_limits[f"Stage {i}"]["RR_max"]) - print(degrees_of_freedom(m)) # Should be zero. + print(degrees_of_freedom(m)) # Should be zero. return m + # Build sweep parameters function def build_sweep_params( m, @@ -210,9 +224,15 @@ def initialize_model(m): # Initialize system # Changing the default pressure to have a more medium recovery - m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.fix(134 * pyunits.psi) - m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.fix(150 * pyunits.psi) - m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.fix(135 * pyunits.psi) # This value could be increased if another water perm value is used for S3 + m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.fix( + 134 * pyunits.psi + ) + m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.fix( + 150 * pyunits.psi + ) + m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.fix( + 135 * pyunits.psi + ) # This value could be increased if another water perm value is used for S3 assert degrees_of_freedom(m) == 0 m.fs.feed.initialize() propagate_state(m.fs.feed_to_train) @@ -228,7 +248,7 @@ def initialize_model(m): propagate_state(a) blk.tsro_header.initialize() a = blk.find_component("tsro_header_to_stage_3") - propagate_state(a) + propagate_state(a) initialize_ro_stage(blk.stage[3]) a = blk.find_component("stage_3_to_product") propagate_state(a) @@ -243,11 +263,11 @@ def initialize_model(m): print(blk.stage[3].feed.properties[0].flow_vol_phase["Liq"]()) print(blk.stage[2].pump.unit.control_volume.properties_out[0].pressure()) print(blk.stage[3].pump.unit.control_volume.properties_out[0].pressure()) - + propagate_state(m.fs.train_to_product) m.fs.product.initialize() propagate_state(m.fs.train_to_brine) - m.fs.brine.initialize() + m.fs.brine.initialize() assert degrees_of_freedom(m) == 0 # --solve--- @@ -256,28 +276,33 @@ def initialize_model(m): assert_optimal_termination(results) return results + # Optimizaiton function def optimize(m, solver=None, check_termination=True): print(f"Degrees of freedom start of optimize: {degrees_of_freedom(m)}") # Fix the mass fraction and unfix the flow mass so that the flow volume can be fixed by param sweep m.fs.feed.properties[0].mass_frac_phase_comp["Liq", "NaCl"].fix() - m.fs.feed.properties[0].flow_mass_phase_comp['Liq','H2O'].unfix() - m.fs.feed.properties[0].flow_mass_phase_comp['Liq','NaCl'].unfix() + m.fs.feed.properties[0].flow_mass_phase_comp["Liq", "H2O"].unfix() + m.fs.feed.properties[0].flow_mass_phase_comp["Liq", "NaCl"].unfix() # Pump outlet pressures unfixed m.fs.ro_train.stage[1].pump.unit.control_volume.properties_out[0].pressure.unfix() m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure.unfix() m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure.unfix() - # Reduce DOF by assume S1 and S2 have same recovery, which is about typical from data, but not necessarily optimal... + # Reduce DOF by assume S1 and S2 have same recovery, which is about typical from data, but not necessarily optimal... # m.fs.ro_train.eq_recovery = Constraint( - # expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) - - m.fs.obj = Objective(expr= m.fs.ro_train.total_pump_power, sense=minimize) # Dummy objective to trigger solve + # expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) - print(f"Degrees of freedom right before solve: {degrees_of_freedom(m)}") # Should be 0 + m.fs.obj = Objective( + expr=m.fs.ro_train.total_pump_power, sense=minimize + ) # Dummy objective to trigger solve + + print( + f"Degrees of freedom right before solve: {degrees_of_freedom(m)}" + ) # Should be 0 # assert degrees_of_freedom(m) == 0 # --solve--- solver = get_solver() - results = solver.solve(m, tee = True) + results = solver.solve(m, tee=True) if assert_optimal_termination(results): print("-----FAILED TO OPTIMALLY SOLVE-----") print(f"RR = {m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, 'Liq']()}%") @@ -288,19 +313,33 @@ def optimize(m, solver=None, check_termination=True): def build_outputs(m): def _pump_unit(stage_blk): # Some workflows expose the pump model directly, others nest it under stage.pump.unit - return stage_blk.pump.unit if hasattr(stage_blk.pump, "unit") else stage_blk.pump + return ( + stage_blk.pump.unit if hasattr(stage_blk.pump, "unit") else stage_blk.pump + ) outputs = {} # RR and Flows outputs["Stage1 RR"] = m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] outputs["Stage2 RR"] = m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"] outputs["Stage3 RR"] = m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0, "Liq"] - outputs["Stage1 Qin (m3/s)"] = m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] - outputs["Stage2 Qin (m3/s)"] = m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] - outputs["Stage3 Qin (m3/s)"] = m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] - outputs["Stage1 Brine (m3/s)"] = m.fs.ro_train.stage[1].disposal.properties[0].flow_vol_phase["Liq"] - outputs["Stage2 Brine (m3/s)"] = m.fs.ro_train.stage[2].disposal.properties[0].flow_vol_phase["Liq"] - outputs["Stage3 Brine (m3/s)"] = m.fs.ro_train.stage[3].disposal.properties[0].flow_vol_phase["Liq"] + outputs["Stage1 Qin (m3/s)"] = ( + m.fs.ro_train.stage[1].feed.properties[0].flow_vol_phase["Liq"] + ) + outputs["Stage2 Qin (m3/s)"] = ( + m.fs.ro_train.stage[2].feed.properties[0].flow_vol_phase["Liq"] + ) + outputs["Stage3 Qin (m3/s)"] = ( + m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"] + ) + outputs["Stage1 Brine (m3/s)"] = ( + m.fs.ro_train.stage[1].disposal.properties[0].flow_vol_phase["Liq"] + ) + outputs["Stage2 Brine (m3/s)"] = ( + m.fs.ro_train.stage[2].disposal.properties[0].flow_vol_phase["Liq"] + ) + outputs["Stage3 Brine (m3/s)"] = ( + m.fs.ro_train.stage[3].disposal.properties[0].flow_vol_phase["Liq"] + ) pump1 = _pump_unit(m.fs.ro_train.stage[1]) pump2 = _pump_unit(m.fs.ro_train.stage[2]) @@ -321,24 +360,43 @@ def _pump_unit(stage_blk): outputs["Stage3 Power (W)"] = pump3.work_mechanical[0] # Other - outputs["Stage1 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[1].ro.unit.first_elem_prod - outputs["Stage2 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[2].ro.unit.first_elem_prod - outputs["Stage3 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[3].ro.unit.first_elem_prod - outputs["Stage1 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[1].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage2 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[2].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] - outputs["Stage3 Perm. Conc. (kg/m3)"] = m.fs.ro_train.stage[3].ro.unit.mixed_permeate[0].conc_mass_phase_comp["Liq", "NaCl"] + outputs["Stage1 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[ + 1 + ].ro.unit.first_elem_prod + outputs["Stage2 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[ + 2 + ].ro.unit.first_elem_prod + outputs["Stage3 First Elem. Prod. (m3/s)"] = m.fs.ro_train.stage[ + 3 + ].ro.unit.first_elem_prod + outputs["Stage1 Perm. Conc. (kg/m3)"] = ( + m.fs.ro_train.stage[1] + .ro.unit.mixed_permeate[0] + .conc_mass_phase_comp["Liq", "NaCl"] + ) + outputs["Stage2 Perm. Conc. (kg/m3)"] = ( + m.fs.ro_train.stage[2] + .ro.unit.mixed_permeate[0] + .conc_mass_phase_comp["Liq", "NaCl"] + ) + outputs["Stage3 Perm. Conc. (kg/m3)"] = ( + m.fs.ro_train.stage[3] + .ro.unit.mixed_permeate[0] + .conc_mass_phase_comp["Liq", "NaCl"] + ) outputs["Stage1 Pump Speed (-)"] = pump1.design_speed_fraction outputs["Stage2 Pump Speed (-)"] = pump2.design_speed_fraction # outputs["Stage3 Pump Speed (-)"] = pump3.design_speed_fraction # Pump 3 has no speed fraction return outputs + if __name__ == "__main__": op_limts = { "Stage 1": { "RR_min": 0.55, "RR_max": 0.62, - "Qin_min": 420 / 3600, #m/hr + "Qin_min": 420 / 3600, # m/hr "Qin_max": 635 / 3600, }, "Stage 2": { @@ -354,10 +412,10 @@ def _pump_unit(stage_blk): "Qin_max": 126 / 3600, }, } - m = build_flowsheet(op_limts=op_limts,scenario=None) + m = build_flowsheet(op_limts=op_limts, scenario=None) initialize_model(m) # Dummy version of fixing value - print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 + print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 # Param Sweep will fix these two variables m.fs.ro_train.recovery_vol.fix(0.9) m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) @@ -365,15 +423,46 @@ def _pump_unit(stage_blk): print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") results = optimize(m) - print(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].conc_mass_phase_comp["Liq", "NaCl"]()) - print(value(pyunits.convert(m.fs.ro_train.stage[2].pump.unit.control_volume.properties_out[0].pressure, to_units=pyunits.psi))) - print(value(pyunits.convert(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_in[0].pressure, to_units=pyunits.psi))) - print(value(pyunits.convert(m.fs.ro_train.stage[3].pump.unit.control_volume.properties_out[0].pressure, to_units=pyunits.psi))) + print( + m.fs.ro_train.stage[3] + .pump.unit.control_volume.properties_out[0] + .conc_mass_phase_comp["Liq", "NaCl"]() + ) + print( + value( + pyunits.convert( + m.fs.ro_train.stage[2] + .pump.unit.control_volume.properties_out[0] + .pressure, + to_units=pyunits.psi, + ) + ) + ) + print( + value( + pyunits.convert( + m.fs.ro_train.stage[3] + .pump.unit.control_volume.properties_in[0] + .pressure, + to_units=pyunits.psi, + ) + ) + ) + print( + value( + pyunits.convert( + m.fs.ro_train.stage[3] + .pump.unit.control_volume.properties_out[0] + .pressure, + to_units=pyunits.psi, + ) + ) + ) print(m.fs.ro_train.stage[3].feed.properties[0].flow_vol_phase["Liq"]()) print(m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"]()) print(m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]()) print(m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0, "Liq"]()) - + dt = DiagnosticsToolbox(m) assert_optimal_termination(results) diff --git a/src/wrd/surrogate_models/param_sweep_fxs_pump.py b/src/wrd/surrogate_models/param_sweep_fxs_pump.py index 5507478..1cb6fe4 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs_pump.py +++ b/src/wrd/surrogate_models/param_sweep_fxs_pump.py @@ -2,7 +2,16 @@ from parameter_sweep import LinearSample, get_sweep_params_from_yaml from wrd.components.detailed_pump import * from models import HeadLoss -from pyomo.environ import assert_optimal_termination, ConcreteModel, TransformationFactory, units as pyunits, Constraint, value, Objective, minimize +from pyomo.environ import ( + assert_optimal_termination, + ConcreteModel, + TransformationFactory, + units as pyunits, + Constraint, + value, + Objective, + minimize, +) from pyomo.network import Arc from srp.utils import touch_flow_and_conc from idaes.models.unit_models import ( @@ -19,7 +28,7 @@ # Build flowsheet function -def build_flowsheet(op_limts=None,scenario=None): +def build_flowsheet(op_limts=None, scenario=None): m = ConcreteModel() m.fs = FlowsheetBlock(dynamic=False) m.fs.properties = NaClParameterBlock() @@ -57,7 +66,7 @@ def build_flowsheet(op_limts=None,scenario=None): "flow_mass_phase_comp", 1e2, index=("Liq", "NaCl") ) - add_pump_scaling(m.fs.pump) + add_pump_scaling(m.fs.pump) calculate_scaling_factors(m) # Set feed and operational conditions @@ -65,20 +74,21 @@ def build_flowsheet(op_limts=None,scenario=None): m.fs.pump.unit.control_volume.properties_in[0].pressure.setlb(0) m.fs.feed.properties.calculate_state( - var_args={ - ("flow_vol_phase", ("Liq")): 3000 * pyunits.gallons / pyunits.minute, - ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, - ("pressure", None): 0.1 * pyunits.psi, - ("temperature", None): 298.15 * pyunits.K, - }, - hold_state=True, + var_args={ + ("flow_vol_phase", ("Liq")): 3000 * pyunits.gallons / pyunits.minute, + ("conc_mass_phase_comp", ("Liq", "NaCl")): 0.5 * pyunits.g / pyunits.L, + ("pressure", None): 0.1 * pyunits.psi, + ("temperature", None): 298.15 * pyunits.K, + }, + hold_state=True, ) set_pump_op_conditions(m.fs.pump) - print(degrees_of_freedom(m)) # Should be zero + print(degrees_of_freedom(m)) # Should be zero return m + # Build sweep parameters function def build_sweep_params( m, @@ -123,19 +133,22 @@ def initialize_model(m): assert_optimal_termination(results) return results + # Optimizaiton function def optimize(m, solver=None, check_termination=True): print(f"Degrees of freedom start of optimize: {degrees_of_freedom(m)}") # Fix the mass fraction and unfix the flow mass so that the flow volume can be fixed by param sweep m.fs.feed.properties[0].mass_frac_phase_comp["Liq", "NaCl"].fix() - m.fs.feed.properties[0].flow_mass_phase_comp['Liq','H2O'].unfix() - m.fs.feed.properties[0].flow_mass_phase_comp['Liq','NaCl'].unfix() - - print(f"Degrees of freedom right before solve: {degrees_of_freedom(m)}") # Should be 0 + m.fs.feed.properties[0].flow_mass_phase_comp["Liq", "H2O"].unfix() + m.fs.feed.properties[0].flow_mass_phase_comp["Liq", "NaCl"].unfix() + + print( + f"Degrees of freedom right before solve: {degrees_of_freedom(m)}" + ) # Should be 0 assert degrees_of_freedom(m) == 0 # --solve--- solver = get_solver() - results = solver.solve(m, tee = True) + results = solver.solve(m, tee=True) # assert_optimal_termination(results) return results @@ -145,17 +158,18 @@ def build_outputs(m): outputs["Stage1 Power"] = m.fs.pump.unit.work_mechanical[0] return outputs + if __name__ == "__main__": m = build_flowsheet(scenario=None) initialize_model(m) # Dummy version of fixing value - print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 + print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 # Param Sweep will fix these two variables m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") results = optimize(m) - + dt = DiagnosticsToolbox(m) assert_optimal_termination(results) - print(m.fs.pump.unit.work_mechanical[0]()) \ No newline at end of file + print(m.fs.pump.unit.work_mechanical[0]()) diff --git a/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json b/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json deleted file mode 100644 index 84a8210..0000000 --- a/src/wrd/surrogate_models/ro_power_poly_fit_order_2.json +++ /dev/null @@ -1 +0,0 @@ -{"model_encoding": {"Total Power (W)": {"attr": {"regression_data_columns": ["Recovery", "Feed Flow"], "multinomials": 0, "additional_term_expressions": [], "optimal_weights_array": [[9.197335683012916], [-22.627606870773946], [-5.922856990057125], [14.72411995003637], [82.7066316695091]], "final_polynomial_order": 2, "errors": {"MAE": 0.005591160591864165, "MSE": 4.6028436028154616e-05, "R2": 0.9991455892554374, "Adjusted R2": 0.9990743883600571}, "extra_terms_feature_vector": ["IndexedParam[Recovery]", "IndexedParam[Feed Flow]"]}, "map": {"regression_data_columns": "list", "multinomials": "str", "additional_term_expressions": "list", "optimal_weights_array": "numpy", "final_polynomial_order": "str", "errors": "str", "extra_terms_feature_vector": "other"}}}, "input_labels": ["Recovery", "Feed Flow"], "output_labels": ["Total Power (W)"], "input_bounds": {"Recovery": [0.88, 0.925], "Feed Flow": [0.145, 0.176]}, "surrogate_type": "poly"} \ No newline at end of file diff --git a/src/wrd/surrogate_models/ro_sweep_brine_lim.csv b/src/wrd/surrogate_models/ro_sweep_S1_S2_equal_RR.csv similarity index 100% rename from src/wrd/surrogate_models/ro_sweep_brine_lim.csv rename to src/wrd/surrogate_models/ro_sweep_S1_S2_equal_RR.csv diff --git a/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv b/src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv similarity index 100% rename from src/wrd/surrogate_models/S1_S2_RR_not_equal.csv rename to src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv diff --git a/uf_pump_sweep_USED_IN_PT.xlsx b/src/wrd/surrogate_models/uf_pump_sweep_USED_IN_PT.xlsx similarity index 100% rename from uf_pump_sweep_USED_IN_PT.xlsx rename to src/wrd/surrogate_models/uf_pump_sweep_USED_IN_PT.xlsx diff --git a/sweep_results_limited_range.csv b/sweep_results_limited_range.csv deleted file mode 100644 index 7235fbb..0000000 --- a/sweep_results_limited_range.csv +++ /dev/null @@ -1,26 +0,0 @@ -# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3) -9.000000e-01,1.666667e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.666667e-01,6.804147e-02,2.777789e-02,2.440744e+05,8.921148e+05,7.308501e+05,9.658887e+05,1.061109e+06,8.038824e+05,2.070870e+05,1.873835e+05,1.564610e+04,4.057371e+03,2.107760e-04,2.109365e-04,1.307372e-04,1.219418e-02,1.902126e-02,1.785967e-01 -9.000000e-01,1.690972e-01,5.917513e-01,5.917513e-01,4.000000e-01,1.690972e-01,6.903375e-02,2.818299e-02,2.440744e+05,9.026815e+05,7.417426e+05,9.764554e+05,1.072001e+06,8.092091e+05,2.123890e+05,1.926312e+05,1.595491e+04,3.802816e+03,2.136370e-04,2.137474e-04,1.323312e-04,1.203083e-02,1.876663e-02,1.762795e-01 -9.000000e-01,1.715278e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.000000e-01,1.739583e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.000000e-01,1.763889e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan -9.075000e-01,1.666667e-01,5.973938e-01,5.973938e-01,4.293342e-01,1.666667e-01,6.710106e-02,2.701535e-02,2.440744e+05,8.995337e+05,7.312003e+05,9.733076e+05,1.061459e+06,8.376819e+05,2.100689e+05,1.895060e+05,1.480970e+04,5.753271e+03,2.127725e-04,2.105970e-04,1.383697e-04,1.217814e-02,1.952250e-02,1.818172e-01 -9.075000e-01,1.690972e-01,5.976692e-01,5.976692e-01,4.285526e-01,1.690972e-01,6.803304e-02,2.737184e-02,2.440744e+05,9.105689e+05,7.420615e+05,9.843428e+05,1.072320e+06,8.422178e+05,2.154396e+05,1.949054e+05,1.505125e+04,5.482923e+03,2.157597e-04,2.133781e-04,1.396311e-04,1.201437e-02,1.928583e-02,1.800873e-01 -9.075000e-01,1.715278e-01,5.979489e-01,5.979489e-01,4.277573e-01,1.715278e-01,6.896296e-02,2.772669e-02,2.440744e+05,9.216192e+05,7.529169e+05,9.953931e+05,1.083176e+06,8.466977e+05,2.208915e+05,2.003966e+05,1.529440e+04,5.200464e+03,2.187511e-04,2.161575e-04,1.408747e-04,1.185516e-02,1.905618e-02,1.784167e-01 -9.075000e-01,1.739583e-01,5.992017e-01,5.992017e-01,4.241742e-01,1.739583e-01,6.972222e-02,2.794460e-02,2.440744e+05,9.340125e+05,7.637945e+05,1.007786e+06,1.094053e+06,8.474053e+05,2.264271e+05,2.063704e+05,1.538380e+04,4.672941e+03,2.221041e-04,2.188669e-04,1.406394e-04,1.169799e-02,1.891897e-02,1.790253e-01 -9.075000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.079708e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.314979e+05,2.321149e+05,2.142136e+05,1.477061e+04,3.130633e+03,2.270664e-04,2.212424e-04,1.338689e-04,1.153628e-02,1.917230e-02,1.901969e-01 -9.150000e-01,1.666667e-01,6.008512e-01,6.008512e-01,4.664802e-01,1.666667e-01,6.652482e-02,2.655335e-02,2.440744e+05,9.040851e+05,7.313843e+05,9.778590e+05,1.061643e+06,8.822952e+05,2.131310e+05,1.908131e+05,1.430354e+04,8.014381e+03,2.139973e-04,2.103748e-04,1.498755e-04,1.216944e-02,1.984199e-02,1.812053e-01 -9.150000e-01,1.690972e-01,6.011256e-01,6.011256e-01,4.657460e-01,1.690972e-01,6.744858e-02,2.690357e-02,2.440744e+05,9.151812e+05,7.422148e+05,9.889551e+05,1.072474e+06,8.872268e+05,2.185735e+05,1.962406e+05,1.453024e+04,7.802677e+03,2.170010e-04,2.131474e-04,1.512560e-04,1.200591e-02,1.960163e-02,1.794372e-01 -9.150000e-01,1.715278e-01,6.014044e-01,6.014044e-01,4.649982e-01,1.715278e-01,6.837023e-02,2.725213e-02,2.440744e+05,9.262928e+05,7.530394e+05,1.000067e+06,1.083298e+06,8.921020e+05,2.240979e+05,2.017601e+05,1.475827e+04,7.579505e+03,2.200090e-04,2.159183e-04,1.526183e-04,1.184693e-02,1.936845e-02,1.777290e-01 -9.150000e-01,1.739583e-01,6.016877e-01,6.016877e-01,4.642370e-01,1.739583e-01,6.928977e-02,2.759903e-02,2.440744e+05,9.374199e+05,7.638579e+05,1.011194e+06,1.094117e+06,8.969209e+05,2.297049e+05,2.073726e+05,1.498751e+04,7.344822e+03,2.230213e-04,2.186874e-04,1.539625e-04,1.169232e-02,1.914214e-02,1.760784e-01 -9.150000e-01,1.763889e-01,6.047245e-01,6.047245e-01,4.559730e-01,1.763889e-01,6.972222e-02,2.755954e-02,2.440744e+05,9.523834e+05,7.747003e+05,1.026157e+06,1.104959e+06,8.912746e+05,2.354097e+05,2.142136e+05,1.477061e+04,6.425468e+03,2.270664e-04,2.212424e-04,1.511242e-04,1.153628e-02,1.917230e-02,1.804546e-01 -9.225000e-01,1.666667e-01,6.044770e-01,6.044770e-01,5.045958e-01,1.666667e-01,6.592052e-02,2.607314e-02,2.440744e+05,9.088628e+05,7.315543e+05,9.826367e+05,1.061813e+06,9.295715e+05,2.162933e+05,1.921893e+05,1.377820e+04,1.032586e+04,2.152830e-04,2.101307e-04,1.619945e-04,1.216125e-02,2.018761e-02,1.825061e-01 -9.225000e-01,1.690972e-01,6.047478e-01,6.047478e-01,5.039166e-01,1.690972e-01,6.683606e-02,2.641715e-02,2.440744e+05,9.200196e+05,7.423517e+05,9.937935e+05,1.072611e+06,9.349027e+05,2.218085e+05,1.976454e+05,1.398986e+04,1.017330e+04,2.183032e-04,2.128943e-04,1.634961e-04,1.199796e-02,1.994304e-02,1.806805e-01 -9.225000e-01,1.715278e-01,6.050236e-01,6.050236e-01,5.032237e-01,1.715278e-01,6.774945e-02,2.675949e-02,2.440744e+05,9.311923e+05,7.531429e+05,1.004966e+06,1.083402e+06,9.401770e+05,2.274062e+05,2.031938e+05,1.420258e+04,1.000987e+04,2.213277e-04,2.156561e-04,1.649791e-04,1.183922e-02,1.970581e-02,1.789164e-01 -9.225000e-01,1.739583e-01,6.053041e-01,6.053041e-01,5.025172e-01,1.739583e-01,6.866066e-02,2.710013e-02,2.440744e+05,9.423809e+05,7.639279e+05,1.016155e+06,1.094187e+06,9.453944e+05,2.330872e+05,2.088354e+05,1.441624e+04,9.835530e+03,2.243567e-04,2.184161e-04,1.664435e-04,1.168483e-02,1.947562e-02,1.772114e-01 -9.225000e-01,1.763889e-01,6.055894e-01,6.055894e-01,5.017974e-01,1.763889e-01,6.956967e-02,2.743908e-02,2.440744e+05,9.535858e+05,7.747066e+05,1.027360e+06,1.104966e+06,9.505548e+05,2.388522e+05,2.145713e+05,1.463070e+04,9.650223e+03,2.273901e-04,2.211742e-04,1.678891e-04,1.153463e-02,1.925217e-02,1.755632e-01 -9.300000e-01,1.666667e-01,6.083060e-01,6.083060e-01,5.437468e-01,1.666667e-01,6.528236e-02,2.557076e-02,2.440744e+05,9.139135e+05,7.317106e+05,9.876874e+05,1.061970e+06,9.804129e+05,2.195974e+05,1.936487e+05,1.322973e+04,1.271901e+04,2.166421e-04,2.098609e-04,1.749448e-04,1.215363e-02,2.056484e-02,1.859366e-01 -9.300000e-01,1.690972e-01,6.085702e-01,6.085702e-01,5.431307e-01,1.690972e-01,6.618972e-02,2.590869e-02,2.440744e+05,9.251305e+05,7.424718e+05,9.989044e+05,1.072731e+06,9.861474e+05,2.251867e+05,1.991339e+05,1.342617e+04,1.262663e+04,2.196787e-04,2.126150e-04,1.765701e-04,1.199059e-02,2.031537e-02,1.840282e-01 -9.300000e-01,1.715278e-01,6.088398e-01,6.088398e-01,5.425006e-01,1.715278e-01,6.709486e-02,2.624489e-02,2.440744e+05,9.363638e+05,7.532268e+05,1.010138e+06,1.083486e+06,9.918243e+05,2.308591e+05,2.047118e+05,1.362337e+04,1.252393e+04,2.227197e-04,2.153672e-04,1.781762e-04,1.183209e-02,2.007344e-02,1.821841e-01 -9.300000e-01,1.739583e-01,6.091148e-01,6.091148e-01,5.418566e-01,1.739583e-01,6.799775e-02,2.657937e-02,2.440744e+05,9.476138e+05,7.639755e+05,1.021388e+06,1.094234e+06,9.974436e+05,2.366154e+05,2.103833e+05,1.382121e+04,1.241087e+04,2.257653e-04,2.181174e-04,1.797630e-04,1.167794e-02,1.983876e-02,1.804017e-01 -9.300000e-01,1.763889e-01,6.093952e-01,6.093952e-01,5.411988e-01,1.763889e-01,6.889838e-02,2.691210e-02,2.440744e+05,9.588805e+05,7.747177e+05,1.032654e+06,1.104977e+06,1.003005e+06,2.424563e+05,2.161493e+05,1.401956e+04,1.228739e+04,2.288154e-04,2.208658e-04,1.813303e-04,1.152796e-02,1.961101e-02,1.786787e-01 diff --git a/up_pump_sweep.csv b/up_pump_sweep.csv deleted file mode 100644 index ba01998..0000000 --- a/up_pump_sweep.csv +++ /dev/null @@ -1,16 +0,0 @@ -# Feed Flow,Stage1 Power -9.555556e-02,6.518428e+04 -1.083532e-01,6.927317e+04 -1.211508e-01,7.375655e+04 -1.339484e-01,7.869929e+04 -1.467460e-01,8.415177e+04 -1.595437e-01,9.015183e+04 -1.723413e-01,9.672617e+04 -1.851389e-01,1.038915e+05 -1.979365e-01,1.116556e+05 -2.107341e-01,1.200189e+05 -2.235317e-01,1.289754e+05 -2.363294e-01,1.385138e+05 -2.491270e-01,1.486189e+05 -2.619246e-01,1.592721e+05 -2.747222e-01,1.704522e+05 From 011442caf5a1e775ca0ff643590e68c5ce823788 Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Wed, 13 May 2026 17:42:03 -0600 Subject: [PATCH 10/12] Param sweeps is working and pump efficiency has been updated accordingly. --- ps_demo.h5 | Bin 0 -> 99288 bytes src/wrd/components/ro_stage.py | 30 ++++++++- .../surrogate_models/S1_S2_RR_not_equal.csv | 2 + src/wrd/surrogate_models/S1_S2_TEST_POINT.csv | 5 ++ .../S1_S2_equal_w_S_3_lower_RR_lim.csv | 39 +++++++++++ src/wrd/surrogate_models/S3_70_eff_sweep.csv | 37 ++++++++++ .../surrogate_models/TEST_POINT_70_eff.csv | 5 ++ .../surrogate_models/energy_param_sweep.py | 6 +- .../surrogate_models/higher_stage_3_eff.csv | 37 ++++++++++ src/wrd/surrogate_models/param_sweep_fxs.py | 63 ++++++++++++------ .../ro_sweep_S1_S2_not_equal_RR.csv | 2 +- .../surrogate_models/stage_3_lower_RR_lim.csv | 40 +++++++++++ 12 files changed, 236 insertions(+), 30 deletions(-) create mode 100644 ps_demo.h5 create mode 100644 src/wrd/surrogate_models/S1_S2_RR_not_equal.csv create mode 100644 src/wrd/surrogate_models/S1_S2_TEST_POINT.csv create mode 100644 src/wrd/surrogate_models/S1_S2_equal_w_S_3_lower_RR_lim.csv create mode 100644 src/wrd/surrogate_models/S3_70_eff_sweep.csv create mode 100644 src/wrd/surrogate_models/TEST_POINT_70_eff.csv create mode 100644 src/wrd/surrogate_models/higher_stage_3_eff.csv create mode 100644 src/wrd/surrogate_models/stage_3_lower_RR_lim.csv diff --git a/ps_demo.h5 b/ps_demo.h5 new file mode 100644 index 0000000000000000000000000000000000000000..2b475cda4f8b934f997ffa350ad19e73e62eaa77 GIT binary patch literal 99288 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 V`0yJXvEMTh#KQj@G)X0^{2yYV?{)wH literal 0 HcmV?d00001 diff --git a/src/wrd/components/ro_stage.py b/src/wrd/components/ro_stage.py index 5b7d1b9..09d299e 100644 --- a/src/wrd/components/ro_stage.py +++ b/src/wrd/components/ro_stage.py @@ -3,6 +3,7 @@ assert_optimal_termination, units as pyunits, TransformationFactory, + value, ) from pyomo.network import Arc @@ -12,6 +13,7 @@ from idaes.core import FlowsheetBlock from idaes.models.unit_models import StateJunction from idaes.core.util.scaling import calculate_scaling_factors +from idaes.core.util.exceptions import InitializationError from watertap.costing import WaterTAPCosting from watertap.core.util.model_diagnostics.infeasible import * @@ -131,9 +133,9 @@ def build_ro_stage( build_ro(blk.ro, stage_num=stage_num, file=file, prop_package=prop_package) blk.product = StateJunction(property_package=prop_package) - touch_flow_and_conc(blk.feed) + touch_flow_and_conc(blk.product) blk.disposal = StateJunction(property_package=prop_package) - touch_flow_and_conc(blk.feed) + touch_flow_and_conc(blk.disposal) # Arcs to connect the unit models blk.feed_to_pump = Arc(source=blk.feed.outlet, destination=blk.pump.feed.inlet) @@ -171,7 +173,29 @@ def initialize_ro_stage(blk): propagate_state(blk.ro_to_product) blk.product.initialize() propagate_state(blk.ro_to_disposal) - blk.disposal.initialize() + try: + blk.disposal.initialize() + except InitializationError: + ro_disposal_props = blk.ro.disposal.properties[0] + try: + blk.disposal.initialize( + state_args={ + "flow_mass_phase_comp": { + ("Liq", "H2O"): value( + ro_disposal_props.flow_mass_phase_comp["Liq", "H2O"] + ), + ("Liq", "NaCl"): value( + ro_disposal_props.flow_mass_phase_comp["Liq", "NaCl"] + ), + }, + "temperature": value(ro_disposal_props.temperature), + "pressure": value(ro_disposal_props.pressure), + } + ) + except InitializationError: + # This state block is a pass-through junction; if initialization fails, + # continue with propagated state so the full train can still initialize. + pass def report_ro_stage(blk, w=30, add_costing=True): diff --git a/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv b/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv new file mode 100644 index 0000000..307839c --- /dev/null +++ b/src/wrd/surrogate_models/S1_S2_RR_not_equal.csv @@ -0,0 +1,2 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.80E-01,1.45E-01,5.58E-01,5.96E-01,3.28E-01,1.45E-01,6.41E-02,2.59E-02,6.41E-02,2.59E-02,1.74E-02,2.44E+05,7.59E+05,6.80E+05,8.33E+05,1.01E+06,6.80E+05,1.56E+05,1.34E+05,2.15E+04,1.25E-08,1.75E-04,2.00E-04,9.95E-05,1.41E-02,1.85E-02,1.99E-01,8.50E-01,1.00E+00 diff --git a/src/wrd/surrogate_models/S1_S2_TEST_POINT.csv b/src/wrd/surrogate_models/S1_S2_TEST_POINT.csv new file mode 100644 index 0000000..2743b5c --- /dev/null +++ b/src/wrd/surrogate_models/S1_S2_TEST_POINT.csv @@ -0,0 +1,5 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.800000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.800000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.761111e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan diff --git a/src/wrd/surrogate_models/S1_S2_equal_w_S_3_lower_RR_lim.csv b/src/wrd/surrogate_models/S1_S2_equal_w_S_3_lower_RR_lim.csv new file mode 100644 index 0000000..a08c268 --- /dev/null +++ b/src/wrd/surrogate_models/S1_S2_equal_w_S_3_lower_RR_lim.csv @@ -0,0 +1,39 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.80E-01,1.45E-01,5.53E-01,5.53E-01,4.00E-01,1.45E-01,6.48E-02,2.90E-02,6.48E-02,2.90E-02,1.74E-02,2.44E+05,7.53E+05,6.27E+05,8.27E+05,9.57E+05,7.68E+05,1.58E+05,1.33E+05,1.77E+04,8.18E+03,1.73E-04,1.87E-04,1.33E-04,1.41E-02,1.84E-02,1.43E-01,8.46E-01,9.26E-01 +8.80E-01,1.51E-01,5.53E-01,5.53E-01,4.00E-01,1.51E-01,6.76E-02,3.02E-02,6.76E-02,3.02E-02,1.81E-02,2.44E+05,7.78E+05,6.56E+05,8.52E+05,9.86E+05,7.84E+05,1.70E+05,1.44E+05,1.88E+04,7.77E+03,1.80E-04,1.94E-04,1.37E-04,1.35E-02,1.77E-02,1.37E-01,8.67E-01,9.43E-01 +8.80E-01,1.57E-01,5.53E-01,5.53E-01,4.00E-01,1.57E-01,7.04E-02,3.15E-02,7.04E-02,3.15E-02,1.89E-02,2.44E+05,8.04E+05,6.84E+05,8.77E+05,1.01E+06,8.00E+05,1.82E+05,1.55E+05,1.99E+04,7.31E+03,1.87E-04,2.02E-04,1.42E-04,1.30E-02,1.70E-02,1.32E-01,8.88E-01,9.59E-01 +8.80E-01,1.64E-01,5.53E-01,5.53E-01,4.00E-01,1.64E-01,7.32E-02,3.27E-02,7.32E-02,3.27E-02,1.96E-02,2.44E+05,8.29E+05,7.13E+05,9.03E+05,1.04E+06,8.16E+05,1.95E+05,1.67E+05,2.11E+04,6.78E+03,1.94E-04,2.09E-04,1.47E-04,1.26E-02,1.64E-02,1.28E-01,9.09E-01,9.76E-01 +8.80E-01,1.70E-01,5.53E-01,5.53E-01,4.00E-01,1.70E-01,7.60E-02,3.40E-02,7.60E-02,3.40E-02,2.04E-02,2.44E+05,8.54E+05,7.41E+05,9.28E+05,1.07E+06,8.32E+05,2.08E+05,1.80E+05,2.24E+04,6.18E+03,2.01E-04,2.16E-04,1.52E-04,1.21E-02,1.59E-02,1.24E-01,9.30E-01,9.93E-01 +8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.45E-01,5.70E-01,5.70E-01,4.00E-01,1.45E-01,6.24E-02,2.68E-02,6.24E-02,2.68E-02,1.61E-02,2.44E+05,7.73E+05,6.30E+05,8.47E+05,9.61E+05,7.61E+05,1.60E+05,1.38E+05,1.56E+04,6.99E+03,1.79E-04,1.87E-04,1.25E-04,1.40E-02,1.97E-02,1.66E-01,8.58E-01,8.89E-01 +8.89E-01,1.51E-01,5.70E-01,5.70E-01,4.00E-01,1.51E-01,6.50E-02,2.80E-02,6.50E-02,2.80E-02,1.68E-02,2.44E+05,7.99E+05,6.59E+05,8.73E+05,9.89E+05,7.76E+05,1.72E+05,1.49E+05,1.65E+04,6.55E+03,1.86E-04,1.94E-04,1.30E-04,1.34E-02,1.89E-02,1.59E-01,8.79E-01,9.04E-01 +8.89E-01,1.57E-01,5.70E-01,5.70E-01,4.00E-01,1.57E-01,6.77E-02,2.91E-02,6.77E-02,2.91E-02,1.75E-02,2.44E+05,8.25E+05,6.87E+05,8.99E+05,1.02E+06,7.91E+05,1.84E+05,1.61E+05,1.75E+04,6.05E+03,1.93E-04,2.01E-04,1.34E-04,1.29E-02,1.82E-02,1.54E-01,9.00E-01,9.18E-01 +8.89E-01,1.64E-01,5.70E-01,5.70E-01,4.00E-01,1.64E-01,7.04E-02,3.03E-02,7.04E-02,3.03E-02,1.82E-02,2.44E+05,8.51E+05,7.15E+05,9.25E+05,1.05E+06,8.06E+05,1.97E+05,1.73E+05,1.85E+04,5.48E+03,2.00E-04,2.08E-04,1.39E-04,1.25E-02,1.76E-02,1.48E-01,9.21E-01,9.33E-01 +8.89E-01,1.70E-01,5.70E-01,5.70E-01,4.00E-01,1.70E-01,7.31E-02,3.14E-02,7.31E-02,3.14E-02,1.89E-02,2.44E+05,8.77E+05,7.43E+05,9.51E+05,1.07E+06,8.20E+05,2.10E+05,1.86E+05,1.95E+04,4.84E+03,2.07E-04,2.16E-04,1.43E-04,1.21E-02,1.70E-02,1.44E-01,9.42E-01,9.49E-01 +8.89E-01,1.76E-01,5.70E-01,5.70E-01,4.00E-01,1.76E-01,7.57E-02,3.26E-02,7.57E-02,3.26E-02,1.95E-02,2.44E+05,9.03E+05,7.72E+05,9.77E+05,1.10E+06,8.35E+05,2.24E+05,1.99E+05,2.06E+04,4.15E+03,2.14E-04,2.23E-04,1.48E-04,1.17E-02,1.64E-02,1.39E-01,9.62E-01,9.65E-01 +8.98E-01,1.45E-01,5.85E-01,5.85E-01,4.08E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.48E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,7.66E+05,1.63E+05,1.42E+05,1.39E+04,6.67E+03,1.83E-04,1.86E-04,1.22E-04,1.39E-02,2.10E-02,1.88E-01,8.68E-01,8.55E-01 +8.98E-01,1.51E-01,5.88E-01,5.88E-01,4.00E-01,1.51E-01,6.24E-02,2.57E-02,6.24E-02,2.57E-02,1.54E-02,2.44E+05,8.20E+05,6.61E+05,8.94E+05,9.91E+05,7.70E+05,1.75E+05,1.55E+05,1.43E+04,5.62E+03,1.91E-04,1.93E-04,1.22E-04,1.34E-02,2.04E-02,1.88E-01,8.92E-01,8.60E-01 +8.98E-01,1.57E-01,5.88E-01,5.88E-01,4.00E-01,1.57E-01,6.49E-02,2.68E-02,6.49E-02,2.68E-02,1.61E-02,2.44E+05,8.47E+05,6.89E+05,9.21E+05,1.02E+06,7.84E+05,1.87E+05,1.67E+05,1.51E+04,5.10E+03,1.99E-04,2.00E-04,1.26E-04,1.29E-02,1.97E-02,1.81E-01,9.13E-01,8.73E-01 +8.98E-01,1.64E-01,5.88E-01,5.88E-01,4.00E-01,1.64E-01,6.75E-02,2.78E-02,6.75E-02,2.78E-02,1.67E-02,2.44E+05,8.74E+05,7.17E+05,9.48E+05,1.05E+06,7.98E+05,2.00E+05,1.80E+05,1.59E+04,4.52E+03,2.06E-04,2.08E-04,1.31E-04,1.24E-02,1.90E-02,1.75E-01,9.34E-01,8.86E-01 +8.98E-01,1.70E-01,5.88E-01,5.88E-01,4.00E-01,1.70E-01,7.00E-02,2.89E-02,7.00E-02,2.89E-02,1.73E-02,2.44E+05,9.01E+05,7.45E+05,9.74E+05,1.08E+06,8.12E+05,2.13E+05,1.93E+05,1.67E+04,3.88E+03,2.13E-04,2.15E-04,1.35E-04,1.20E-02,1.83E-02,1.69E-01,9.55E-01,8.99E-01 +8.98E-01,1.76E-01,5.88E-01,5.88E-01,4.00E-01,1.76E-01,7.26E-02,2.99E-02,7.26E-02,2.99E-02,1.80E-02,2.44E+05,9.28E+05,7.73E+05,1.00E+06,1.10E+06,8.26E+05,2.27E+05,2.07E+05,1.76E+04,3.18E+03,2.20E-04,2.22E-04,1.39E-04,1.16E-02,1.77E-02,1.64E-01,9.75E-01,9.13E-01 +9.07E-01,1.45E-01,5.85E-01,5.85E-01,4.61E-01,1.45E-01,6.02E-02,2.50E-02,6.02E-02,2.50E-02,1.35E-02,2.44E+05,7.90E+05,6.33E+05,8.64E+05,9.63E+05,8.25E+05,1.66E+05,1.42E+05,1.39E+04,9.61E+03,1.83E-04,1.86E-04,1.39E-04,1.39E-02,2.10E-02,1.77E-01,8.68E-01,8.55E-01 +9.07E-01,1.51E-01,5.93E-01,5.93E-01,4.37E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.41E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.12E+05,1.78E+05,1.57E+05,1.36E+04,7.51E+03,1.93E-04,1.93E-04,1.32E-04,1.33E-02,2.10E-02,1.89E-01,8.96E-01,8.46E-01 +9.07E-01,1.57E-01,5.96E-01,5.96E-01,4.30E-01,1.57E-01,6.36E-02,2.57E-02,6.36E-02,2.57E-02,1.46E-02,2.44E+05,8.58E+05,6.90E+05,9.31E+05,1.02E+06,8.17E+05,1.90E+05,1.70E+05,1.39E+04,6.53E+03,2.01E-04,2.00E-04,1.33E-04,1.28E-02,2.05E-02,1.89E-01,9.19E-01,8.50E-01 +9.07E-01,1.64E-01,5.97E-01,5.97E-01,4.28E-01,1.64E-01,6.60E-02,2.66E-02,6.60E-02,2.66E-02,1.52E-02,2.44E+05,8.86E+05,7.18E+05,9.59E+05,1.05E+06,8.29E+05,2.03E+05,1.83E+05,1.45E+04,5.93E+03,2.09E-04,2.07E-04,1.36E-04,1.24E-02,1.98E-02,1.84E-01,9.40E-01,8.60E-01 +9.07E-01,1.70E-01,5.98E-01,5.98E-01,4.26E-01,1.70E-01,6.84E-02,2.75E-02,6.84E-02,2.75E-02,1.58E-02,2.44E+05,9.14E+05,7.46E+05,9.88E+05,1.08E+06,8.41E+05,2.17E+05,1.97E+05,1.52E+04,5.24E+03,2.17E-04,2.14E-04,1.39E-04,1.20E-02,1.92E-02,1.80E-01,9.62E-01,8.70E-01 +9.07E-01,1.76E-01,5.98E-01,5.98E-01,4.24E-01,1.76E-01,7.08E-02,2.84E-02,7.08E-02,2.84E-02,1.64E-02,2.44E+05,9.42E+05,7.73E+05,1.02E+06,1.10E+06,8.52E+05,2.31E+05,2.11E+05,1.58E+04,4.47E+03,2.24E-04,2.21E-04,1.42E-04,1.16E-02,1.86E-02,1.76E-01,9.83E-01,8.81E-01 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.16E-01,1.51E-01,5.93E-01,5.93E-01,4.92E-01,1.51E-01,6.15E-02,2.50E-02,6.15E-02,2.50E-02,1.27E-02,2.44E+05,8.27E+05,6.62E+05,9.01E+05,9.92E+05,8.76E+05,1.81E+05,1.57E+05,1.36E+04,1.07E+04,1.93E-04,1.93E-04,1.51E-04,1.33E-02,2.10E-02,1.81E-01,8.96E-01,8.46E-01 +9.16E-01,1.57E-01,6.00E-01,6.00E-01,4.74E-01,1.57E-01,6.29E-02,2.51E-02,6.29E-02,2.51E-02,1.32E-02,2.44E+05,8.63E+05,6.90E+05,9.36E+05,1.02E+06,8.69E+05,1.94E+05,1.71E+05,1.34E+04,8.99E+03,2.03E-04,2.00E-04,1.46E-04,1.28E-02,2.09E-02,1.89E-01,9.22E-01,8.39E-01 +9.16E-01,1.64E-01,6.01E-01,6.01E-01,4.72E-01,1.64E-01,6.53E-02,2.61E-02,6.53E-02,2.61E-02,1.37E-02,2.44E+05,8.91E+05,7.18E+05,9.65E+05,1.05E+06,8.82E+05,2.07E+05,1.84E+05,1.40E+04,8.56E+03,2.10E-04,2.07E-04,1.50E-04,1.24E-02,2.02E-02,1.84E-01,9.43E-01,8.48E-01 +9.16E-01,1.70E-01,6.02E-01,6.02E-01,4.71E-01,1.70E-01,6.77E-02,2.70E-02,6.77E-02,2.70E-02,1.43E-02,2.44E+05,9.19E+05,7.46E+05,9.93E+05,1.08E+06,8.95E+05,2.21E+05,1.98E+05,1.45E+04,8.05E+03,2.18E-04,2.14E-04,1.53E-04,1.20E-02,1.96E-02,1.79E-01,9.65E-01,8.58E-01 +9.16E-01,1.76E-01,6.02E-01,6.02E-01,4.69E-01,1.76E-01,7.00E-02,2.78E-02,7.00E-02,2.78E-02,1.48E-02,2.44E+05,9.48E+05,7.73E+05,1.02E+06,1.10E+06,9.07E+05,2.35E+05,2.13E+05,1.51E+04,7.46E+03,2.26E-04,2.21E-04,1.57E-04,1.16E-02,1.90E-02,1.75E-01,9.86E-01,8.68E-01 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,6.06E-01,6.06E-01,5.17E-01,1.70E-01,6.69E-02,2.64E-02,6.69E-02,2.64E-02,1.27E-02,2.44E+05,9.25E+05,7.46E+05,9.99E+05,1.08E+06,9.53E+05,2.25E+05,2.00E+05,1.39E+04,1.09E+04,2.20E-04,2.14E-04,1.68E-04,1.19E-02,2.00E-02,1.81E-01,9.68E-01,8.44E-01 +9.25E-01,1.76E-01,6.07E-01,6.07E-01,5.15E-01,1.76E-01,6.92E-02,2.72E-02,6.92E-02,2.72E-02,1.32E-02,2.44E+05,9.54E+05,7.73E+05,1.03E+06,1.10E+06,9.67E+05,2.39E+05,2.14E+05,1.44E+04,1.05E+04,2.28E-04,2.21E-04,1.72E-04,1.15E-02,1.94E-02,1.77E-01,9.89E-01,8.54E-01 +,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/src/wrd/surrogate_models/S3_70_eff_sweep.csv b/src/wrd/surrogate_models/S3_70_eff_sweep.csv new file mode 100644 index 0000000..3ef80f6 --- /dev/null +++ b/src/wrd/surrogate_models/S3_70_eff_sweep.csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.800000e-01,1.450000e-01,5.508229e-01,5.817919e-01,3.611899e-01,1.450000e-01,6.513070e-02,2.723822e-02,6.513070e-02,2.723822e-02,1.740008e-02,2.440744e+05,7.509181e+05,6.696486e+05,8.246921e+05,9.999074e+05,7.182780e+05,1.555499e+05,1.320267e+05,2.163091e+04,1.892257e+03,1.726392e-04,1.977884e-04,1.138768e-04,1.410356e-02,1.802065e-02,1.704346e-01,8.446948e-01,1.000000e+00 +8.800000e-01,1.512222e-01,5.545718e-01,5.814392e-01,3.563562e-01,1.512222e-01,6.735866e-02,2.819373e-02,6.735866e-02,2.819373e-02,1.814675e-02,2.440744e+05,7.805598e+05,6.944262e+05,8.543337e+05,1.024685e+06,7.260645e+05,1.673229e+05,1.441443e+05,2.190433e+04,1.274289e+03,1.806546e-04,2.039691e-04,1.157516e-04,1.353444e-02,1.761666e-02,1.678519e-01,8.684654e-01,1.000000e+00 +8.800000e-01,1.574444e-01,5.581586e-01,5.811649e-01,3.515562e-01,1.574444e-01,6.956549e-02,2.913651e-02,6.956549e-02,2.913651e-02,1.889343e-02,2.440744e+05,8.103440e+05,7.190256e+05,8.841179e+05,1.049284e+06,7.334058e+05,1.796224e+05,1.568635e+05,2.216030e+04,5.985536e+02,1.887096e-04,2.101098e-04,1.174987e-04,1.301158e-02,1.723879e-02,1.655412e-01,8.919756e-01,1.000000e+00 +8.800000e-01,1.636667e-01,5.612031e-01,5.801438e-01,3.486450e-01,1.636667e-01,7.181644e-02,3.015262e-02,7.181644e-02,3.015262e-02,1.964010e-02,2.440744e+05,8.397612e+05,7.427620e+05,9.135351e+05,1.073021e+06,7.427620e+05,1.924614e+05,1.700580e+05,2.240346e+04,3.895365e-07,1.966669e-04,2.160607e-04,1.200288e-04,1.253170e-02,1.685898e-02,1.620539e-01,9.149681e-01,1.000000e+00 +8.800000e-01,1.698889e-01,5.623893e-01,5.755461e-01,3.539540e-01,1.698889e-01,7.434521e-02,3.155616e-02,7.434521e-02,3.155616e-02,2.038677e-02,2.440744e+05,8.669874e+05,7.631134e+05,9.407613e+05,1.093372e+06,7.631134e+05,2.058707e+05,1.832196e+05,2.265107e+04,6.100719e-08,2.040356e-04,2.212651e-04,1.266402e-04,1.209637e-02,1.639333e-02,1.528201e-01,9.365050e-01,1.000000e+00 +8.800000e-01,1.761111e-01,5.636421e-01,5.712069e-01,3.586558e-01,1.761111e-01,7.684750e-02,3.295172e-02,7.684750e-02,3.295172e-02,2.113344e-02,2.440744e+05,8.944108e+05,7.832002e+05,9.681847e+05,1.113459e+06,7.832002e+05,2.198719e+05,1.970073e+05,2.286457e+04,3.459176e-08,2.114580e-04,2.263963e-04,1.331372e-04,1.169104e-02,1.596604e-02,1.446963e-01,9.579627e-01,1.000000e+00 +8.890000e-01,1.450000e-01,5.534431e-01,5.868091e-01,3.984162e-01,1.450000e-01,6.475076e-02,2.675446e-02,6.475076e-02,2.675446e-02,1.609509e-02,2.440744e+05,7.539113e+05,6.734366e+05,8.276852e+05,1.003695e+06,7.587658e+05,1.576366e+05,1.327921e+05,2.158307e+04,3.261341e+03,1.734440e-04,1.985933e-04,1.244696e-04,1.408556e-02,1.820248e-02,1.669023e-01,8.465160e-01,1.000000e+00 +8.890000e-01,1.512222e-01,5.571683e-01,5.865223e-01,3.937763e-01,1.512222e-01,6.696601e-02,2.768899e-02,6.696601e-02,2.768899e-02,1.678576e-02,2.440744e+05,7.836473e+05,6.983989e+05,8.574212e+05,1.028658e+06,7.677376e+05,1.695548e+05,1.449548e+05,2.185730e+04,2.742741e+03,1.814849e-04,2.048197e-04,1.266839e-04,1.351816e-02,1.779385e-02,1.641302e-01,8.702856e-01,1.000000e+00 +8.890000e-01,1.574444e-01,5.607319e-01,5.863135e-01,3.891668e-01,1.574444e-01,6.916034e-02,2.861074e-02,6.916034e-02,2.861074e-02,1.747643e-02,2.440744e+05,8.135244e+05,7.231873e+05,8.872983e+05,1.053446e+06,7.762615e+05,1.820033e+05,1.577194e+05,2.211465e+04,2.169273e+03,1.895651e-04,2.110072e-04,1.287693e-04,1.299685e-02,1.741168e-02,1.616283e-01,8.937939e-01,1.000000e+00 +8.890000e-01,1.636667e-01,5.641470e-01,5.861597e-01,3.846093e-01,1.636667e-01,7.133462e-02,2.952118e-02,7.133462e-02,2.952118e-02,1.816710e-02,2.440744e+05,8.435372e+05,7.477897e+05,9.173111e+05,1.078049e+06,7.843843e+05,1.949949e+05,1.710983e+05,2.235322e+04,1.543310e+03,1.976830e-04,2.171523e-04,1.307417e-04,1.251626e-02,1.705336e-02,1.593526e-01,9.170638e-01,1.000000e+00 +8.890000e-01,1.698889e-01,5.674245e-01,5.860407e-01,3.801250e-01,1.698889e-01,7.348979e-02,3.042183e-02,7.348979e-02,3.042183e-02,1.885778e-02,2.440744e+05,8.736799e+05,7.721934e+05,9.474538e+05,1.102452e+06,7.921542e+05,2.085422e+05,1.851038e+05,2.257084e+04,8.674934e+02,2.058369e-04,2.232516e-04,1.326175e-04,1.207184e-02,1.671664e-02,1.572644e-01,9.401149e-01,1.000000e+00 +8.890000e-01,1.761111e-01,5.705734e-01,5.859375e-01,3.757353e-01,1.761111e-01,7.562682e-02,3.131428e-02,7.562682e-02,3.131428e-02,1.954845e-02,2.440744e+05,9.039457e+05,7.963850e+05,9.777196e+05,1.126644e+06,7.996214e+05,2.226579e+05,1.997481e+05,2.276501e+04,1.447785e+02,2.140249e-04,2.293013e-04,1.344136e-04,1.165967e-02,1.639945e-02,1.553280e-01,9.629646e-01,1.000000e+00 +8.980000e-01,1.450000e-01,5.561837e-01,5.920716e-01,4.366039e-01,1.450000e-01,6.435337e-02,2.625161e-02,6.435337e-02,2.625161e-02,1.479010e-02,2.440744e+05,7.570439e+05,6.773895e+05,8.308178e+05,1.007648e+06,8.007454e+05,1.597540e+05,1.335952e+05,2.153264e+04,4.626131e+03,1.742861e-04,1.994304e-04,1.353748e-04,1.406735e-02,1.839893e-02,1.653243e-01,8.484189e-01,1.000000e+00 +8.980000e-01,1.512222e-01,5.598819e-01,5.918501e-01,4.321781e-01,1.512222e-01,6.655565e-02,2.716472e-02,6.655565e-02,2.716472e-02,1.542477e-02,2.440744e+05,7.868761e+05,7.025406e+05,8.606500e+05,1.032799e+06,8.109002e+05,1.718172e+05,1.458044e+05,2.180766e+04,4.205083e+03,1.823533e-04,2.057034e-04,1.379269e-04,1.350172e-02,1.798524e-02,1.623721e-01,8.721861e-01,1.000000e+00 +8.980000e-01,1.574444e-01,5.634196e-01,5.917064e-01,4.277784e-01,1.574444e-01,6.873718e-02,2.806499e-02,6.873718e-02,2.806499e-02,1.605944e-02,2.440744e+05,8.168481e+05,7.275225e+05,8.906221e+05,1.057781e+06,8.206033e+05,1.844143e+05,1.586160e+05,2.206638e+04,3.731876e+03,1.904593e-04,2.119388e-04,1.403484e-04,1.298200e-02,1.759835e-02,1.596929e-01,8.956914e-01,1.000000e+00 +8.980000e-01,1.636667e-01,5.668098e-01,5.916181e-01,4.234248e-01,1.636667e-01,7.089882e-02,2.895384e-02,7.089882e-02,2.895384e-02,1.669411e-02,2.440744e+05,8.469548e+05,7.523233e+05,9.207287e+05,1.082582e+06,8.299004e+05,1.975581e+05,1.720423e+05,2.230698e+04,3.208792e+03,1.986026e-04,2.181333e-04,1.426550e-04,1.250284e-02,1.723565e-02,1.572436e-01,9.189577e-01,1.000000e+00 +8.980000e-01,1.698889e-01,5.700635e-01,5.915650e-01,4.191368e-01,1.698889e-01,7.304145e-02,2.983273e-02,7.304145e-02,2.983273e-02,1.732879e-02,2.440744e+05,8.771904e+05,7.769308e+05,9.509643e+05,1.107190e+06,8.388378e+05,2.112614e+05,1.860956e+05,2.252740e+04,2.638365e+03,2.067817e-04,2.242832e-04,1.448627e-04,1.205970e-02,1.689484e-02,1.549863e-01,9.420049e-01,1.000000e+00 +8.980000e-01,1.761111e-01,5.731898e-01,5.915288e-01,4.149341e-01,1.761111e-01,7.516604e-02,3.070321e-02,7.516604e-02,3.070321e-02,1.796346e-02,2.440744e+05,9.075487e+05,8.013320e+05,9.813226e+05,1.131591e+06,8.474638e+05,2.255370e+05,2.007883e+05,2.272528e+04,2.023422e+03,2.149948e-04,2.303851e-04,1.469879e-04,1.164869e-02,1.657382e-02,1.528869e-01,9.648504e-01,1.000000e+00 +9.070000e-01,1.450000e-01,5.590509e-01,5.975924e-01,4.758817e-01,1.450000e-01,6.393763e-02,2.572903e-02,6.393763e-02,2.572903e-02,1.348511e-02,2.440744e+05,7.603233e+05,6.815152e+05,8.340972e+05,1.011774e+06,8.447886e+05,1.619187e+05,1.344380e+05,2.147948e+04,6.001237e+03,1.751678e-04,2.003007e-04,1.467336e-04,1.404896e-02,1.861160e-02,1.656316e-01,8.504077e-01,1.000000e+00 +9.070000e-01,1.512222e-01,5.627179e-01,5.974338e-01,4.716946e-01,1.512222e-01,6.612678e-02,2.662045e-02,6.612678e-02,2.662045e-02,1.406378e-02,2.440744e+05,7.902527e+05,7.068581e+05,8.640266e+05,1.037117e+06,8.561305e+05,1.741271e+05,1.466952e+05,2.175526e+04,5.676713e+03,1.832614e-04,2.066212e-04,1.496237e-04,1.348517e-02,1.819227e-02,1.624903e-01,8.741704e-01,1.000000e+00 +9.070000e-01,1.574444e-01,5.662259e-01,5.973534e-01,4.675285e-01,1.574444e-01,6.829533e-02,2.749893e-02,6.829533e-02,2.749893e-02,1.464245e-02,2.440744e+05,8.203209e+05,7.320366e+05,8.940948e+05,1.062295e+06,8.670163e+05,1.868730e+05,1.595551e+05,2.201533e+04,5.302568e+03,1.913935e-04,2.129055e-04,1.523813e-04,1.296709e-02,1.780018e-02,1.596292e-01,8.976709e-01,1.000000e+00 +9.070000e-01,1.636667e-01,5.695879e-01,5.973290e-01,4.634019e-01,1.636667e-01,7.044413e-02,2.836586e-02,7.044413e-02,2.836586e-02,1.522113e-02,2.440744e+05,8.505227e+05,7.570393e+05,9.242966e+05,1.087298e+06,8.774905e+05,2.001692e+05,1.730302e+05,2.225794e+04,4.881002e+03,1.995627e-04,2.191501e-04,1.550218e-04,1.248939e-02,1.743265e-02,1.570052e-01,9.209320e-01,1.000000e+00 +9.070000e-01,1.698889e-01,5.728148e-01,5.973407e-01,4.593328e-01,1.698889e-01,7.257404e-02,2.922266e-02,7.257404e-02,2.922266e-02,1.579980e-02,2.440744e+05,8.808526e+05,7.818542e+05,9.546265e+05,1.112113e+06,8.875980e+05,2.140284e+05,1.871328e+05,2.248114e+04,4.414447e+03,2.077674e-04,2.253517e-04,1.575607e-04,1.204757e-02,1.708735e-02,1.545807e-01,9.439738e-01,1.000000e+00 +9.070000e-01,1.761111e-01,5.759157e-01,5.973705e-01,4.553392e-01,1.761111e-01,7.468599e-02,3.007083e-02,7.468599e-02,3.007083e-02,1.637847e-02,2.440744e+05,9.113046e+05,8.064689e+05,9.850785e+05,1.136728e+06,8.973852e+05,2.284635e+05,2.018752e+05,2.268268e+04,3.905613e+03,2.160059e-04,2.315068e-04,1.600142e-04,1.163775e-02,1.676215e-02,1.523223e-01,9.668138e-01,1.000000e+00 +9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.160000e-01,1.512222e-01,5.656942e-01,6.033093e-01,5.124346e-01,1.512222e-01,6.567670e-02,2.605338e-02,6.567670e-02,2.605338e-02,1.270280e-02,2.440744e+05,7.937988e+05,7.113770e+05,8.675727e+05,1.041636e+06,9.041775e+05,1.765086e+05,1.476330e+05,2.169973e+04,7.175863e+03,1.842150e-04,2.075781e-04,1.619566e-04,1.346849e-02,1.841757e-02,1.645811e-01,8.762508e-01,1.000000e+00 +9.160000e-01,1.574444e-01,5.691675e-01,6.032884e-01,5.085298e-01,1.574444e-01,6.783220e-02,2.690987e-02,6.783220e-02,2.690987e-02,1.322547e-02,2.440744e+05,8.239634e+05,7.367547e+05,8.977373e+05,1.067014e+06,9.162540e+05,1.894042e+05,1.605426e+05,2.196114e+04,6.900433e+03,1.923733e-04,2.139120e-04,1.650519e-04,1.295210e-02,1.801961e-02,1.615160e-01,8.997439e-01,1.000000e+00 +9.160000e-01,1.636667e-01,5.724967e-01,6.033246e-01,5.046573e-01,1.636667e-01,6.996806e-02,2.775466e-02,6.996806e-02,2.775466e-02,1.374814e-02,2.440744e+05,8.542608e+05,7.619620e+05,9.280347e+05,1.092221e+06,9.279129e+05,2.028535e+05,1.740679e+05,2.220576e+04,6.579873e+03,2.005685e-04,2.202076e-04,1.680275e-04,1.247592e-02,1.764668e-02,1.586994e-01,9.229975e-01,1.000000e+00 +9.160000e-01,1.698889e-01,5.756926e-01,6.033983e-01,5.008336e-01,1.698889e-01,7.208514e-02,2.858914e-02,7.208514e-02,2.858914e-02,1.427081e-02,2.440744e+05,8.846856e+05,7.869874e+05,9.584595e+05,1.117246e+06,9.391979e+05,2.168694e+05,1.882211e+05,2.243173e+04,6.216526e+03,2.087990e-04,2.264617e-04,1.708987e-04,1.203546e-02,1.729636e-02,1.560932e-01,9.460317e-01,1.000000e+00 +9.160000e-01,1.761111e-01,5.787643e-01,6.034916e-01,4.970753e-01,1.761111e-01,7.418432e-02,2.941476e-02,7.418432e-02,2.941476e-02,1.479349e-02,2.440744e+05,9.152321e+05,8.118186e+05,9.890060e+05,1.142077e+06,9.501537e+05,2.314646e+05,2.030147e+05,2.263691e+04,5.812991e+03,2.170633e-04,2.326708e-04,1.736812e-04,1.162686e-02,1.696651e-02,1.536637e-01,9.688641e-01,1.000000e+00 +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.698889e-01,5.787254e-01,6.097985e-01,5.437441e-01,1.698889e-01,7.156990e-02,2.792674e-02,7.156990e-02,2.792674e-02,1.274183e-02,2.440744e+05,8.887279e+05,7.923786e+05,9.625018e+05,1.122637e+06,9.947065e+05,2.198223e+05,1.893718e+05,2.237855e+04,8.071941e+03,2.098870e-04,2.276230e-04,1.851356e-04,1.202333e-02,1.752545e-02,1.597760e-01,9.481986e-01,1.000000e+00 +9.250000e-01,1.761111e-01,5.817625e-01,6.099508e-01,5.402514e-01,1.761111e-01,7.365629e-02,2.872963e-02,7.365629e-02,2.872963e-02,1.320850e-02,2.440744e+05,9.193687e+05,8.174291e+05,9.931426e+05,1.147688e+06,1.006842e+06,2.345792e+05,2.042179e+05,2.258740e+04,7.773928e+03,2.181769e-04,2.338871e-04,1.882494e-04,1.161600e-02,1.719030e-02,1.571458e-01,9.710205e-01,1.000000e+00 diff --git a/src/wrd/surrogate_models/TEST_POINT_70_eff.csv b/src/wrd/surrogate_models/TEST_POINT_70_eff.csv new file mode 100644 index 0000000..2b707ee --- /dev/null +++ b/src/wrd/surrogate_models/TEST_POINT_70_eff.csv @@ -0,0 +1,5 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.800000e-01,1.450000e-01,5.508229e-01,5.817919e-01,3.611899e-01,1.450000e-01,6.513070e-02,2.723822e-02,6.513070e-02,2.723822e-02,1.740008e-02,2.440744e+05,7.509181e+05,6.696486e+05,8.246921e+05,9.999074e+05,7.182780e+05,1.555499e+05,1.320267e+05,2.163091e+04,1.892257e+03,1.726392e-04,1.977884e-04,1.138768e-04,1.410356e-02,1.802065e-02,1.704346e-01,8.446948e-01,1.000000e+00 +8.800000e-01,1.761111e-01,5.680647e-01,5.805917e-01,3.375912e-01,1.761111e-01,7.606863e-02,3.190387e-02,7.606863e-02,3.190387e-02,2.113344e-02,2.440744e+05,9.004930e+05,7.916263e+05,9.742669e+05,1.121885e+06,7.532503e+05,2.198066e+05,1.987536e+05,2.280203e+04,-1.749060e+03,2.130954e-04,2.282555e-04,1.221392e-04,1.167064e-02,1.623791e-02,1.598079e-01,9.611553e-01,1.000000e+00 +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.761111e-01,5.817625e-01,6.099508e-01,5.402514e-01,1.761111e-01,7.365629e-02,2.872963e-02,7.365629e-02,2.872963e-02,1.320850e-02,2.440744e+05,9.193687e+05,8.174291e+05,9.931426e+05,1.147688e+06,1.006842e+06,2.345792e+05,2.042179e+05,2.258740e+04,7.773928e+03,2.181769e-04,2.338871e-04,1.882494e-04,1.161600e-02,1.719030e-02,1.571458e-01,9.710205e-01,1.000000e+00 diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index bc01364..8525575 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -34,7 +34,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "number_of_subprocesses": num_procs, # Additional useful keyword arguments "csv_results_file_name": str( - Path(__file__).resolve().parent / "S1_S2_RR_not_equal.csv" + Path(__file__).resolve().parent / "S3_70_eff_sweep.csv" ), # Store CSV next to this script "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, @@ -61,9 +61,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): op_limits = { # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "Qout_min": 3 - * 72 - / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + "Qout_min": 3 * 72 / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? # "Qin_max": 635 / 3600, # Based on pump limitation }, diff --git a/src/wrd/surrogate_models/higher_stage_3_eff.csv b/src/wrd/surrogate_models/higher_stage_3_eff.csv new file mode 100644 index 0000000..6a456c1 --- /dev/null +++ b/src/wrd/surrogate_models/higher_stage_3_eff.csv @@ -0,0 +1,37 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.800000e-01,1.450000e-01,5.417842e-01,5.646033e-01,3.985124e-01,1.450000e-01,6.644131e-02,2.892836e-02,6.644131e-02,2.892836e-02,1.740008e-02,2.440744e+05,7.406068e+05,6.565154e+05,8.143807e+05,9.867743e+05,7.660453e+05,1.551574e+05,1.294037e+05,2.179303e+04,3.960650e+03,1.698670e-04,1.949768e-04,1.317693e-04,1.417007e-02,1.743575e-02,1.435834e-01,8.383987e-01,1.000000e+00 +8.800000e-01,1.512222e-01,5.457763e-01,5.643370e-01,3.935968e-01,1.512222e-01,6.868873e-02,2.992517e-02,6.868873e-02,2.992517e-02,1.814676e-02,2.440744e+05,7.701142e+05,6.808958e+05,8.438881e+05,1.011155e+06,7.751067e+05,1.670007e+05,1.414165e+05,2.206011e+04,3.524096e+03,1.778454e-04,2.010515e-04,1.340326e-04,1.359360e-02,1.705682e-02,1.413680e-01,8.622872e-01,1.000000e+00 +8.800000e-01,1.574444e-01,5.495914e-01,5.641391e-01,3.887383e-01,1.574444e-01,7.091435e-02,3.090883e-02,7.091435e-02,3.090883e-02,1.889343e-02,2.440744e+05,7.997686e+05,7.050903e+05,8.735425e+05,1.035349e+06,7.837120e+05,1.793776e+05,1.540320e+05,2.230796e+04,3.037632e+03,1.858646e-04,2.070843e-04,1.361657e-04,1.306431e-02,1.670193e-02,1.393650e-01,8.859109e-01,1.000000e+00 +8.800000e-01,1.636667e-01,5.532427e-01,5.639851e-01,3.839600e-01,1.636667e-01,7.311929e-02,3.188114e-02,7.311929e-02,3.188114e-02,1.964010e-02,2.440744e+05,8.295628e+05,7.290845e+05,9.033367e+05,1.059343e+06,7.919173e+05,1.923005e+05,1.672622e+05,2.253434e+04,2.503974e+03,1.939227e-04,2.130714e-04,1.381876e-04,1.257669e-02,1.636875e-02,1.375368e-01,9.092920e-01,1.000000e+00 +8.800000e-01,1.698889e-01,5.567415e-01,5.638530e-01,3.792855e-01,1.698889e-01,7.530472e-02,3.284397e-02,7.530472e-02,3.284397e-02,2.038677e-02,2.440744e+05,8.594892e+05,7.528635e+05,9.332631e+05,1.083122e+06,7.997811e+05,2.057817e+05,1.811188e+05,2.273670e+04,1.926201e+03,2.020175e-04,2.190086e-04,1.401178e-04,1.212604e-02,1.605521e-02,1.358491e-01,9.324497e-01,1.000000e+00 +8.800000e-01,1.761111e-01,5.600965e-01,5.637218e-01,3.747395e-01,1.761111e-01,7.747191e-02,3.379935e-02,7.747191e-02,3.379935e-02,2.113344e-02,2.440744e+05,8.895389e+05,7.764106e+05,9.633128e+05,1.106669e+06,8.073660e+05,2.198336e+05,1.956136e+05,2.291210e+04,1.307838e+03,2.101464e-04,2.248914e-04,1.419775e-04,1.170836e-02,1.575942e-02,1.342701e-01,9.554005e-01,1.000000e+00 +8.890000e-01,1.450000e-01,5.444025e-01,5.695626e-01,4.339792e-01,1.450000e-01,6.606165e-02,2.843544e-02,6.606165e-02,2.843544e-02,1.609509e-02,2.440744e+05,7.435917e+05,6.603306e+05,8.173656e+05,9.905895e+05,8.056506e+05,1.570726e+05,1.301607e+05,2.174655e+04,5.165298e+03,1.706695e-04,1.957968e-04,1.423010e-04,1.415010e-02,1.759870e-02,1.421054e-01,8.402248e-01,1.000000e+00 +8.890000e-01,1.512222e-01,5.483720e-01,5.693643e-01,4.292672e-01,1.512222e-01,6.829620e-02,2.941082e-02,6.829620e-02,2.941082e-02,1.678576e-02,2.440744e+05,7.731947e+05,6.849007e+05,8.469686e+05,1.015160e+06,8.158825e+05,1.690487e+05,1.422187e+05,2.201473e+04,4.815354e+03,1.786739e-04,2.019183e-04,1.449001e-04,1.357549e-02,1.721579e-02,1.397438e-01,8.641125e-01,1.000000e+00 +8.890000e-01,1.574444e-01,5.521653e-01,5.692346e-01,4.246063e-01,1.574444e-01,7.050911e-02,3.037293e-02,7.050911e-02,3.037293e-02,1.747643e-02,2.440744e+05,8.029437e+05,7.092899e+05,8.767176e+05,1.039549e+06,8.256528e+05,1.815619e+05,1.548798e+05,2.226431e+04,4.417851e+03,1.867188e-04,2.079994e-04,1.473671e-04,1.304787e-02,1.685720e-02,1.375973e-01,8.877348e-01,1.000000e+00 +8.890000e-01,1.636667e-01,5.557958e-01,5.691495e-01,4.200181e-01,1.636667e-01,7.270144e-02,3.132349e-02,7.270144e-02,3.132349e-02,1.816710e-02,2.440744e+05,8.328318e+05,7.334845e+05,9.066057e+05,1.063743e+06,8.350158e+05,1.946247e+05,1.681561e+05,2.249317e+04,3.975393e+03,1.948023e-04,2.140361e-04,1.497203e-04,1.256175e-02,1.652056e-02,1.356290e-01,9.111140e-01,1.000000e+00 +8.890000e-01,1.698889e-01,5.592749e-01,5.690874e-01,4.155241e-01,1.698889e-01,7.487432e-02,3.226434e-02,7.487432e-02,3.226434e-02,1.885778e-02,2.440744e+05,8.628514e+05,7.574698e+05,9.366253e+05,1.087729e+06,8.440280e+05,2.082493e+05,1.820595e+05,2.269888e+04,3.490930e+03,2.029224e-04,2.200244e-04,1.519789e-04,1.211245e-02,1.620378e-02,1.338061e-01,9.342695e-01,1.000000e+00 +8.890000e-01,1.761111e-01,5.626115e-01,5.690276e-01,4.111469e-01,1.761111e-01,7.702899e-02,3.319741e-02,7.702899e-02,3.319741e-02,1.954845e-02,2.440744e+05,8.929944e+05,7.812299e+05,9.667683e+05,1.111489e+06,8.527493e+05,2.224481e+05,1.966016e+05,2.287863e+04,2.967824e+03,2.110767e-04,2.259602e-04,1.541632e-04,1.169598e-02,1.590497e-02,1.320983e-01,9.572182e-01,1.000000e+00 +8.980000e-01,1.450000e-01,5.471130e-01,5.747138e-01,4.704220e-01,1.450000e-01,6.566863e-02,2.792800e-02,6.566863e-02,2.792800e-02,1.479010e-02,2.440744e+05,7.466834e+05,6.642707e+05,8.204573e+05,9.945296e+05,8.468451e+05,1.590185e+05,1.309468e+05,2.169801e+04,6.373672e+03,1.715007e-04,1.966409e-04,1.531949e-04,1.413003e-02,1.777287e-02,1.419713e-01,8.421133e-01,1.000000e+00 +8.980000e-01,1.512222e-01,5.510571e-01,5.745825e-01,4.659344e-01,1.512222e-01,6.789016e-02,2.888170e-02,6.789016e-02,2.888170e-02,1.542477e-02,2.440744e+05,7.763832e+05,6.890330e+05,8.501571e+05,1.019292e+06,8.582515e+05,1.711274e+05,1.430510e+05,2.196726e+04,6.109146e+03,1.795314e-04,2.028099e-04,1.561298e-04,1.355733e-02,1.738565e-02,1.394631e-01,8.659989e-01,1.000000e+00 +8.980000e-01,1.574444e-01,5.548261e-01,5.745203e-01,4.614915e-01,1.574444e-01,7.009017e-02,2.982198e-02,7.009017e-02,2.982198e-02,1.605944e-02,2.440744e+05,8.062280e+05,7.136197e+05,8.800019e+05,1.043879e+06,8.691903e+05,1.837767e+05,1.557588e+05,2.221854e+04,5.799277e+03,1.876023e-04,2.089398e-04,1.589304e-04,1.303142e-02,1.702307e-02,1.371752e-01,8.896186e-01,1.000000e+00 +8.980000e-01,1.636667e-01,5.584337e-01,5.745037e-01,4.571132e-01,1.636667e-01,7.226970e-02,3.075054e-02,7.226970e-02,3.075054e-02,1.669411e-02,2.440744e+05,8.362112e+05,7.380174e+05,9.099851e+05,1.068276e+06,8.797143e+05,1.969788e+05,1.690825e+05,2.244983e+04,5.446568e+03,1.957117e-04,2.150269e-04,1.616145e-04,1.254682e-02,1.668272e-02,1.350713e-01,9.129950e-01,1.000000e+00 +8.980000e-01,1.698889e-01,5.618910e-01,5.745111e-01,4.528194e-01,1.698889e-01,7.442986e-02,3.166912e-02,7.442986e-02,3.166912e-02,1.732879e-02,2.440744e+05,8.663255e+05,7.622119e+05,9.400994e+05,1.092471e+06,8.898781e+05,2.107464e+05,1.830337e+05,2.265881e+04,5.053844e+03,2.038574e-04,2.210672e-04,1.642009e-04,1.209890e-02,1.636248e-02,1.331191e-01,9.361475e-01,1.000000e+00 +8.980000e-01,1.761111e-01,5.652074e-01,5.745226e-01,4.486309e-01,1.761111e-01,7.657183e-02,3.257963e-02,7.657183e-02,3.257963e-02,1.796346e-02,2.440744e+05,8.965629e+05,7.861879e+05,9.703368e+05,1.116447e+06,8.997391e+05,2.250916e+05,1.976244e+05,2.284283e+04,4.624319e+03,2.120374e-04,2.270566e-04,1.667093e-04,1.168367e-02,1.606043e-02,1.312892e-01,9.590931e-01,1.000000e+00 +9.070000e-01,1.450000e-01,5.499269e-01,5.800797e-01,5.079219e-01,1.450000e-01,6.526061e-02,2.740429e-02,6.526061e-02,2.740429e-02,1.348511e-02,2.440744e+05,7.498951e+05,6.683514e+05,8.236690e+05,9.986102e+05,8.901370e+05,1.610100e+05,1.317655e+05,2.164719e+04,7.597346e+03,1.723642e-04,1.975121e-04,1.645785e-04,1.410985e-02,1.795979e-02,1.432297e-01,8.440717e-01,1.000000e+00 +9.070000e-01,1.512222e-01,5.538421e-01,5.800133e-01,5.036822e-01,1.512222e-01,6.746900e-02,2.833612e-02,6.746900e-02,2.833612e-02,1.406378e-02,2.440744e+05,7.796924e+05,6.933080e+05,8.534663e+05,1.023567e+06,9.027252e+05,1.732520e+05,1.439170e+05,2.191747e+04,7.417588e+03,1.804213e-04,2.037292e-04,1.678503e-04,1.353911e-02,1.756787e-02,1.405630e-01,8.679536e-01,1.000000e+00 +9.070000e-01,1.574444e-01,5.575838e-01,5.800169e-01,4.994804e-01,1.574444e-01,6.965599e-02,2.925438e-02,6.965599e-02,2.925438e-02,1.464245e-02,2.440744e+05,8.096338e+05,7.180945e+05,8.834077e+05,1.048353e+06,9.148397e+05,1.860377e+05,1.566727e+05,2.217041e+04,7.194574e+03,1.885185e-04,2.099086e-04,1.709853e-04,1.301494e-02,1.720093e-02,1.381249e-01,8.915693e-01,1.000000e+00 +9.070000e-01,1.636667e-01,5.611655e-01,5.800671e-01,4.953349e-01,1.636667e-01,7.182260e-02,3.016071e-02,7.182260e-02,3.016071e-02,1.522113e-02,2.440744e+05,8.397130e+05,7.426977e+05,9.134869e+05,1.072957e+06,9.265319e+05,1.993795e+05,1.700447e+05,2.240409e+04,6.930712e+03,1.966540e-04,2.160467e-04,1.740011e-04,1.253191e-02,1.685655e-02,1.358787e-01,9.149413e-01,1.000000e+00 +9.070000e-01,1.698889e-01,5.645985e-01,5.801429e-01,4.912640e-01,1.698889e-01,7.396990e-02,3.105684e-02,7.396990e-02,3.105684e-02,1.579980e-02,2.440744e+05,8.699228e+05,7.671039e+05,9.436967e+05,1.097363e+06,9.378544e+05,2.132900e+05,1.840450e+05,2.261630e+04,6.628712e+03,2.048256e-04,2.221396e-04,1.769160e-04,1.208538e-02,1.653255e-02,1.337923e-01,9.380895e-01,1.000000e+00 +9.070000e-01,1.761111e-01,5.678921e-01,5.802245e-01,4.872867e-01,1.761111e-01,7.609903e-02,3.194456e-02,7.609903e-02,3.194456e-02,1.637847e-02,2.440744e+05,9.002556e+05,7.912983e+05,9.740295e+05,1.121557e+06,9.488624e+05,2.277815e+05,1.986853e+05,2.280453e+04,6.291645e+03,2.130315e-04,2.281833e-04,1.797489e-04,1.167142e-02,1.622700e-02,1.318367e-01,9.610307e-01,1.000000e+00 +9.160000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.160000e-01,1.512222e-01,5.567466e-01,5.856958e-01,5.425863e-01,1.512222e-01,6.702978e-02,2.777076e-02,6.702978e-02,2.777076e-02,1.270280e-02,2.440744e+05,7.831457e+05,6.977544e+05,8.569196e+05,1.028013e+06,9.499992e+05,1.754443e+05,1.448230e+05,2.186497e+04,8.756286e+03,1.813500e-04,2.046819e-04,1.802356e-04,1.352077e-02,1.776469e-02,1.431984e-01,8.699901e-01,1.000000e+00 +9.160000e-01,1.574444e-01,5.604567e-01,5.857621e-01,5.386517e-01,1.574444e-01,6.920367e-02,2.866683e-02,6.920367e-02,2.866683e-02,1.322547e-02,2.440744e+05,8.131841e+05,7.227427e+05,8.869580e+05,1.053002e+06,9.632994e+05,1.883673e+05,1.576278e+05,2.211956e+04,8.619996e+03,1.894736e-04,2.109114e-04,1.837069e-04,1.299840e-02,1.739291e-02,1.405889e-01,8.935995e-01,1.000000e+00 +9.160000e-01,1.636667e-01,5.640086e-01,5.858764e-01,5.347647e-01,1.636667e-01,7.135727e-02,2.955077e-02,7.135727e-02,2.955077e-02,1.374814e-02,2.440744e+05,8.433597e+05,7.475537e+05,9.171336e+05,1.077813e+06,9.761696e+05,2.018497e+05,1.710493e+05,2.235561e+04,8.444719e+03,1.976352e-04,2.171012e-04,1.870561e-04,1.251697e-02,1.704406e-02,1.381823e-01,9.169653e-01,1.000000e+00 +9.160000e-01,1.698889e-01,5.674137e-01,5.860181e-01,5.309422e-01,1.698889e-01,7.349163e-02,3.042425e-02,7.349163e-02,3.042425e-02,1.427081e-02,2.440744e+05,8.736655e+05,7.721739e+05,9.474394e+05,1.102433e+06,9.886607e+05,2.159038e+05,1.850998e+05,2.257101e+04,8.233059e+03,2.058330e-04,2.232473e-04,1.903009e-04,1.207189e-02,1.671592e-02,1.359459e-01,9.401072e-01,1.000000e+00 +9.160000e-01,1.761111e-01,5.706812e-01,5.861676e-01,5.272015e-01,1.761111e-01,7.560783e-02,3.128902e-02,7.560783e-02,3.128902e-02,1.479349e-02,2.440744e+05,9.040942e+05,7.965892e+05,9.778681e+05,1.126848e+06,1.000826e+06,2.305423e+05,1.997909e+05,2.276340e+04,7.987957e+03,2.140648e-04,2.293461e-04,1.934599e-04,1.165921e-02,1.640652e-02,1.338504e-01,9.630424e-01,1.000000e+00 +9.250000e-01,1.450000e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.512222e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.574444e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.636667e-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.250000e-01,1.698889e-01,5.703644e-01,5.921960e-01,5.719337e-01,1.698889e-01,7.299033e-02,2.976580e-02,7.299033e-02,2.976580e-02,1.274183e-02,2.440744e+05,8.775909e+05,7.774701e+05,9.513648e+05,1.107729e+06,1.043310e+06,2.186225e+05,1.862089e+05,2.252239e+04,9.891179e+03,2.068895e-04,2.244004e-04,2.046096e-04,1.205835e-02,1.691555e-02,1.398505e-01,9.422203e-01,1.000000e+00 +9.250000e-01,1.761111e-01,5.736013e-01,5.924097e-01,5.684580e-01,1.761111e-01,7.509357e-02,3.060746e-02,7.509357e-02,3.060746e-02,1.320851e-02,2.440744e+05,9.081156e+05,8.021087e+05,9.818895e+05,1.132368e+06,1.056644e+06,2.334095e+05,2.009522e+05,2.271892e+04,9.738366e+03,2.151474e-04,2.305549e-04,2.080968e-04,1.164701e-02,1.660182e-02,1.375882e-01,9.651469e-01,1.000000e+00 diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index fbb67ec..6f98061 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -152,6 +152,14 @@ def build_flowsheet(op_limits=None, scenario=None): TransformationFactory("network.expand_arcs").apply_to(m) + # Below are a few different options to address the issue of negative 3rd stage power + # Add a lower bound on the stage 3 pump work + m.fs.ro_train.stage[3].pump.unit.work_mechanical[0].setlb(0) + # Increase the pump efficiency so stage 2 isn't so heavily favored + m.fs.ro_train.stage[3].pump.unit.efficiency_pump.fix(0.7) + #Provide a lower bound on the third stage recovery + # m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0,'Liq'].setlb(.5) + m.fs.properties.set_default_scaling( "flow_mass_phase_comp", 1e-1, index=("Liq", "H2O") # changed from 1 ) @@ -241,11 +249,15 @@ def initialize_model(m): a = blk.find_component("feed_to_stage_1") propagate_state(a) initialize_ro_stage(blk.stage[1]) + a = blk.find_component("stage_1_to_product") + propagate_state(a) a = blk.find_component("stage_1_to_stage_2") propagate_state(a) initialize_ro_stage(blk.stage[2]) a = blk.find_component("stage_2_to_tsro_header") propagate_state(a) + a = blk.find_component("stage_2_to_product") + propagate_state(a) blk.tsro_header.initialize() a = blk.find_component("tsro_header_to_stage_3") propagate_state(a) @@ -254,8 +266,8 @@ def initialize_model(m): propagate_state(a) a = blk.find_component("stage_3_to_brine") propagate_state(a) - a = blk.find_component("stage_3_to_product") - propagate_state(a) + # a = blk.find_component("stage_3_to_product") + # propagate_state(a) blk.mixer.initialize() propagate_state(blk.mixer_to_product) blk.product.initialize() @@ -292,6 +304,8 @@ def optimize(m, solver=None, check_termination=True): # m.fs.ro_train.eq_recovery = Constraint( # expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) + + m.fs.obj = Objective( expr=m.fs.ro_train.total_pump_power, sense=minimize ) # Dummy objective to trigger solve @@ -302,11 +316,17 @@ def optimize(m, solver=None, check_termination=True): # assert degrees_of_freedom(m) == 0 # --solve--- solver = get_solver() - results = solver.solve(m, tee=True) - if assert_optimal_termination(results): - print("-----FAILED TO OPTIMALLY SOLVE-----") + try: + results = solver.solve(m, tee=True) + assert_optimal_termination(results) + except Exception as e: + print("-----FAILED TO SOLVE-----") + print(f"Exception: {e}") print(f"RR = {m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, 'Liq']()}%") print(f"Qin = {m.fs.feed.properties[0].flow_vol_phase['Liq']()}") + dt = DiagnosticsToolbox(m) + dt.report_numerical_issues() + dt.display_constraints_with_large_residuals() return results @@ -392,34 +412,33 @@ def _pump_unit(stage_blk): if __name__ == "__main__": - op_limts = { + op_limits = { + # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 420 / 3600, # m/hr - "Qin_max": 635 / 3600, + "Qout_min": 3 * 72 / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? + # "Qin_max": 635 / 3600, # Based on pump limitation }, "Stage 2": { - "RR_min": 0.55, - "RR_max": 0.62, - "Qin_min": 200 / 3600, - "Qin_max": 251 / 3600, + "Qout_min": 3 * 30 / 3600, + # "Qin_min": 200 / 3600, + # "Qin_max": 251 / 3600, # This came from stage 1 min recovery of 55% }, "Stage 3": { - "RR_min": 0.40, - "RR_max": 0.55, - "Qin_min": 75 / 3600, - "Qin_max": 126 / 3600, + "Qout_min": 3 * 15 / 3600, + # "Qin_min": 75 / 3600, + # "Qin_max": 126 / 3600, }, } - m = build_flowsheet(op_limts=op_limts, scenario=None) + + m = build_flowsheet(op_limits=op_limits, scenario=None) initialize_model(m) # Dummy version of fixing value print(f"Degrees of freedom before fixing: {degrees_of_freedom(m)}") # Should be 0 # Param Sweep will fix these two variables - m.fs.ro_train.recovery_vol.fix(0.9) - m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.158) - + m.fs.ro_train.recovery_vol.fix(0.925) + m.fs.feed.properties[0].flow_vol_phase["Liq"].fix(0.145) + # m.fs.ro_train.stage[3].ro.unit.recovery_flow_vol[0,'Liq'].setlb(.5) print(f"Degrees of freedom after fixing: {degrees_of_freedom(m)}") results = optimize(m) diff --git a/src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv b/src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv index d88eadc..c7020fb 100644 --- a/src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv +++ b/src/wrd/surrogate_models/ro_sweep_S1_S2_not_equal_RR.csv @@ -37,7 +37,7 @@ Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m 9.25E-01,1.76E-01,5.99E-01,6.46E-01,4.72E-01,1.76E-01,7.07E-02,2.50E-02,7.07E-02,2.50E-02,1.32E-02,2.44E+05,9.43E+05,8.49E+05,1.02E+06,1.18E+06,9.09E+05,2.36E+05,2.11E+05,2.23E+04,3.00E+03,2.24E-04,2.41E-04,1.48E-04,1.16E-02,1.86E-02,2.15E-01,9.83E-01,1.00E+00 ,,,,,,,,,,,,,,,,,,,,,,,,,,,, Upper lim,,,,,,,,,,,,,,,,,,,,,,,,,,,, -RR,0.88,0.889,,,,,,,,,,,,,,,,,,,,,,,,,, +RR,0.88,0.889,,,,,,,3.00E+00,,,,,,,,,,,,,,,,,,, Flow,0.164,0.164,,,,,,,,,,,,,,,,,,,,,,,,,, Flow,590.4,590.4,,,,,,,,,,,,,,,,,,,,,,,,,, Lower lim,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/src/wrd/surrogate_models/stage_3_lower_RR_lim.csv b/src/wrd/surrogate_models/stage_3_lower_RR_lim.csv new file mode 100644 index 0000000..1a995b6 --- /dev/null +++ b/src/wrd/surrogate_models/stage_3_lower_RR_lim.csv @@ -0,0 +1,40 @@ +# Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.80E-01,1.45E-01,5.41E-01,5.64E-01,4.00E-01,1.45E-01,6.65E-02,2.90E-02,6.65E-02,2.90E-02,1.74E-02,2.44E+05,7.40E+05,6.56E+05,8.14E+05,9.86E+05,7.68E+05,1.58E+05,1.29E+05,2.18E+04,6.50E+03,1.70E-04,1.95E-04,1.33E-04,1.42E-02,1.74E-02,1.43E-01,8.38E-01,1.00E+00 +8.80E-01,1.51E-01,6.03E-01,4.85E-01,4.12E-01,1.51E-01,6.00E-02,3.09E-02,6.00E-02,3.09E-02,1.81E-02,2.44E+05,8.39E+05,5.08E+05,9.13E+05,8.39E+05,8.02E+05,1.78E+05,1.60E+05,4.13E-08,1.81E+04,1.96E-04,1.53E-04,1.44E-04,1.33E-02,2.33E-02,1.30E-01,9.02E-01,5.07E-01 +8.80E-01,1.57E-01,5.47E-01,5.59E-01,4.00E-01,1.57E-01,7.14E-02,3.15E-02,7.14E-02,3.15E-02,1.89E-02,2.44E+05,7.96E+05,7.01E+05,8.70E+05,1.03E+06,8.00E+05,1.82E+05,1.53E+05,2.24E+04,6.27E+03,1.85E-04,2.06E-04,1.42E-04,1.31E-02,1.65E-02,1.32E-01,8.84E-01,1.00E+00 +8.80E-01,1.64E-01,6.04E-01,4.95E-01,4.00E-01,1.64E-01,6.48E-02,3.27E-02,6.48E-02,3.27E-02,1.96E-02,2.44E+05,8.95E+05,5.65E+05,9.69E+05,8.95E+05,8.16E+05,2.02E+05,1.86E+05,1.84E-08,1.64E+04,2.12E-04,1.68E-04,1.47E-04,1.24E-02,2.16E-02,1.28E-01,9.45E-01,5.47E-01 +8.80E-01,1.70E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.80E-01,1.76E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.45E-01,5.53E-01,5.86E-01,4.00E-01,1.45E-01,6.48E-02,2.68E-02,6.48E-02,2.68E-02,1.61E-02,2.44E+05,7.53E+05,6.73E+05,8.27E+05,1.00E+06,7.61E+05,1.59E+05,1.33E+05,2.16E+04,4.71E+03,1.73E-04,1.98E-04,1.25E-04,1.41E-02,1.82E-02,1.66E-01,8.46E-01,1.00E+00 +8.89E-01,1.51E-01,6.03E-01,4.85E-01,4.56E-01,1.51E-01,6.00E-02,3.09E-02,6.00E-02,3.09E-02,1.68E-02,2.44E+05,8.39E+05,5.08E+05,9.13E+05,8.39E+05,8.57E+05,1.81E+05,1.60E+05,4.65E-08,2.15E+04,1.96E-04,1.53E-04,1.60E-04,1.33E-02,2.33E-02,1.23E-01,9.02E-01,5.07E-01 +8.89E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +8.89E-01,1.64E-01,5.61E-01,5.79E-01,4.00E-01,1.64E-01,7.19E-02,3.03E-02,7.19E-02,3.03E-02,1.82E-02,2.44E+05,8.39E+05,7.42E+05,9.13E+05,1.07E+06,8.06E+05,1.96E+05,1.70E+05,2.24E+04,3.87E+03,1.96E-04,2.16E-04,1.39E-04,1.25E-02,1.68E-02,1.49E-01,9.15E-01,1.00E+00 +8.89E-01,1.70E-01,5.63E-01,5.77E-01,4.00E-01,1.70E-01,7.43E-02,3.14E-02,7.43E-02,3.14E-02,1.89E-02,2.44E+05,8.68E+05,7.64E+05,9.42E+05,1.09E+06,8.21E+05,2.10E+05,1.83E+05,2.26E+04,3.55E+03,2.04E-04,2.21E-04,1.43E-04,1.21E-02,1.64E-02,1.44E-01,9.37E-01,1.00E+00 +8.89E-01,1.76E-01,6.14E-01,5.20E-01,4.00E-01,1.76E-01,6.79E-02,3.26E-02,6.79E-02,3.26E-02,1.95E-02,2.44E+05,9.65E+05,6.34E+05,1.04E+06,9.65E+05,8.35E+05,2.31E+05,2.18E+05,1.79E-08,1.31E+04,2.30E-04,1.85E-04,1.48E-04,1.15E-02,2.08E-02,1.39E-01,9.94E-01,5.74E-01 +8.98E-01,1.45E-01,5.63E-01,6.05E-01,4.08E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.48E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,7.66E+05,1.61E+05,1.36E+05,2.14E+04,3.95E+03,1.76E-04,2.02E-04,1.22E-04,1.40E-02,1.89E-02,1.88E-01,8.53E-01,1.00E+00 +8.98E-01,1.51E-01,6.03E-01,4.85E-01,5.01E-01,1.51E-01,6.00E-02,3.09E-02,6.00E-02,3.09E-02,1.54E-02,2.44E+05,8.39E+05,5.08E+05,9.13E+05,8.39E+05,9.13E+05,1.85E+05,1.60E+05,5.36E-08,2.50E+04,1.96E-04,1.53E-04,1.77E-04,1.33E-02,2.33E-02,1.19E-01,9.02E-01,5.07E-01 +8.98E-01,1.57E-01,5.70E-01,6.05E-01,4.00E-01,1.57E-01,6.77E-02,2.68E-02,6.77E-02,2.68E-02,1.61E-02,2.44E+05,8.25E+05,7.38E+05,8.99E+05,1.07E+06,7.85E+05,1.85E+05,1.61E+05,2.19E+04,2.50E+03,1.93E-04,2.14E-04,1.26E-04,1.29E-02,1.81E-02,1.81E-01,9.00E-01,1.00E+00 +8.98E-01,1.64E-01,6.30E-01,5.41E-01,4.00E-01,1.64E-01,6.06E-02,2.78E-02,6.06E-02,2.78E-02,1.67E-02,2.44E+05,9.28E+05,5.98E+05,1.00E+06,9.28E+05,7.98E+05,2.06E+05,1.95E+05,1.94E-08,1.11E+04,2.20E-04,1.74E-04,1.31E-04,1.23E-02,2.38E-02,1.75E-01,9.63E-01,5.12E-01 +8.98E-01,1.70E-01,5.74E-01,6.01E-01,4.00E-01,1.70E-01,7.23E-02,2.89E-02,7.23E-02,2.89E-02,1.73E-02,2.44E+05,8.83E+05,7.85E+05,9.57E+05,1.11E+06,8.12E+05,2.12E+05,1.88E+05,2.25E+04,1.60E+03,2.08E-04,2.26E-04,1.35E-04,1.20E-02,1.72E-02,1.69E-01,9.45E-01,1.00E+00 +8.98E-01,1.76E-01,6.22E-01,5.35E-01,4.19E-01,1.76E-01,6.65E-02,3.09E-02,6.65E-02,3.09E-02,1.80E-02,2.44E+05,9.76E+05,6.45E+05,1.05E+06,9.76E+05,8.53E+05,2.34E+05,2.21E+05,2.45E-08,1.29E+04,2.33E-04,1.87E-04,1.49E-04,1.15E-02,2.15E-02,1.50E-01,1.00E+00,5.62E-01 +9.07E-01,1.45E-01,5.63E-01,6.05E-01,4.61E-01,1.45E-01,6.34E-02,2.50E-02,6.34E-02,2.50E-02,1.35E-02,2.44E+05,7.65E+05,6.87E+05,8.39E+05,1.02E+06,8.25E+05,1.64E+05,1.36E+05,2.14E+04,6.89E+03,1.76E-04,2.02E-04,1.39E-04,1.40E-02,1.89E-02,1.77E-01,8.53E-01,1.00E+00 +9.07E-01,1.51E-01,6.03E-01,4.85E-01,5.45E-01,1.51E-01,6.00E-02,3.09E-02,6.00E-02,3.09E-02,1.41E-02,2.44E+05,8.39E+05,5.08E+05,9.13E+05,8.39E+05,9.72E+05,1.88E+05,1.60E+05,6.36E-08,2.86E+04,1.96E-04,1.53E-04,1.94E-04,1.33E-02,2.33E-02,1.16E-01,9.02E-01,5.07E-01 +9.07E-01,1.57E-01,5.79E-01,6.23E-01,4.14E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.46E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,7.99E+05,1.88E+05,1.64E+05,2.18E+04,2.33E+03,1.96E-04,2.17E-04,1.25E-04,1.29E-02,1.88E-02,2.03E-01,9.07E-01,1.00E+00 +9.07E-01,1.64E-01,6.33E-01,5.48E-01,4.38E-01,1.64E-01,6.00E-02,2.71E-02,6.00E-02,2.71E-02,1.52E-02,2.44E+05,9.33E+05,6.03E+05,1.01E+06,9.33E+05,8.43E+05,2.10E+05,1.97E+05,2.35E-08,1.30E+04,2.22E-04,1.75E-04,1.41E-04,1.23E-02,2.42E-02,1.75E-01,9.66E-01,5.07E-01 +9.07E-01,1.70E-01,5.86E-01,6.25E-01,4.00E-01,1.70E-01,7.03E-02,2.63E-02,7.03E-02,2.63E-02,1.58E-02,2.44E+05,8.99E+05,8.05E+05,9.72E+05,1.14E+06,8.08E+05,2.15E+05,1.92E+05,2.22E+04,1.52E+02,2.13E-04,2.30E-04,1.26E-04,1.20E-02,1.81E-02,2.02E-01,9.53E-01,1.00E+00 +9.07E-01,1.76E-01,6.22E-01,5.35E-01,4.70E-01,1.76E-01,6.65E-02,3.09E-02,6.65E-02,3.09E-02,1.64E-02,2.44E+05,9.76E+05,6.45E+05,1.05E+06,9.76E+05,9.21E+05,2.38E+05,2.21E+05,2.64E-08,1.70E+04,2.33E-04,1.87E-04,1.69E-04,1.15E-02,2.15E-02,1.42E-01,1.00E+00,5.62E-01 +9.16E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.16E-01,1.51E-01,6.03E-01,4.85E-01,5.89E-01,1.51E-01,6.00E-02,3.09E-02,6.00E-02,3.09E-02,1.27E-02,2.44E+05,8.39E+05,5.08E+05,9.13E+05,8.39E+05,1.03E+06,1.92E+05,1.60E+05,7.90E-08,3.24E+04,1.96E-04,1.53E-04,2.13E-04,1.33E-02,2.33E-02,1.15E-01,9.02E-01,5.07E-01 +9.16E-01,1.57E-01,5.79E-01,6.23E-01,4.71E-01,1.57E-01,6.63E-02,2.50E-02,6.63E-02,2.50E-02,1.32E-02,2.44E+05,8.36E+05,7.52E+05,9.10E+05,1.08E+06,8.65E+05,1.91E+05,1.64E+05,2.18E+04,5.65E+03,1.96E-04,2.17E-04,1.44E-04,1.29E-02,1.88E-02,1.91E-01,9.07E-01,1.00E+00 +9.16E-01,1.64E-01,6.33E-01,5.48E-01,4.93E-01,1.64E-01,6.00E-02,2.71E-02,6.00E-02,2.71E-02,1.37E-02,2.44E+05,9.33E+05,6.03E+05,1.01E+06,9.33E+05,9.10E+05,2.13E+05,1.97E+05,2.53E-08,1.66E+04,2.22E-04,1.75E-04,1.61E-04,1.23E-02,2.42E-02,1.67E-01,9.66E-01,5.07E-01 +9.16E-01,1.70E-01,6.45E-01,5.75E-01,4.42E-01,1.70E-01,6.02E-02,2.56E-02,6.02E-02,2.56E-02,1.43E-02,2.44E+05,9.78E+05,6.48E+05,1.05E+06,9.78E+05,8.58E+05,2.26E+05,2.16E+05,1.97E-08,1.07E+04,2.34E-04,1.85E-04,1.38E-04,1.19E-02,2.47E-02,2.03E-01,9.95E-01,5.09E-01 +9.16E-01,1.76E-01,5.97E-01,6.43E-01,4.17E-01,1.76E-01,7.10E-02,2.54E-02,7.10E-02,2.54E-02,1.48E-02,2.44E+05,9.40E+05,8.45E+05,1.01E+06,1.18E+06,8.41E+05,2.32E+05,2.10E+05,2.23E+04,-2.00E+02,2.24E-04,2.40E-04,1.30E-04,1.16E-02,1.85E-02,2.20E-01,9.82E-01,1.00E+00 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,5.92E-01,6.39E-01,4.90E-01,1.70E-01,6.92E-02,2.50E-02,6.92E-02,2.50E-02,1.27E-02,2.44E+05,9.07E+05,8.17E+05,9.81E+05,1.15E+06,9.18E+05,2.22E+05,1.95E+05,2.21E+04,5.06E+03,2.15E-04,2.33E-04,1.53E-04,1.20E-02,1.87E-02,2.04E-01,9.58E-01,1.00E+00 +9.25E-01,1.76E-01,5.99E-01,6.46E-01,4.72E-01,1.76E-01,7.07E-02,2.50E-02,7.07E-02,2.50E-02,1.32E-02,2.44E+05,9.43E+05,8.49E+05,1.02E+06,1.18E+06,9.09E+05,2.36E+05,2.11E+05,2.23E+04,3.00E+03,2.24E-04,2.41E-04,1.48E-04,1.16E-02,1.86E-02,2.15E-01,9.83E-01,1.00E+00 +,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,, From 1291413174bac1a841d60e1345c3df06c2b2100a Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Wed, 13 May 2026 23:05:27 -0600 Subject: [PATCH 11/12] Created new surrogate --- ps_demo.h5 | Bin 99288 -> 99288 bytes solution.pickle | Bin 4701 -> 4859 bytes .../surrogate_models/energy_param_sweep.py | 4 +- src/wrd/surrogate_models/energy_surrogate.py | 2 +- .../ro_SEC_poly_fit_order_2.json | 2 +- .../surrogate_models/ro_sweep_USED_IN_PT.csv | 37 ++++++++++++++++++ 6 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 src/wrd/surrogate_models/ro_sweep_USED_IN_PT.csv diff --git a/ps_demo.h5 b/ps_demo.h5 index 2b475cda4f8b934f997ffa350ad19e73e62eaa77..b706b57b44df2b7b15a49ae1c8c2489e30b4c465 100644 GIT binary patch delta 7258 zcmeI1c|27AzsF6MWJ|J!BHL{CQc2$D6KRuDWQ#z7_uj+vu7EDG%(>46m=OL^YR zXG7vaigF2&4P)-5rNO3b$PzN9-l^|_ho0mP!FN5-x#H*sA$~SUyIQYcDY0QGNrf7@ znhj4~WUbV!*}(7DBJ-rZ2bj$dHVl03feO4bt6Z85Z#AVBI_a?~@Gx`yeYZIqdPUp4 z?Dw&OePmwu>7gEwqE;px5n+Sejpi^Z0vk3&26aVnFJSZG+aW9`Huz7tyQu`Rf#+wN zr2N)7Nkn;dBQ|8429Da>u))dh(U#zYY}nOeAd?(B+fOU^k`Q_YOd(Db8+cdJ)-Euh zWG|DiV7BHBxVIYe_OckYh(rV9&#xN3IHev{R*UQm!sy#e~YaBJ#ZZIfOv z$k%6SvbZXP?7|4#{Vi5x+(oYbM)6w%_!oq4wd;kbk7sP|aFu;HFvi=y7gp99(9IoY z`+p*_HW*tR6xj<#BeWz51Bw!MQ`L^q3P!s<%u9k=A>E-xDo(Q%e62BG!`|0$i=t~N zm+>0r=E$dnZGR1+E#%81*VZIJ9- z;XJjj4Zf6)8?DLegwBZutBpH5;rlw?{9EFkVB;aTy6H&=1sv1}34PHWpmc(DV8gl& z5IiVwK_vYRTMqIYX5Fv4X-lc?C1tdjXYZF^6pvwpGfZ1T^zC7*8_FCXzYc?xEC~KNg27U zyv|LW@*3#Qv{~2`TMG$QWB6TXs^EWJo%f$drs1Sy7QfI6v=3B<~uO}A4iw@z>70ShMoG_m!sJIxKEG0$W038}7AJh07>98k~DK}+X z0^fE?a6ChcxB+Z&W{DI-v2U#^OWJ9IeYd?Av8N??EG)fPYZ zBCxBVZq}P9g1z!Sj_D_gVZ+MZMzoCTJ{WGa@D)zPBxrhPqO(d`y6QVp1xQXkwXFAgt36HCo>>#4@yt;&jiA7 z;kj!2ENHv*(B~6m!>QFg&g{7M_L+8p;y0)67Mf&Qg5 z*s=9{xDAU29p>5co6jad?Q>UGi@r0^ub;=nXC}gn$GO2o6Dov@7ATTARM?insMMq- z!GkTC>S_`3U=><>dVASvDBUVPMj1^2G1}^zEa^lF2y{;EIZ%=amrp;D;@d`r5w@w_ z^nqA#_I%m1GcgVv&P00Mq{oBynH?ki%+oMmaBZmLL;@6jxg60Zk~nLKlax(|LAui~ z7Ve}QnuT4jD<(`o!S?KD+$PyF7A+hgNVYV^t{#5Nl1#XG9y<; z0~N}NL}&5f(f2zQ2MYV~=-E@%x+W$8y{*F3K2;J?n%fG_yh0Kh+ESWoN76uI)>Dxj zNj!3_?aii5;}P~VO9>eU0AtH*YmyZzWB%$B02*35wmx)*9Bm!DL@>VuWmWVP$;&DL& zBout~!j#$AZ2!-d_OOBAJ?$kVq~H@AKoujSFJx^jHBl7_Ockcq>`+6N2`hxsrPPt~ zW*5KDOm$?&T6?82Sp$h)I>__Y5|7N2Tm`ePsG<_X1mR(CHDni+9x$w}j(qp+Nr*pljnN z8;qMYkgPSc^pIUg|EPn4#*q)zQWv?sP-x!tK??=Di#Uzm)<)l7`j6dMql0=2 zbT`p+xIXt(_wPKqsCtq;7PUwB4>mjssxrprIw-5lc6skj9dsWFTzx67i>9hCIP?0? z_Wxw#ua+IWMOhd1hedqWh}8Yb#KSh->y1PT>TJHvFis(& zlHJSt3c84>oic}Z*qw+Ds#c#gU=Y!hBO>Z9iX`NcVT>#fk&uk5Ve+n85;Aad3Vp*3 z>hFc*x9Y05nuTm7qr76-unRZH=<`QEN}GTt^4I^M80w@s%m0&2*2{SkY7ScHs679I zk$b;#lUyZ9@oVOB^jpV^j3V?-y58qQb`fc191uX6=UQ!iS#wdG*Zi|q$LFEBdticR zr7$`cA9n4pAYSAX-{qt9`Ly@DTo9_g2KEi=AqNgSM@(16Grq8 z{lm)&cu_eYxGp2`qb{;BY5cYTT0Edw*}X%Mg8E76CHA~R$Zz)r=>~={nseyj%K|np z@~9Pkzruwdje8Vv(mx5Hbx}=w4U+|tOY{fPu=PTyRi)YFg^0+ku})GGTW(lIw%WJ+_o)$un1@M<+cFy+yU?UW@czcdNQwUKiORB2N4JgJ9cO^ns@}Loi zC#3tgaL6$%c0-*BFOu#)A~>&)58XX3{;n%i08N{{I(OYo5RJUDPUJD?L1MTQN1W?% zD5YGYFUgJ<8B(4le3{}y?Mn|X`BEZ)zFv;FIC5MNZ8YV)S?kP$ZkT>2J?X-su;HiI z@qWBWc(c*sa!Gy)!adKn8+s~$>YZC|$)^hw5Z~4O!UvMjSa!kcmyyEIGMj3loc#sPCOP&BV6vH&+*LU}AQ} z!#XlJ7Ium8iX5oN!mRQUZO``>?4JCiZ6+p63YK~FZ96fFiTSu!`Q=wIu@7s81XfKl zv7wALbz6umYzf_R{@sxltf5CsqGBZzbF;8I)*sBo@*`E*4R@H>wec|2H^jtD<>nL@ zDYLNObLY1%>M>ZW;mgDdS9X-_zrn=J^YmK9|KeV#=eFEL**PqXR^+8b2|2ydEU%4; z#q&5iw~DbaCH=OCJy)+`S%Z$RBj}g0sx`Pcev1p3!PIKGjdL=wYt33UYcC{Xb=b;J z1B(x1Pwls+tUX$cX|jWRuG{o&towaV-vj$wSZ<<4*rRy*9~h4E-}9n6 zKERrEcT0!rmtimRLpYLe?qQF24k&+cnRE9ShE-F1pN69!VOclx3I-j^u@zj3zd!s4 z-0d63bEV&wtHZ^{wrx+JY5=}rtrC9+9$b@yR)h}_pnkhF=zS+bEuTV^-~uv~aXzJV zwWvdS(!I#QUJU^G3)k&O@F3SokPPP|LYa@^vo>iG@C07Tw;Iww9Xl2c9up>jrsndLZHh#=^KS8cYaJ2DV)Nb;ux6?_Ah5D%WNn--=o_A_4v0Olex!o5l z#rKiG!?|KAA%y(n!;i9xkK>USK?2+Y-La=>WFY?=6(V>0n{=~or4V;Cn`;zX+lkQi zNHpW(brKx+vrgwfN(R}34{vpvX#)Q6(c_{LTJWhe-ZWi_24p>!t3-yB4gDg zNYh1F4vh>7^jqWgdo*FVeB$U%EiDQRJxQ6Tz#Yx-i)}Vngh(JL7zv*{NT6@=nf9@O z49i{L3IrU}1e`^Gg3D$tNQ*izVsAl&!9xo()Ky3@ZHg6DjFX`3+ShR5dNMq>PFvHT zt_h90M}xpq>klfAm&EjYaBrU|zn-1YU)&9KmH~ZZsV39~b}0y*()vlIJ8t{dDyAmT zuNWTrl&|$)sF1i+0phbR%1~S$ zI(Fo#GWeP};uTVqp@g+#Zs>buNGW)?D|FRTIMbh1ns;I;U_;~bAu5@&Iy_sZ`q)!bcf<|(kyX$?8}DjM91Q=D8X<6*ngr7ok4IPl!4lFkzs3npJ<-t;BL zz>8qHrlhN2=}aDVSW#7)p3H+yC<+ z6I)ytQeOD>nA!pFBM ztJV-`z$-B4K>Gb8$O?N+*VvH+yNn|0^gmHSy3SvIaVizE{cqaYBI+MZdOP*r8HFc- zg4U^2SkrPMFUNFp@6!U~1+a+pIIFfCRGj*I3nnew@i) z<&zAs+=#>EFEgOf?PhteJp)$R#VNj&Vt`SVNOUE$8n$X&ekDS#f%sKhJU>5S0O4d( zcXI#(D1}~9I%*8aR9jxu++Ga<)o%(jQ>(#$?CdKULJhboER^5OU{JuYb!9!xg8|;A z&v3Dl40yTYy630bYG|`u*G4~H4ZG6PGmn_pK%Frm`4pQ07X_vbKZG+thNbfuBQT)R z>aTI^RW&G=PnNM_tN);YH(M-MQ_X;IlaRHNftYn)V2COQyw;qI)&83UmUkS_mgf&ZgWGhJ?Y==U91T#^P#J>7YOxP2x`seH zxjI)smjh~U=I*yfI25>K!*656{YOf>VQ$nj|3RQX`TK3M_7E%*uot`4KLk79IS7&2YV8)+5<6k`EkDc*%%=n{c{G%Pe`g#BIZ-Q?FzjpY}bf}%_5HQo> z_DlyfbApZ;zx9m2XvXi7s=E;@A*Fv&Z zM3#(Op%`V!9*Udt%$>P)|9W2c>-qihT>pH|^}0USob&yh_jR2)r!|nPHIOSiXbD;2 za76heeh~g!y%S$4m3?Lq{#%u4o4)8!JP7}yk>}Az#45;nl?eLdmz$)T77a=VMczv49B=2WHR=~=P9%tr>ezqy{ z#$nOd1Th9UdLOM$QfI)uG&btTy$r}PC%#+e#DK&n8i_jozx?y_XeAEI_=JGYH{izr z0}Yym57#UC;J|?Erct^3wlUzj z?Sr>6FBs4!<8Y~_k^vHq!fqlJ%qvW3y$Zp!SOP&pl&6*zp({>ipVn&^>K>MNzUF zY>(=9`$=>IPsW+_y-dwGc6o~fQ@0iM<)$(9??{x+Tn1yKZV+$Y=pw_^E>DN!E=--& zDV*Rn?uLo#>j`yC{oDVKNHWwWB|WcnL*f@2b(uQ(sfD<1vBV$XTUwzN^11~|8%KRV zkz3%PzWwO>JuOf+YZjn%w*~rZt&zq=3#>PvxO9j77Sy+1bGfnME!@3r-z47G3XkE2 zm1|-veDsf~`nInXHiv6+3kbBrdL`RKd&k$EmV7M?D7bhHgt4NG3M6Kx~I z>fUh+nK$nsq3F|#ZQ<{LKkxFMR`>UCa=&(tuF89$1oWoQ4s<}t!?PAg(>j!g+)Xdch?vc{VS2TQB@c$!{ z12wnC4<73R3o9C9xh`7+O@f zgyOzGbkNNKw~Zru{Pj6dA{aXrVUr8ZKm5}SdGY{7VgubbKMFm4cSnOyK>geG6#-ET+w&#&w)eLJPe|H zF4Xjo8}UGV?9ujE={+=JsLxzJ}s^pa`Ih0V;dAc=W{AX5Uqp42h@7!TvIROiO` z2~cykL+>j+5j?LJ@$c_U0@s0&PAPl}1mx(N3VcWbyKUT${O#kR=A`kHONSERn}=TT zx?PD-`VOyBrG*5#>NKF`= z>5)vLWjRRmEh!ZbeiM@bjUzNZCv`HF1xg4Dlrt<)p8X3b+`oZB`4>=nSfJp31I3&L z%J}b~)cyv_rvC#Jz287N_{jZ?#)h&QRJLIfR{+o+0EG}wUTzIj#IL+e1|2HnG zSzLT&aq*1BMHGvRkMmprm4(Hv->@i|$AY}Th1zdi#Iv{%`;80kf8oNH#l`S{aPbR^ zoAX#KaP({K@CmReX&9kpoMJvEW`(-ZO=a6cvnHLriMTY4Cc|CnRXiHSm|0 ztk~Ll4YKk}W)|Iw0#clSiMDqnNc`Ax&QOH{b%yEwcks?5Ujb1>LVkE3e(+Tmbid-nsyVTKo zkUa!?BI9;VtO$kX&;gBETo_nsS;}x|U4@r{!-4|4!WaC%BH{gJ<@&&ObqHLhO}os| zR9x|SQl~X{l8gU5vNPn* z7qyd!cD2kz53}LW(>+aBbwA@!l6F{4+8aC)HOX{eSE7KTc~E|GIsu*967915IuS_@ zj6XUqhC{1j`0<|Xc(kS}aaYO^9-Z?<>GW0wGAeLwY!#>?pfca>dp6|~kr7cfnQJ2s z`7LL7yp_Ns^OrI&%6JsephL4o!Gr=jAlsmv-bFwXMZ@bU^+YsZ;uQIK#KGvRoAAhH zk#U*2oB}GK_J{Qg6Hs!0Cl)_PK%1`dY{Z6t`F}-2_S(qvSa~fGNjrJDQv^wlttJB}q5_ zv3ZXiB9B&N_6WGp1}=M?_~s3tEXN= zoFSmoH}2zpbP|#ExgGww1tg@IC3Su*R1w8wn;zStr-1l~iihI}Ok!5_#&C!b(J>Ow zmWw}#=o2H}cc!0&9!Y%J?9!r$PFEQPRvc15$Il%5`eq9OIV4Ys%_m#)nhI(cD3L4k0 zt~N7QUC1UNX>a+9YGo9fS`x{*T?K6!aqafWP(jJXfm*r(s_4Nh{nMMBfBFBBjiGF! z*KTQ5R7&=p#$8eUna$QR5wck23{TjA9LlNoSZkDQ&Ny`N;^C=~Y#i#M_upPL%7j|?u~R+?k2GHK=JOrLqr142 z>LwRF8d6((9RCcD(w)3+f8|p^hCdujV)ik2lnE*>#xYg_VXw&P_3a8s?GxRg|AhkT zU9p4PUy6W4TTZ4$GPkrFrqpS>7X;)94x<(;iRjgMk7JX~uN`78qH~-PO+?0FHS9WH zi70tIp>ywE5;Bz;e(jx3LThQfhnLTh7P9M((u1?PsNV5krwKKG(vB#t2SUYz$6<7dMd*mP#wFhv zHl$qczjIcO9g+JfwZ`QfXic*B(*#Q{bSP>u^}GNN@_4#eu}p0dT3+9Jx+RAViM-Xb zDZ;}YqeUoI>h=-aS~iqi8Y@+Lm>r!a zyIwF^#L0XD^{EmrJmf+GBdNMKeR)vPK>VEY$wla9auwRt$A&&y?(SWEo*hZKt;khf z%ZU_}_6PR-!G)e*ZG0Ddi)W!mgQM%01aU4#8!VFKCu7*rgKTNhWZ*>Gl2V8Irnyj0 zhl8Ek%U}LqnUM3#ryjhQ;6@MF-tDU&;z1|DYZ^E0ulbbZj%Vwj_KvU*=f{F z$IKx*x`3|*`y)Qx3eD{#}Xs{;JupLf#9Si(_YmU?4Z=Ad+(>4v3J(dH4VCSEPV`{YbMjN?GbD?KE-s*cbScd;RGGK zJ*rWAPre14uWgE4`=@8hunHa9MpofAJVVEB$!XTPX3??n;}ibFy>#p#ZkLCa_~I7q zuO|@s(^W%*)OXCX7g-*CE7*bsFS2vsrX*tAR^>Ukej4TxeYVIs-xq5Y>j_Ynjnn1n zbboGr)K&MeUiV%^wb2!eh;x5%J{_x@xZ>;Wd>gCV)fyi9B?U_>dAD=3L=09dNpSlj z9*Pz6y(0Iow!wT8cDYC|%f*~ISMOQjoK40~t^8_Mip#`8rEUa738!NQ38UYhB;3O6 zE0jvI5|c3ke^G(X>4%v2r(=nQq(ZD|EW?3Pn2*tfbWbi4&ckl)6A3z_n}eNp+?~Ja z%7cX%HU~TX+0I>z)!%7-ernYg0 zH1HX=GBY)E$g%{}V5a%^o1X&nIKt*!Q+(QIUxQQPqdFe8qTBj8Eqmc%cAG z?7tt{RYCv@wjjqt4~bxDVyV_pBo7l38fnSZIG|>1;xBE*L*R=UcG-Rf$chptKK+vb zazZ1Iy_b;4a4B#{#Ija-IG<}5UEYHOpLnUD(yw@ER2w`q$4!8eVtbF%VnnFe&UJ=c zi3C0S8XXkLB8&co-?%zFl;s0)$)dlT*hNU_-o)mY+5egm!+OoG>OW{5@^& z8|~MU!-GhquEC$`3h+MQ;DN7(!UWJEewvfEB7!uWQ*?17{q^QYezOn8%K5^h`4c6+r7;wzzOH0cJs6Rw9H55#Q@)YW9+#ag}<2(;`KXIVgJ~ z_P!$cgs!D$F^j2p^u8Y7N&qgevf@o?M9`YrqTu8~g4s5!BO+TA!8$yXzD!Vw48e!@ zHdM(lt52`a)cZ;R#Y-3SeO?e@OA*1sG@1l!6B(U3_KL7-N<71Ly%H3-kK|8d1mGKw ze=WFz2vLs(j0Ss&@W!oA`Rrp7c(jfj4hvQU&fdeqBIZg9sl=I_*CePBq5pz=Lk=$q zcImDi8*LXRfncG%*sBMM(AucIQ--YcGnL(;CdTD-W>slg=f2!k`j1qI%vAg@^|Z>o zlK@=3qv52PB!nA$7~W7P2^xu*!kouiDE7Yp!!%Y3R@JmPo4HBDDt?cc%X_4NewBLp zb(|C^KAGfx*(n9qxsSNMt&@hh#T#k8*3vL$v|fpnBuxgFcb+$#N~FPAm#;ujWF5RO zLLtWX>mX*O{HcQ6bueq=%3nRZ4*WiLI0m|Xtd-Rs;ZFx`IW#Eb*^5!6%SVo9y+kGS?Q78PnqZKV}!vto44-R!%)y^CdD`0 z4uRK-S)-a6!9dG6sy$N`1bB_46P{y%z;i#ap}RE!M z?ag3l@pko+d>jO9RJt&CS0EVR_iZq%4}-+x7SC$#go0iB`w*k+Az<=+li$ktU^0A; zYcMOz4FcY%JNo)BiV7DNwRh#||x=AcznC^&sOop>W41U7p}luw5RgIt-yGyXe4@P=P}$(#CLekKCU z_SffR@`KwigR_!@AWchdR;nft_FCuovbj@%BeJ(#l#dEXQ!1YSE(P8^`a$sCLIHN6 z&cu_|k-&T9?yF-5BVnH#yXU=BD)dZ+9l5GWg=@QQODvlyAT$&8!Nr3D0d40!2$B>y zf!DR?cohjc*N^!V|DeLmzT}BV4pcJyNgCd=o0AHQ2vVd?cPLPQjiS@Fivk*i9h4_i zkq{C(6gMD91Bt^PAAY1zfw)btNKK0hv*Q`JI^I$sfB8lab20^bg$e{j36zCQrW*!S z1>33cy{-6OksB4}*3_Jx5~f0T>b-C43MtTDb!`2;BW#qP3r3n7BdUI(zzx*C=Rh0< zd@{<->l&)SS*&u7=u-viPj36Ut5gB`59i%VC6#arbv(2o z(Gx>puy@w8S9Tb9_-5ypbPfZD{{yKIb><1i;`Xqfo1B4jVx-6jB=B;8O`c1FflMxi>z~hSoOx9SlTa1Ai{FX8+&4D#SKLn z6W_kE$3oX*mH6`aO2tdHxAw%+$Gy!v9TVQ#JCuXLodYeNMA<-++E-$`epP7Ex-68g-eQ|%J@RRpf!|fkisTd!e zd(B>9hk}z@+;#i-AByr9UtPCv_-$68xbB9%OR0ipbHh!0jmfz#8}hH)rycb#o%Z9p zeff+BcM7iFu-AE(;Ud_6(>{xB)-AL9H|ztO+ncLaPG)A&s+aR-Zkv)J*WolUiM$?X zss|@}ViPw^9j?R;6Ne>k7|l=*O2o8Cv_z&^u>F+eA_^0EJv@~UOd?N!r*c{)@*8Y( z8Ra&YvA!vf!&=CK;|dz1%a&IjG!FQ>8w$-sDsbk>!bbJ?R+`0 z8yOBT+|gIe@{_X93f{diVf|-&28Npb6YZzjO(~g@)FYObnU|OoUyz?unU|lN31sFM zrKA>3@n)KQnMc{&#c}nI3S~e0DQ#1Nrt~oT2D?tl*peaV%wZrhvBe{Js~tpwDaZ&a zetnkjHpa)3b$O-PembS7#@*ZO$6LY7$U6DBfP!!jyGBL4p=O-X6fnyO$eR32K*@l$ z72@(^zu443F87@;TL5youCvVRM`lv?htpp_fVdo#&KVdcYX~aIgEYPCjGdy9rO3#@ skfj77ltF|Fh)|szFX$wy17!Aa3u|WBLz$)p%pSZ1xd_4MlJ4m2dy7%i8nC zeu0$!T@|*s_JrhRqf)Hz`;(=v9;<~g1JNA<6Q4B`1m5CwFuFPh5C~{+z@+OT5@*i< z!Jh^PLNwUom5mOBXk!p4ZgL<*Gl1-8P-u1lQP^mZyUv_xb|6GQ^>0v5o^jQF`bPPn zuv1s@%(+&Ua%=V!dd&8{q4A!TegK?v!8c)&&-zQYxZl^?rbkycg?>3_WyVL zTW(yl4_i1({s`lB`*4H(GqO0Y+xxE0tmxLeZhzsHR_m1~!v|qO`K42htW%+gcQ=AUm`=4F6e_Z+V&_&i8_L;0-G(A*q*q0YB{~R&t zhJDRff!wM!H|&?GzK#uge8XN63~s91@80b>(NpH8{pH(lBf0%=+Fwh#;e5K`ru{wJ zaK5mqH|_21BYE?WPBv!Is+aL*Zkv)J*WolUiMAepE`cRFnk8CrT0u(1gc2)Eo={?i z$rDPf^)Lmv5-UucP-2D2lbC4h;i-0D60HF|)e@U%E!gKW%51*I{(_n9K<%~}H<%_L z;qG7yuzo%b$PD6H;K=OF2ujhN&Jy2uh}nw#JiPzMv&yM;2QJw&)HT1>T4QTJrDRG{ zk62n}USdvsL4HnUUVd&SkeOeUl3Fyyn{l!;ud?~1BVpkNCPDU7+NK0e>0$N_cAb*3 zB}2}cL&2BzdQaWYlLGejK_M%#h3=BOSx#>mm UIr+)OQ!;LOGk7yk4iQ=o0B*VZHvj+t diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 8525575..56a2c04 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -34,7 +34,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): "number_of_subprocesses": num_procs, # Additional useful keyword arguments "csv_results_file_name": str( - Path(__file__).resolve().parent / "S3_70_eff_sweep.csv" + Path(__file__).resolve().parent / "ro_sweep_USED_IN_PT.csv" ), # Store CSV next to this script "h5_parent_group_name": None, # Useful for loop tool "update_sweep_params_before_init": False, @@ -78,7 +78,7 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): } var_lims = { - "RR_lb": 0.88, + "RR_lb": 0.89, "RR_ub": 0.925, "Qin_lb": 522 / 3600, # m3/s "Qin_ub": 634 / 3600, # m3/s diff --git a/src/wrd/surrogate_models/energy_surrogate.py b/src/wrd/surrogate_models/energy_surrogate.py index 70226d5..5c6d839 100644 --- a/src/wrd/surrogate_models/energy_surrogate.py +++ b/src/wrd/surrogate_models/energy_surrogate.py @@ -36,7 +36,7 @@ current_script_path = os.path.abspath(__file__) # Get the directory containing the current script current_directory = os.path.dirname(current_script_path) -filename = "S1_S2_RR_not_equal.csv" +filename = "ro_sweep_USED_IN_PT.csv" data_path = os.path.join(current_directory, filename) Data = pd.read_csv(data_path) # Create PySMO Surrogate Model diff --git a/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json b/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json index 017b206..a38edaf 100644 --- a/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json +++ b/src/wrd/surrogate_models/ro_SEC_poly_fit_order_2.json @@ -1 +1 @@ -{"model_encoding": {"Specific Energy (kWh/m3)": {"attr": {"regression_data_columns": ["Recovery", "Feed Flow m3/hr"], "multinomials": 0, "additional_term_expressions": [], "optimal_weights_array": [[-0.15603878958558656], [0.2929989299515081], [0.00045276687479930966]], "final_polynomial_order": 1, "errors": {"MAE": 0.0011110755998340644, "MSE": 1.6404199777067706e-06, "R2": 0.9953990964540611, "Adjusted R2": 0.995031024170386}, "extra_terms_feature_vector": ["IndexedParam[Recovery]", "IndexedParam[Feed Flow m3/hr]"]}, "map": {"regression_data_columns": "list", "multinomials": "str", "additional_term_expressions": "list", "optimal_weights_array": "numpy", "final_polynomial_order": "str", "errors": "str", "extra_terms_feature_vector": "other"}}}, "input_labels": ["Recovery", "Feed Flow m3/hr"], "output_labels": ["Specific Energy (kWh/m3)"], "input_bounds": {"Recovery": [0.88, 0.925], "Feed Flow m3/hr": [522.0, 633.5999999999999]}, "surrogate_type": "poly"} \ No newline at end of file +{"model_encoding": {"Specific Energy (kWh/m3)": {"attr": {"regression_data_columns": ["Recovery", "Feed Flow m3/hr"], "multinomials": 0, "additional_term_expressions": [], "optimal_weights_array": [[1.080618912479761], [-2.086603969763891], [0.0001003505970372659], [1.2303167646070627], [3.3152576815742574e-07]], "final_polynomial_order": 2, "errors": {"MAE": 0.0009197560005649659, "MSE": 1.2710884382965812e-06, "R2": 0.9964607773407249, "Adjusted R2": 0.9958945017152409}, "extra_terms_feature_vector": ["IndexedParam[Recovery]", "IndexedParam[Feed Flow m3/hr]"]}, "map": {"regression_data_columns": "list", "multinomials": "str", "additional_term_expressions": "list", "optimal_weights_array": "numpy", "final_polynomial_order": "str", "errors": "str", "extra_terms_feature_vector": "other"}}}, "input_labels": ["Recovery", "Feed Flow m3/hr"], "output_labels": ["Specific Energy (kWh/m3)"], "input_bounds": {"Recovery": [0.89, 0.925], "Feed Flow m3/hr": [522.0, 633.5999999999999]}, "surrogate_type": "poly"} \ No newline at end of file diff --git a/src/wrd/surrogate_models/ro_sweep_USED_IN_PT.csv b/src/wrd/surrogate_models/ro_sweep_USED_IN_PT.csv new file mode 100644 index 0000000..4e07540 --- /dev/null +++ b/src/wrd/surrogate_models/ro_sweep_USED_IN_PT.csv @@ -0,0 +1,37 @@ +Recovery,Feed Flow,Stage1 RR,Stage2 RR,Stage3 RR,Stage1 Qin (m3/s),Stage2 Qin (m3/s),Stage3 Qin (m3/s),Stage1 Brine (m3/s),Stage2 Brine (m3/s),Stage3 Brine (m3/s),Stage1 Pin (Pa),Stage2 Pin (Pa),Stage3 Pin (Pa),Stage1 Pout (Pa),Stage2 Pout (Pa),Stage3 Pout (Pa),Total Power (W),Stage1 Power (W),Stage2 Power (W),Stage3 Power (W),Stage1 First Elem. Prod. (m3/s),Stage2 First Elem. Prod. (m3/s),Stage3 First Elem. Prod. (m3/s),Stage1 Perm. Conc. (kg/m3),Stage2 Perm. Conc. (kg/m3),Stage3 Perm. Conc. (kg/m3),Stage1 Pump Speed (-),Stage2 Pump Speed (-) +8.90E-01,1.45E-01,5.54E-01,5.87E-01,4.03E-01,1.45E-01,6.47E-02,2.67E-02,6.47E-02,2.67E-02,1.60E-02,2.44E+05,7.54E+05,6.74E+05,8.28E+05,1.00E+06,7.63E+05,1.58E+05,1.33E+05,2.16E+04,3.41E+03,1.74E-04,1.99E-04,1.26E-04,1.41E-02,1.82E-02,1.67E-01,8.47E-01,1.00E+00 +8.90E-01,1.51E-01,5.57E-01,5.87E-01,3.98E-01,1.51E-01,6.69E-02,2.76E-02,6.69E-02,2.76E-02,1.66E-02,2.44E+05,7.84E+05,6.99E+05,8.58E+05,1.03E+06,7.72E+05,1.70E+05,1.45E+05,2.19E+04,2.91E+03,1.82E-04,2.05E-04,1.28E-04,1.35E-02,1.78E-02,1.64E-01,8.70E-01,1.00E+00 +8.90E-01,1.57E-01,5.61E-01,5.87E-01,3.93E-01,1.57E-01,6.91E-02,2.86E-02,6.91E-02,2.86E-02,1.73E-02,2.44E+05,8.14E+05,7.24E+05,8.88E+05,1.05E+06,7.81E+05,1.82E+05,1.58E+05,2.21E+04,2.34E+03,1.90E-04,2.11E-04,1.30E-04,1.30E-02,1.74E-02,1.61E-01,8.94E-01,1.00E+00 +8.90E-01,1.64E-01,5.64E-01,5.87E-01,3.89E-01,1.64E-01,7.13E-02,2.95E-02,7.13E-02,2.95E-02,1.80E-02,2.44E+05,8.44E+05,7.48E+05,9.18E+05,1.08E+06,7.89E+05,1.95E+05,1.71E+05,2.23E+04,1.73E+03,1.98E-04,2.17E-04,1.32E-04,1.25E-02,1.71E-02,1.59E-01,9.17E-01,1.00E+00 +8.90E-01,1.70E-01,5.68E-01,5.87E-01,3.84E-01,1.70E-01,7.34E-02,3.04E-02,7.34E-02,3.04E-02,1.87E-02,2.44E+05,8.74E+05,7.73E+05,9.48E+05,1.10E+06,7.97E+05,2.09E+05,1.85E+05,2.26E+04,1.06E+03,2.06E-04,2.23E-04,1.34E-04,1.21E-02,1.67E-02,1.57E-01,9.40E-01,1.00E+00 +8.90E-01,1.76E-01,5.71E-01,5.87E-01,3.80E-01,1.76E-01,7.56E-02,3.12E-02,7.56E-02,3.12E-02,1.94E-02,2.44E+05,9.04E+05,7.97E+05,9.78E+05,1.13E+06,8.05E+05,2.23E+05,2.00E+05,2.28E+04,3.54E+02,2.14E-04,2.29E-04,1.36E-04,1.17E-02,1.64E-02,1.55E-01,9.63E-01,1.00E+00 +8.97E-01,1.45E-01,5.56E-01,5.91E-01,4.32E-01,1.45E-01,6.44E-02,2.63E-02,6.44E-02,2.63E-02,1.49E-02,2.44E+05,7.57E+05,6.77E+05,8.30E+05,1.01E+06,7.96E+05,1.60E+05,1.34E+05,2.15E+04,4.47E+03,1.74E-04,1.99E-04,1.34E-04,1.41E-02,1.84E-02,1.65E-01,8.48E-01,1.00E+00 +8.97E-01,1.51E-01,5.60E-01,5.91E-01,4.28E-01,1.51E-01,6.66E-02,2.72E-02,6.66E-02,2.72E-02,1.56E-02,2.44E+05,7.87E+05,7.02E+05,8.60E+05,1.03E+06,8.06E+05,1.72E+05,1.46E+05,2.18E+04,4.04E+03,1.82E-04,2.06E-04,1.37E-04,1.35E-02,1.80E-02,1.62E-01,8.72E-01,1.00E+00 +8.97E-01,1.57E-01,5.63E-01,5.91E-01,4.23E-01,1.57E-01,6.88E-02,2.81E-02,6.88E-02,2.81E-02,1.62E-02,2.44E+05,8.16E+05,7.27E+05,8.90E+05,1.06E+06,8.16E+05,1.84E+05,1.59E+05,2.21E+04,3.56E+03,1.90E-04,2.12E-04,1.39E-04,1.30E-02,1.76E-02,1.60E-01,8.95E-01,1.00E+00 +8.97E-01,1.64E-01,5.67E-01,5.91E-01,4.19E-01,1.64E-01,7.09E-02,2.90E-02,7.09E-02,2.90E-02,1.69E-02,2.44E+05,8.47E+05,7.52E+05,9.20E+05,1.08E+06,8.25E+05,1.97E+05,1.72E+05,2.23E+04,3.02E+03,1.98E-04,2.18E-04,1.41E-04,1.25E-02,1.72E-02,1.57E-01,9.19E-01,1.00E+00 +8.97E-01,1.70E-01,5.70E-01,5.91E-01,4.15E-01,1.70E-01,7.31E-02,2.99E-02,7.31E-02,2.99E-02,1.75E-02,2.44E+05,8.77E+05,7.76E+05,9.51E+05,1.11E+06,8.34E+05,2.11E+05,1.86E+05,2.25E+04,2.44E+03,2.07E-04,2.24E-04,1.43E-04,1.21E-02,1.69E-02,1.55E-01,9.42E-01,1.00E+00 +8.97E-01,1.76E-01,5.73E-01,5.91E-01,4.11E-01,1.76E-01,7.52E-02,3.08E-02,7.52E-02,3.08E-02,1.81E-02,2.44E+05,9.07E+05,8.01E+05,9.81E+05,1.13E+06,8.42E+05,2.25E+05,2.01E+05,2.27E+04,1.81E+03,2.15E-04,2.30E-04,1.46E-04,1.16E-02,1.66E-02,1.53E-01,9.65E-01,1.00E+00 +9.04E-01,1.45E-01,5.58E-01,5.96E-01,4.63E-01,1.45E-01,6.41E-02,2.59E-02,6.41E-02,2.59E-02,1.39E-02,2.44E+05,7.59E+05,6.80E+05,8.33E+05,1.01E+06,8.30E+05,1.61E+05,1.34E+05,2.15E+04,5.54E+03,1.75E-04,2.00E-04,1.43E-04,1.41E-02,1.85E-02,1.65E-01,8.50E-01,1.00E+00 +9.04E-01,1.51E-01,5.62E-01,5.96E-01,4.58E-01,1.51E-01,6.63E-02,2.68E-02,6.63E-02,2.68E-02,1.45E-02,2.44E+05,7.89E+05,7.05E+05,8.63E+05,1.04E+06,8.41E+05,1.73E+05,1.46E+05,2.18E+04,5.18E+03,1.83E-04,2.06E-04,1.46E-04,1.35E-02,1.81E-02,1.62E-01,8.73E-01,1.00E+00 +9.04E-01,1.57E-01,5.65E-01,5.95E-01,4.54E-01,1.57E-01,6.84E-02,2.77E-02,6.84E-02,2.77E-02,1.51E-02,2.44E+05,8.19E+05,7.31E+05,8.93E+05,1.06E+06,8.51E+05,1.86E+05,1.59E+05,2.20E+04,4.78E+03,1.91E-04,2.13E-04,1.48E-04,1.30E-02,1.77E-02,1.59E-01,8.97E-01,1.00E+00 +9.04E-01,1.64E-01,5.69E-01,5.95E-01,4.50E-01,1.64E-01,7.06E-02,2.86E-02,7.06E-02,2.86E-02,1.57E-02,2.44E+05,8.49E+05,7.55E+05,9.23E+05,1.09E+06,8.61E+05,1.99E+05,1.73E+05,2.23E+04,4.32E+03,1.99E-04,2.19E-04,1.51E-04,1.25E-02,1.74E-02,1.57E-01,9.20E-01,1.00E+00 +9.04E-01,1.70E-01,5.72E-01,5.95E-01,4.46E-01,1.70E-01,7.27E-02,2.94E-02,7.27E-02,2.94E-02,1.63E-02,2.44E+05,8.80E+05,7.80E+05,9.53E+05,1.11E+06,8.71E+05,2.13E+05,1.87E+05,2.25E+04,3.82E+03,2.07E-04,2.25E-04,1.53E-04,1.21E-02,1.70E-02,1.55E-01,9.43E-01,1.00E+00 +9.04E-01,1.76E-01,5.75E-01,5.95E-01,4.42E-01,1.76E-01,7.48E-02,3.03E-02,7.48E-02,3.03E-02,1.69E-02,2.44E+05,9.10E+05,8.05E+05,9.84E+05,1.13E+06,8.80E+05,2.27E+05,2.02E+05,2.27E+04,3.28E+03,2.16E-04,2.31E-04,1.56E-04,1.16E-02,1.67E-02,1.52E-01,9.66E-01,1.00E+00 +9.11E-01,1.45E-01,5.60E-01,6.00E-01,4.94E-01,1.45E-01,6.37E-02,2.55E-02,6.37E-02,2.55E-02,1.29E-02,2.44E+05,7.62E+05,6.83E+05,8.36E+05,1.01E+06,8.65E+05,1.63E+05,1.35E+05,2.15E+04,6.62E+03,1.76E-04,2.01E-04,1.52E-04,1.40E-02,1.87E-02,1.66E-01,8.51E-01,1.00E+00 +9.11E-01,1.51E-01,5.64E-01,6.00E-01,4.90E-01,1.51E-01,6.59E-02,2.64E-02,6.59E-02,2.64E-02,1.35E-02,2.44E+05,7.92E+05,7.09E+05,8.66E+05,1.04E+06,8.77E+05,1.75E+05,1.47E+05,2.17E+04,6.34E+03,1.84E-04,2.07E-04,1.55E-04,1.35E-02,1.83E-02,1.63E-01,8.75E-01,1.00E+00 +9.11E-01,1.57E-01,5.68E-01,6.00E-01,4.86E-01,1.57E-01,6.81E-02,2.72E-02,6.81E-02,2.72E-02,1.40E-02,2.44E+05,8.22E+05,7.34E+05,8.96E+05,1.06E+06,8.88E+05,1.88E+05,1.60E+05,2.20E+04,6.01E+03,1.92E-04,2.13E-04,1.58E-04,1.30E-02,1.79E-02,1.60E-01,8.99E-01,1.00E+00 +9.11E-01,1.64E-01,5.71E-01,6.00E-01,4.82E-01,1.64E-01,7.02E-02,2.81E-02,7.02E-02,2.81E-02,1.46E-02,2.44E+05,8.52E+05,7.59E+05,9.26E+05,1.09E+06,8.99E+05,2.01E+05,1.73E+05,2.22E+04,5.63E+03,2.00E-04,2.20E-04,1.61E-04,1.25E-02,1.75E-02,1.58E-01,9.22E-01,1.00E+00 +9.11E-01,1.70E-01,5.74E-01,6.00E-01,4.78E-01,1.70E-01,7.24E-02,2.89E-02,7.24E-02,2.89E-02,1.51E-02,2.44E+05,8.83E+05,7.84E+05,9.56E+05,1.11E+06,9.10E+05,2.15E+05,1.88E+05,2.25E+04,5.21E+03,2.08E-04,2.26E-04,1.63E-04,1.20E-02,1.72E-02,1.55E-01,9.45E-01,1.00E+00 +9.11E-01,1.76E-01,5.77E-01,6.00E-01,4.74E-01,1.76E-01,7.45E-02,2.98E-02,7.45E-02,2.98E-02,1.57E-02,2.44E+05,9.13E+05,8.09E+05,9.87E+05,1.14E+06,9.20E+05,2.30E+05,2.02E+05,2.27E+04,4.75E+03,2.16E-04,2.32E-04,1.66E-04,1.16E-02,1.69E-02,1.53E-01,9.68E-01,1.00E+00 +9.18E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.18E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.18E-01,1.57E-01,5.70E-01,6.05E-01,5.18E-01,1.57E-01,6.77E-02,2.68E-02,6.77E-02,2.68E-02,1.29E-02,2.44E+05,8.25E+05,7.38E+05,8.99E+05,1.07E+06,9.28E+05,1.90E+05,1.61E+05,2.19E+04,7.26E+03,1.93E-04,2.14E-04,1.68E-04,1.29E-02,1.81E-02,1.62E-01,9.00E-01,1.00E+00 +9.18E-01,1.64E-01,5.73E-01,6.05E-01,5.14E-01,1.64E-01,6.99E-02,2.76E-02,6.99E-02,2.76E-02,1.34E-02,2.44E+05,8.55E+05,7.63E+05,9.29E+05,1.09E+06,9.40E+05,2.03E+05,1.74E+05,2.22E+04,6.96E+03,2.01E-04,2.20E-04,1.71E-04,1.25E-02,1.77E-02,1.59E-01,9.23E-01,1.00E+00 +9.18E-01,1.70E-01,5.76E-01,6.05E-01,5.10E-01,1.70E-01,7.20E-02,2.84E-02,7.20E-02,2.84E-02,1.39E-02,2.44E+05,8.86E+05,7.88E+05,9.59E+05,1.12E+06,9.51E+05,2.18E+05,1.88E+05,2.24E+04,6.62E+03,2.09E-04,2.27E-04,1.74E-04,1.20E-02,1.73E-02,1.57E-01,9.47E-01,1.00E+00 +9.18E-01,1.76E-01,5.79E-01,6.05E-01,5.07E-01,1.76E-01,7.41E-02,2.93E-02,7.41E-02,2.93E-02,1.44E-02,2.44E+05,9.16E+05,8.13E+05,9.90E+05,1.14E+06,9.62E+05,2.32E+05,2.03E+05,2.26E+04,6.24E+03,2.17E-04,2.33E-04,1.77E-04,1.16E-02,1.70E-02,1.54E-01,9.69E-01,1.00E+00 +9.25E-01,1.45E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.51E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.57E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.64E-01,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan +9.25E-01,1.70E-01,5.79E-01,6.10E-01,5.44E-01,1.70E-01,7.16E-02,2.79E-02,7.16E-02,2.79E-02,1.27E-02,2.44E+05,8.89E+05,7.92E+05,9.63E+05,1.12E+06,9.95E+05,2.20E+05,1.89E+05,2.24E+04,8.07E+03,2.10E-04,2.28E-04,1.85E-04,1.20E-02,1.75E-02,1.60E-01,9.48E-01,1.00E+00 +9.25E-01,1.76E-01,5.82E-01,6.10E-01,5.40E-01,1.76E-01,7.37E-02,2.87E-02,7.37E-02,2.87E-02,1.32E-02,2.44E+05,9.19E+05,8.17E+05,9.93E+05,1.15E+06,1.01E+06,2.35E+05,2.04E+05,2.26E+04,7.77E+03,2.18E-04,2.34E-04,1.88E-04,1.16E-02,1.72E-02,1.57E-01,9.71E-01,1.00E+00 From f6a21a4df8c85f10c7c8c678248755c260d140ea Mon Sep 17 00:00:00 2001 From: Jake Churchill Date: Tue, 19 May 2026 11:13:27 -0600 Subject: [PATCH 12/12] black . --- src/wrd/surrogate_models/energy_param_sweep.py | 4 +++- src/wrd/surrogate_models/param_sweep_fxs.py | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/wrd/surrogate_models/energy_param_sweep.py b/src/wrd/surrogate_models/energy_param_sweep.py index 56a2c04..4d6f3ce 100644 --- a/src/wrd/surrogate_models/energy_param_sweep.py +++ b/src/wrd/surrogate_models/energy_param_sweep.py @@ -61,7 +61,9 @@ def create_parameter_sweep_object(num_samples, num_procs, op_limits, var_lims): op_limits = { # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "Qout_min": 3 * 72 / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + "Qout_min": 3 + * 72 + / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? # "Qin_max": 635 / 3600, # Based on pump limitation }, diff --git a/src/wrd/surrogate_models/param_sweep_fxs.py b/src/wrd/surrogate_models/param_sweep_fxs.py index 6f98061..893ce8d 100644 --- a/src/wrd/surrogate_models/param_sweep_fxs.py +++ b/src/wrd/surrogate_models/param_sweep_fxs.py @@ -157,7 +157,7 @@ def build_flowsheet(op_limits=None, scenario=None): m.fs.ro_train.stage[3].pump.unit.work_mechanical[0].setlb(0) # Increase the pump efficiency so stage 2 isn't so heavily favored m.fs.ro_train.stage[3].pump.unit.efficiency_pump.fix(0.7) - #Provide a lower bound on the third stage recovery + # Provide a lower bound on the third stage recovery # m.fs.ro_train.stage[3].ro.unit.recovery_vol_phase[0,'Liq'].setlb(.5) m.fs.properties.set_default_scaling( @@ -304,8 +304,6 @@ def optimize(m, solver=None, check_termination=True): # m.fs.ro_train.eq_recovery = Constraint( # expr= m.fs.ro_train.stage[1].ro.unit.recovery_vol_phase[0, "Liq"] == m.fs.ro_train.stage[2].ro.unit.recovery_vol_phase[0, "Liq"]) - - m.fs.obj = Objective( expr=m.fs.ro_train.total_pump_power, sense=minimize ) # Dummy objective to trigger solve @@ -415,7 +413,9 @@ def _pump_unit(stage_blk): op_limits = { # What if instead of recovery bounds, I added a minimum brine flowrate to as the other limit, and then just find out what the recovery limit would be. "Stage 1": { - "Qout_min": 3 * 72 / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train + "Qout_min": 3 + * 72 + / 3600, # This limits will bound the flowrate for a given recovery. Equal to 3 m3/hr * 72 Pressure Vessels per train # "Qin_min": 520 / 3600, # So then what is bounding the recovery exactly? # "Qin_max": 635 / 3600, # Based on pump limitation },