Skip to content

Commit

Permalink
fix ED1D
Browse files Browse the repository at this point in the history
  • Loading branch information
bknueven committed Oct 3, 2023
1 parent 19a7dec commit 3650135
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
2 changes: 1 addition & 1 deletion watertap/unit_models/electrodialysis_1D.py
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,7 @@ def build(self):
self.flowsheet().time,
self.diluate.length_domain,
initialize=0.9,
bounds=(0, 1),
bounds=(0, 1 + 1e-10),
units=pyunits.dimensionless,
doc="The overall current efficiency for deionizaiton",
)
Expand Down
18 changes: 10 additions & 8 deletions watertap/unit_models/tests/test_electrodialysis_1D.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
from idaes.core.util.testing import initialization_tester
from idaes.core.solvers import get_solver
from idaes.core.util.exceptions import ConfigurationError
import idaes.logger as idaeslog

__author__ = "Xiangyu Bi"

Expand Down Expand Up @@ -710,9 +711,10 @@ def test_initialization_scaling(self, electrodialysis_1d_cell3):
iscale.set_scaling_factor(m.fs.unit.cell_length, 10)

iscale.calculate_scaling_factors(m.fs)
initialization_tester(m)
initialization_tester(m, outlvl=idaeslog.DEBUG)
badly_scaled_var_values = {
var.name: val for (var, val) in iscale.badly_scaled_var_generator(m)
var.name: val
for (var, val) in iscale.badly_scaled_var_generator(m, zero=1e-9)
}
assert not badly_scaled_var_values
# check to make sure DOF does not change
Expand Down Expand Up @@ -1809,7 +1811,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[0].fs.unit.pressure_drop.fix(40000)
iscale.calculate_scaling_factors(ed_m[0])
assert degrees_of_freedom(ed_m[0]) == 0
initialization_tester(ed_m[0])
initialization_tester(ed_m[0], outlvl=idaeslog.DEBUG)
badly_scaled_var_values = {
var.name: val for (var, val) in iscale.badly_scaled_var_generator(ed_m[0])
}
Expand All @@ -1825,7 +1827,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[1].fs.unit.friction_factor.fix(20)
iscale.calculate_scaling_factors(ed_m[1])
assert degrees_of_freedom(ed_m[1]) == 0
initialization_tester(ed_m[1])
initialization_tester(ed_m[1], outlvl=idaeslog.DEBUG)
results = solver.solve(ed_m[1])
assert_optimal_termination(results)
assert value(ed_m[1].fs.unit.N_Re) == pytest.approx(58.708, rel=1e-3)
Expand All @@ -1842,7 +1844,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[2].fs.unit.diffus_mass.fix(1.6e-9)
iscale.calculate_scaling_factors(ed_m[2])
assert degrees_of_freedom(ed_m[2]) == 0
initialization_tester(ed_m[2])
initialization_tester(ed_m[2], outlvl=idaeslog.DEBUG)
results = solver.solve(ed_m[2])
assert_optimal_termination(results)
assert value(ed_m[2].fs.unit.N_Re) == pytest.approx(58.708, rel=1e-3)
Expand All @@ -1859,7 +1861,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[3].fs.unit.diffus_mass.fix(1.6e-9)
iscale.calculate_scaling_factors(ed_m[3])
assert degrees_of_freedom(ed_m[3]) == 0
initialization_tester(ed_m[3])
initialization_tester(ed_m[3], outlvl=idaeslog.DEBUG)
results = solver.solve(ed_m[3])
assert_optimal_termination(results)
assert value(ed_m[3].fs.unit.N_Re) == pytest.approx(58.708, rel=1e-3)
Expand All @@ -1877,7 +1879,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[4].fs.unit.hydraulic_diameter.fix(1.5e-3)
iscale.calculate_scaling_factors(ed_m[4])
assert degrees_of_freedom(ed_m[4]) == 0
initialization_tester(ed_m[4])
initialization_tester(ed_m[4], outlvl=idaeslog.DEBUG)
results = solver.solve(ed_m[4])
assert_optimal_termination(results)
assert value(ed_m[4].fs.unit.N_Re) == pytest.approx(74.987, rel=1e-3)
Expand All @@ -1895,7 +1897,7 @@ def test_deltaP_various_methods(self, ed_m0, ed_m2, ed_m3, ed_m4, ed_m5, ed_m6):
ed_m[5].fs.unit.spacer_specific_area.fix(10700)
iscale.calculate_scaling_factors(ed_m[5])
assert degrees_of_freedom(ed_m[5]) == 0
initialization_tester(ed_m[5])
initialization_tester(ed_m[5], outlvl=idaeslog.DEBUG)
iscale.calculate_scaling_factors(ed_m[5])
results = solver.solve(ed_m[5])
assert_optimal_termination(results)
Expand Down

0 comments on commit 3650135

Please sign in to comment.