def test_stateblock_statistics(self, frame_stateblock): m = frame_stateblock blk = m.fs.stream[0] stats = m._test_objs.stateblock_statistics if number_variables(blk) != stats['number_variables']: raise PropertyValueError( "The number of variables were {num}, but {num_test} was " "expected ".format(num=number_variables(blk), num_test=stats['number_variables'])) if number_total_constraints(blk) != stats['number_total_constraints']: raise PropertyValueError( "The number of constraints were {num}, but {num_test} was " "expected ".format(num=number_total_constraints(blk), num_test=stats['number_total_constraints'])) if number_unused_variables(blk) != stats['number_unused_variables']: raise PropertyValueError( "The number of unused variables were {num}, but {num_test} was " "expected ".format(num=number_unused_variables(blk), num_test=stats['number_unused_variables'])) if degrees_of_freedom(blk) != stats['default_degrees_of_freedom']: raise PropertyValueError( "The number of degrees of freedom were {num}, but {num_test} was " "expected ".format( num=degrees_of_freedom(blk), num_test=stats['default_degrees_of_freedom']))
def test_build(self, btx_ftpz, btx_fctp): assert hasattr(btx_ftpz.fs.unit, "reflux_ratio") assert hasattr(btx_ftpz.fs.unit, "eq_total_cond_spec") assert hasattr(btx_ftpz.fs.unit, "inlet") assert hasattr(btx_ftpz.fs.unit.inlet, "flow_mol") assert hasattr(btx_ftpz.fs.unit.inlet, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.inlet, "temperature") assert hasattr(btx_ftpz.fs.unit.inlet, "pressure") assert hasattr(btx_ftpz.fs.unit, "reflux") assert hasattr(btx_ftpz.fs.unit.reflux, "flow_mol") assert hasattr(btx_ftpz.fs.unit.reflux, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.reflux, "temperature") assert hasattr(btx_ftpz.fs.unit.reflux, "pressure") assert hasattr(btx_ftpz.fs.unit, "distillate") assert hasattr(btx_ftpz.fs.unit.distillate, "flow_mol") assert hasattr(btx_ftpz.fs.unit.distillate, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.distillate, "temperature") assert hasattr(btx_ftpz.fs.unit.distillate, "pressure") assert number_variables(btx_ftpz.fs.unit) == 48 assert number_total_constraints(btx_ftpz.fs.unit) == 41 assert number_unused_variables(btx_ftpz) == 1 assert hasattr(btx_fctp.fs.unit, "reflux_ratio") assert hasattr(btx_fctp.fs.unit, "eq_total_cond_spec") assert hasattr(btx_fctp.fs.unit, "inlet") assert hasattr(btx_fctp.fs.unit.inlet, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.inlet, "temperature") assert hasattr(btx_fctp.fs.unit.inlet, "pressure") assert hasattr(btx_fctp.fs.unit, "reflux") assert hasattr(btx_fctp.fs.unit.reflux, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.reflux, "temperature") assert hasattr(btx_fctp.fs.unit.reflux, "pressure") assert hasattr(btx_fctp.fs.unit, "distillate") assert hasattr(btx_fctp.fs.unit.distillate, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.distillate, "temperature") assert hasattr(btx_fctp.fs.unit.distillate, "pressure") assert number_variables(btx_fctp.fs.unit) == 50 assert number_total_constraints(btx_fctp.fs.unit) == 44 assert number_unused_variables(btx_fctp) == 1
def test_build(self, btx_ftpz, btx_fctp): assert hasattr(btx_ftpz.fs.unit, "boilup_ratio") assert hasattr(btx_ftpz.fs.unit, "eq_boilup_ratio") assert hasattr(btx_ftpz.fs.unit, "inlet") assert hasattr(btx_ftpz.fs.unit.inlet, "flow_mol") assert hasattr(btx_ftpz.fs.unit.inlet, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.inlet, "temperature") assert hasattr(btx_ftpz.fs.unit.inlet, "pressure") assert hasattr(btx_ftpz.fs.unit, "bottoms") assert hasattr(btx_ftpz.fs.unit.bottoms, "flow_mol") assert hasattr(btx_ftpz.fs.unit.bottoms, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.bottoms, "temperature") assert hasattr(btx_ftpz.fs.unit.bottoms, "pressure") assert hasattr(btx_ftpz.fs.unit, "vapor_reboil") assert hasattr(btx_ftpz.fs.unit.vapor_reboil, "flow_mol") assert hasattr(btx_ftpz.fs.unit.vapor_reboil, "mole_frac_comp") assert hasattr(btx_ftpz.fs.unit.vapor_reboil, "temperature") assert hasattr(btx_ftpz.fs.unit.vapor_reboil, "pressure") assert number_variables(btx_ftpz.fs.unit) == 48 assert number_total_constraints(btx_ftpz.fs.unit) == 42 assert number_unused_variables(btx_ftpz) == 0 assert hasattr(btx_fctp.fs.unit, "boilup_ratio") assert hasattr(btx_fctp.fs.unit, "eq_boilup_ratio") assert hasattr(btx_fctp.fs.unit, "inlet") assert hasattr(btx_fctp.fs.unit.inlet, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.inlet, "temperature") assert hasattr(btx_fctp.fs.unit.inlet, "pressure") assert hasattr(btx_fctp.fs.unit, "bottoms") assert hasattr(btx_fctp.fs.unit.bottoms, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.bottoms, "temperature") assert hasattr(btx_fctp.fs.unit.bottoms, "pressure") assert hasattr(btx_fctp.fs.unit, "vapor_reboil") assert hasattr(btx_fctp.fs.unit.vapor_reboil, "flow_mol_comp") assert hasattr(btx_fctp.fs.unit.vapor_reboil, "temperature") assert hasattr(btx_fctp.fs.unit.vapor_reboil, "pressure") assert number_variables(btx_fctp.fs.unit) == 50 assert number_total_constraints(btx_fctp.fs.unit) == 45 assert number_unused_variables(btx_fctp) == 0
def test_build(self, iron_oc): assert hasattr(iron_oc.fs.unit, "gas_inlet") assert len(iron_oc.fs.unit.gas_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_inlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_inlet") assert len(iron_oc.fs.unit.solid_inlet.vars) == 3 assert isinstance(iron_oc.fs.unit.solid_inlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.temperature, Var) assert hasattr(iron_oc.fs.unit, "gas_outlet") assert len(iron_oc.fs.unit.gas_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_outlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_outlet") assert len(iron_oc.fs.unit.solid_outlet.vars) == 3 assert isinstance(iron_oc.fs.unit.solid_outlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.isothermal_gas_phase, Constraint) assert isinstance(iron_oc.fs.unit.isothermal_solid_phase, Constraint) assert number_variables(iron_oc) == 579 assert number_total_constraints(iron_oc) == 503 assert number_unused_variables(iron_oc) == 55 print(unused_variables_set(iron_oc))
def test_build(self, m): assert degrees_of_freedom(m) == 9 assert number_variables(m) == 13562 assert number_total_constraints(m) == 13552 assert number_unused_variables(m) == 0 assert_units_consistent(m) assert hasattr(m.SOFC, 'ROM_input') assert hasattr(m.SOFC, 'norm_input') assert hasattr(m.SOFC, 'F') assert hasattr(m.SOFC, 'R') assert hasattr(m.SOFC, 'norm_output') assert hasattr(m.SOFC, 'ROM_output') assert hasattr(m.SOFC, 'current_density') assert hasattr(m.SOFC, 'fuel_temperature') assert hasattr(m.SOFC, 'internal_reforming') assert hasattr(m.SOFC, 'air_temperature') assert hasattr(m.SOFC, 'air_recirculation') assert hasattr(m.SOFC, 'OTC') assert hasattr(m.SOFC, 'fuel_util') assert hasattr(m.SOFC, 'air_util') assert hasattr(m.SOFC, 'pressure') assert hasattr(m.SOFC, 'anode_outlet_temperature') assert hasattr(m.SOFC, 'cathode_outlet_temperature') assert hasattr(m.SOFC, 'stack_voltage') assert hasattr(m.SOFC, 'max_cell_temperature') assert hasattr(m.SOFC, 'deltaT_cell')
def test_build(self, valve_model): assert hasattr(valve_model.fs.valve, "inlet") assert len(valve_model.fs.valve.inlet.vars) == 3 assert hasattr(valve_model.fs.valve.inlet, "flow_mol") assert hasattr(valve_model.fs.valve.inlet, "enth_mol") assert hasattr(valve_model.fs.valve.inlet, "pressure") assert hasattr(valve_model.fs.valve, "outlet") assert len(valve_model.fs.valve.outlet.vars) == 3 assert hasattr(valve_model.fs.valve.outlet, "flow_mol") assert hasattr(valve_model.fs.valve.outlet, "enth_mol") assert hasattr(valve_model.fs.valve.outlet, "pressure") assert hasattr(valve_model.fs.valve, "pressure_flow_equation") assert hasattr(valve_model.fs.valve, "valve_opening") assert hasattr(valve_model.fs.valve, "valve_function") assert hasattr(valve_model.fs.valve, "flow_var") if self.type == ValveFunctionType.equal_percentage: # alpha valve function parameter is one more than others assert number_variables(valve_model) == 12 else: assert number_variables(valve_model) == 11 assert number_total_constraints(valve_model) == 6 assert number_unused_variables(valve_model) == 0
def test_build(self, btx): assert hasattr(btx.fs.unit.inlet, "flow_mol") assert hasattr(btx.fs.unit.inlet, "mole_frac_comp") assert hasattr(btx.fs.unit.inlet, "temperature") assert hasattr(btx.fs.unit.inlet, "pressure") assert hasattr(btx.fs.unit, "vap_outlet") assert len(btx.fs.unit.vap_outlet.vars) == 4 assert hasattr(btx.fs.unit.vap_outlet, "flow_mol") assert hasattr(btx.fs.unit.vap_outlet, "mole_frac_comp") assert hasattr(btx.fs.unit.vap_outlet, "temperature") assert hasattr(btx.fs.unit.vap_outlet, "pressure") assert hasattr(btx.fs.unit, "liq_outlet") assert len(btx.fs.unit.liq_outlet.vars) == 4 assert hasattr(btx.fs.unit.liq_outlet, "flow_mol") assert hasattr(btx.fs.unit.liq_outlet, "mole_frac_comp") assert hasattr(btx.fs.unit.liq_outlet, "temperature") assert hasattr(btx.fs.unit.liq_outlet, "pressure") assert hasattr(btx.fs.unit, "split") assert hasattr(btx.fs.unit, "heat_duty") assert hasattr(btx.fs.unit, "deltaP") assert number_variables(btx) == 48 assert number_total_constraints(btx) == 41 assert number_unused_variables(btx) == 0
def test_build(self, btx): assert hasattr(btx.fs.unit, "inlet_1") assert len(btx.fs.unit.inlet_1.vars) == 4 assert hasattr(btx.fs.unit.inlet_1, "flow_mol") assert hasattr(btx.fs.unit.inlet_1, "mole_frac_comp") assert hasattr(btx.fs.unit.inlet_1, "temperature") assert hasattr(btx.fs.unit.inlet_1, "pressure") assert hasattr(btx.fs.unit, "inlet_2") assert len(btx.fs.unit.inlet_2.vars) == 4 assert hasattr(btx.fs.unit.inlet_2, "flow_mol") assert hasattr(btx.fs.unit.inlet_2, "mole_frac_comp") assert hasattr(btx.fs.unit.inlet_2, "temperature") assert hasattr(btx.fs.unit.inlet_2, "pressure") assert hasattr(btx.fs.unit, "outlet") assert len(btx.fs.unit.outlet.vars) == 4 assert hasattr(btx.fs.unit.outlet, "flow_mol") assert hasattr(btx.fs.unit.outlet, "mole_frac_comp") assert hasattr(btx.fs.unit.outlet, "temperature") assert hasattr(btx.fs.unit.outlet, "pressure") assert number_variables(btx) == 35 assert number_total_constraints(btx) == 25 assert number_unused_variables(btx) == 0
def test_build(self, iapws): assert len(iapws.fs.unit.inlet.vars) == 3 assert hasattr(iapws.fs.unit.inlet, "flow_mol") assert hasattr(iapws.fs.unit.inlet, "enth_mol") assert hasattr(iapws.fs.unit.inlet, "pressure") assert hasattr(iapws.fs.unit, "vap_outlet") assert len(iapws.fs.unit.vap_outlet.vars) == 3 assert hasattr(iapws.fs.unit.vap_outlet, "flow_mol") assert hasattr(iapws.fs.unit.vap_outlet, "enth_mol") assert hasattr(iapws.fs.unit.vap_outlet, "pressure") assert hasattr(iapws.fs.unit, "liq_outlet") assert len(iapws.fs.unit.liq_outlet.vars) == 3 assert hasattr(iapws.fs.unit.liq_outlet, "flow_mol") assert hasattr(iapws.fs.unit.liq_outlet, "enth_mol") assert hasattr(iapws.fs.unit.liq_outlet, "pressure") assert hasattr(iapws.fs.unit, "split") assert hasattr(iapws.fs.unit, "heat_duty") assert hasattr(iapws.fs.unit, "deltaP") assert number_variables(iapws) == 18 assert number_total_constraints(iapws) == 13 assert number_unused_variables(iapws) == 0
def test_build(self, iapws): assert len(iapws.fs.unit.inlet.vars) == 3 assert hasattr(iapws.fs.unit.inlet, "flow_mol") assert hasattr(iapws.fs.unit.inlet, "enth_mol") assert hasattr(iapws.fs.unit.inlet, "pressure") assert hasattr(iapws.fs.unit, "outlet") assert len(iapws.fs.unit.outlet.vars) == 3 assert hasattr(iapws.fs.unit.outlet, "flow_mol") assert hasattr(iapws.fs.unit.outlet, "enth_mol") assert hasattr(iapws.fs.unit.outlet, "pressure") assert hasattr(iapws.fs.unit, "work_mechanical") assert hasattr(iapws.fs.unit, "deltaP") assert isinstance(iapws.fs.unit.ratioP, Var) assert isinstance(iapws.fs.unit.ratioP_calculation, Constraint) assert isinstance(iapws.fs.unit.efficiency_isentropic, Var) assert isinstance(iapws.fs.unit.work_isentropic, Var) assert hasattr(iapws.fs.unit, "properties_isentropic") assert isinstance(iapws.fs.unit.isentropic_pressure, Constraint) assert isinstance(iapws.fs.unit.isentropic_material, Constraint) assert isinstance(iapws.fs.unit.isentropic, Constraint) assert isinstance(iapws.fs.unit.isentropic_energy_balance, Constraint) assert isinstance(iapws.fs.unit.actual_work, Constraint) assert number_variables(iapws) == 14 assert number_total_constraints(iapws) == 9 assert number_unused_variables(iapws) == 0
def test_build(self, sapon): assert len(sapon.fs.unit.inlet.vars) == 4 assert hasattr(sapon.fs.unit.inlet, "flow_vol") assert hasattr(sapon.fs.unit.inlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.inlet, "temperature") assert hasattr(sapon.fs.unit.inlet, "pressure") assert len(sapon.fs.unit.outlet.vars) == 4 assert hasattr(sapon.fs.unit.outlet, "flow_vol") assert hasattr(sapon.fs.unit.outlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.outlet, "temperature") assert hasattr(sapon.fs.unit.outlet, "pressure") assert hasattr(sapon.fs.unit, "work_mechanical") assert hasattr(sapon.fs.unit, "deltaP") assert isinstance(sapon.fs.unit.ratioP, Var) assert isinstance(sapon.fs.unit.ratioP_calculation, Constraint) assert isinstance(sapon.fs.unit.efficiency_pump, Var) assert isinstance(sapon.fs.unit.work_fluid, Var) assert isinstance(sapon.fs.unit.fluid_work_calculation, Constraint) assert isinstance(sapon.fs.unit.actual_work, Constraint) assert number_variables(sapon) == 21 assert number_total_constraints(sapon) == 11 assert number_unused_variables(sapon) == 0
def test_build(self, sapon): assert hasattr(sapon.fs.unit, "inlet") assert len(sapon.fs.unit.inlet.vars) == 4 assert hasattr(sapon.fs.unit.inlet, "flow_vol") assert hasattr(sapon.fs.unit.inlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.inlet, "temperature") assert hasattr(sapon.fs.unit.inlet, "pressure") assert hasattr(sapon.fs.unit, "outlet") assert len(sapon.fs.unit.outlet.vars) == 4 assert hasattr(sapon.fs.unit.outlet, "flow_vol") assert hasattr(sapon.fs.unit.outlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.outlet, "temperature") assert hasattr(sapon.fs.unit.outlet, "pressure") assert isinstance(sapon.fs.unit.area, Var) assert isinstance(sapon.fs.unit.length, Var) assert isinstance(sapon.fs.unit.volume, Var) assert hasattr(sapon.fs.unit, "performance_eqn") assert hasattr(sapon.fs.unit.control_volume, "heat") assert hasattr(sapon.fs.unit, "heat_duty") assert hasattr(sapon.fs.unit, "deltaP") assert number_variables(sapon) == 654 assert number_total_constraints(sapon) == 595 assert number_unused_variables(sapon) == 9 assert number_derivative_variables(sapon) == 0
def test_build(self, model): assert hasattr(model.fs.unit, "inlet") assert len(model.fs.unit.inlet.vars) == 4 assert hasattr(model.fs.unit.inlet, "flow_mol") assert hasattr(model.fs.unit.inlet, "mole_frac_comp") assert hasattr(model.fs.unit.inlet, "temperature") assert hasattr(model.fs.unit.inlet, "pressure") assert hasattr(model.fs.unit, "bottoms") assert len(model.fs.unit.bottoms.vars) == 4 assert hasattr(model.fs.unit.bottoms, "flow_mol") assert hasattr(model.fs.unit.bottoms, "mole_frac_comp") assert hasattr(model.fs.unit.bottoms, "temperature") assert hasattr(model.fs.unit.bottoms, "pressure") assert hasattr(model.fs.unit, "vapor_reboil") assert len(model.fs.unit.vapor_reboil.vars) == 4 assert hasattr(model.fs.unit.vapor_reboil, "flow_mol") assert hasattr(model.fs.unit.vapor_reboil, "mole_frac_comp") assert hasattr(model.fs.unit.vapor_reboil, "temperature") assert hasattr(model.fs.unit.vapor_reboil, "pressure") assert isinstance(model.fs.unit.unit_material_balance, Constraint) assert isinstance(model.fs.unit.unit_enthalpy_balance, Constraint) assert isinstance(model.fs.unit.unit_temperature_equality, Constraint) assert isinstance(model.fs.unit.unit_pressure_balance, Constraint) assert isinstance(model.fs.unit.zero_flow_param, Param) assert number_variables(model.fs.unit) == 84 assert number_total_constraints(model.fs.unit) == 77 assert number_unused_variables(model.fs.unit) == 0
def test_build(self, NF_frame): m = NF_frame # test ports and variables port_lst = ['inlet', 'retentate', 'permeate'] port_vars_lst = ['flow_mass_phase_comp', 'pressure', 'temperature'] for port_str in port_lst: assert hasattr(m.fs.unit, port_str) port = getattr(m.fs.unit, port_str) assert len(port.vars) == 3 assert isinstance(port, Port) for var_str in port_vars_lst: assert hasattr(port, var_str) var = getattr(port, var_str) assert isinstance(var, Var) # test unit objects (including parameters, variables, and constraints) unit_objs_lst = [ 'A_comp', 'B_comp', 'sigma', 'dens_solvent', 'flux_mass_phase_comp_in', 'flux_mass_phase_comp_out', 'avg_conc_mass_phase_comp_in', 'avg_conc_mass_phase_comp_out', 'area', 'deltaP', 'mass_transfer_phase_comp', 'flux_mass_phase_comp_avg', 'eq_mass_transfer_term', 'eq_permeate_production', 'eq_flux_in', 'eq_flux_out', 'eq_avg_conc_in', 'eq_avg_conc_out', 'eq_connect_mass_transfer', 'eq_connect_enthalpy_transfer', 'eq_permeate_isothermal' ] for obj_str in unit_objs_lst: assert hasattr(m.fs.unit, obj_str) # test state block objects cv_name = 'feed_side' cv_stateblock_lst = ['properties_in', 'properties_out'] stateblock_objs_lst = \ ['flow_mass_phase_comp', 'pressure', 'temperature', 'pressure_osm', 'osm_coeff', 'mass_frac_phase_comp', 'conc_mass_phase_comp', 'dens_mass_phase', 'enth_mass_phase', 'eq_pressure_osm', 'eq_osm_coeff', 'eq_mass_frac_phase_comp', 'eq_conc_mass_phase_comp', 'eq_dens_mass_phase', 'eq_enth_mass_phase' ] # control volume assert hasattr(m.fs.unit, cv_name) cv_blk = getattr(m.fs.unit, cv_name) for blk_str in cv_stateblock_lst: assert hasattr(cv_blk, blk_str) blk = getattr(cv_blk, blk_str) for obj_str in stateblock_objs_lst: assert hasattr(blk[0], obj_str) # permeate assert hasattr(m.fs.unit, 'properties_permeate') blk = getattr(m.fs.unit, 'properties_permeate') for var_str in stateblock_objs_lst: assert hasattr(blk[0], var_str) # test statistics assert number_variables(m) == 73 assert number_total_constraints(m) == 45 assert number_unused_variables( m) == 7 # vars from property package parameters
def test_build(self, iron_oc): assert hasattr(iron_oc.fs.unit, "gas_inlet") assert len(iron_oc.fs.unit.gas_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_inlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_inlet") assert len(iron_oc.fs.unit.solid_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_inlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.temperature, Var) assert hasattr(iron_oc.fs.unit, "gas_outlet") assert len(iron_oc.fs.unit.gas_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_outlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_outlet") assert len(iron_oc.fs.unit.solid_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_outlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.orifice_area, Constraint) assert isinstance(iron_oc.fs.unit.bed_area_eqn, Constraint) assert isinstance(iron_oc.fs.unit.bubble_area, Constraint) assert isinstance(iron_oc.fs.unit.gas_emulsion_area, Constraint) assert isinstance(iron_oc.fs.unit.solid_emulsion_area, Constraint) assert isinstance(iron_oc.fs.unit.bubble_cloud_heat_trans_coeff, Constraint) assert isinstance(iron_oc.fs.unit.convective_heat_trans_coeff, Constraint) assert isinstance(iron_oc.fs.unit.convective_heat_transfer, Constraint) assert isinstance(iron_oc.fs.unit.bubble_cloud_bulk_heat_trans, Constraint) assert isinstance(iron_oc.fs.unit.bubble_mass_transfer, Constraint) assert isinstance(iron_oc.fs.unit.gas_emulsion_mass_transfer, Constraint) assert isinstance(iron_oc.fs.unit.bubble_heat_transfer, Constraint) assert isinstance(iron_oc.fs.unit.gas_emulsion_heat_transfer, Constraint) assert isinstance(iron_oc.fs.unit.solid_emulsion_heat_transfer, Constraint) assert number_variables(iron_oc) == 1436 assert number_total_constraints(iron_oc) == 1395 assert number_unused_variables(iron_oc) == 15
def test_build(self, iapws): assert len(iapws.fs.unit.inlet.vars) == 3 assert hasattr(iapws.fs.unit.inlet, "flow_mol") assert hasattr(iapws.fs.unit.inlet, "enth_mol") assert hasattr(iapws.fs.unit.inlet, "pressure") assert hasattr(iapws.fs.unit, "flow_mol") assert hasattr(iapws.fs.unit, "enth_mol") assert hasattr(iapws.fs.unit, "pressure") assert number_variables(iapws) == 3 assert number_total_constraints(iapws) == 0 assert number_unused_variables(iapws) == 3
def test_build(self, btx): assert hasattr(btx.fs.unit, "shell_inlet") assert len(btx.fs.unit.shell_inlet.vars) == 4 assert hasattr(btx.fs.unit.shell_inlet, "flow_mol") assert hasattr(btx.fs.unit.shell_inlet, "mole_frac") assert hasattr(btx.fs.unit.shell_inlet, "temperature") assert hasattr(btx.fs.unit.shell_inlet, "pressure") assert hasattr(btx.fs.unit, "tube_inlet") assert len(btx.fs.unit.tube_inlet.vars) == 4 assert hasattr(btx.fs.unit.tube_inlet, "flow_mol") assert hasattr(btx.fs.unit.tube_inlet, "mole_frac") assert hasattr(btx.fs.unit.tube_inlet, "temperature") assert hasattr(btx.fs.unit.tube_inlet, "pressure") assert hasattr(btx.fs.unit, "shell_outlet") assert len(btx.fs.unit.shell_outlet.vars) == 4 assert hasattr(btx.fs.unit.shell_outlet, "flow_mol") assert hasattr(btx.fs.unit.shell_outlet, "mole_frac") assert hasattr(btx.fs.unit.shell_outlet, "temperature") assert hasattr(btx.fs.unit.shell_outlet, "pressure") assert hasattr(btx.fs.unit, "tube_outlet") assert len(btx.fs.unit.tube_outlet.vars) == 4 assert hasattr(btx.fs.unit.tube_outlet, "flow_mol") assert hasattr(btx.fs.unit.tube_outlet, "mole_frac") assert hasattr(btx.fs.unit.tube_outlet, "temperature") assert hasattr(btx.fs.unit.tube_outlet, "pressure") assert hasattr(btx.fs.unit, "shell_area") assert hasattr(btx.fs.unit, "shell_length") assert hasattr(btx.fs.unit, "tube_area") assert hasattr(btx.fs.unit, "tube_length") assert hasattr(btx.fs.unit, "pi") assert hasattr(btx.fs.unit, "d_shell") assert hasattr(btx.fs.unit, "d_tube_outer") assert hasattr(btx.fs.unit, "d_tube_inner") assert hasattr(btx.fs.unit, "N_tubes") assert hasattr(btx.fs.unit, "shell_heat_transfer_coefficient") assert hasattr(btx.fs.unit, "tube_heat_transfer_coefficient") assert hasattr(btx.fs.unit, "temperature_wall") assert hasattr(btx.fs.unit, "shell_heat_transfer_eq") assert hasattr(btx.fs.unit, "tube_heat_transfer_eq") assert hasattr(btx.fs.unit, "wall_0D_model") assert hasattr(btx.fs.unit, "area_calc_tube") assert hasattr(btx.fs.unit, "area_calc_shell") assert number_variables(btx) == 911 assert number_total_constraints(btx) == 845 assert number_unused_variables(btx) == 8
def test_build(self, unit_frame): m = unit_frame # test ports port_lst = ["inlet", "retentate", "permeate"] for port_str in port_lst: port = getattr(m.fs.unit, port_str) assert (len(port.vars) == 3 ) # number of state variables for NaCl property package assert isinstance(port, Port) # test statistics assert number_variables(m) == 89 assert number_total_constraints(m) == 74 assert number_unused_variables(m) == 1
def test_build(self, iron_oc): assert isinstance(iron_oc.fs.unit.volume_bed_constraint, Constraint) assert isinstance(iron_oc.fs.unit.volume_solid_constraint, Constraint) assert isinstance(iron_oc.fs.unit.solids_material_holdup_constraints, Constraint) assert isinstance(iron_oc.fs.unit .solids_material_accumulation_constraints, Constraint) assert isinstance(iron_oc.fs.unit.mass_solids_constraint, Constraint) assert isinstance(iron_oc.fs.unit.sum_component_constraint, Constraint) assert number_variables(iron_oc) == 3044 assert number_total_constraints(iron_oc) == 2319 assert number_unused_variables(iron_oc) == 206 print(unused_variables_set(iron_oc))
def test_build(self, NF_frame): m = NF_frame # test ports and variables port_lst = ["inlet", "retentate", "permeate"] port_vars_lst = ["flow_mol_phase_comp", "pressure", "temperature"] for port_str in port_lst: assert hasattr(m.fs.unit, port_str) port = getattr(m.fs.unit, port_str) assert len(port.vars) == 3 assert isinstance(port, Port) for var_str in port_vars_lst: assert hasattr(port, var_str) var = getattr(port, var_str) assert isinstance(var, Var) # test unit objects (including parameters, variables, and constraints) unit_objs_lst = [] for obj_str in unit_objs_lst: assert hasattr(m.fs.unit, obj_str) # test state block objects assert isinstance(m.fs.unit.feed_side, ControlVolume0DBlock) cv_stateblock_lst = [ "properties_in", "properties_out", "properties_interface", ] # feed side for sb_str in cv_stateblock_lst: sb = getattr(m.fs.unit.feed_side, sb_str) assert isinstance(sb, DSPMDEStateBlock) # test objects added to control volume cv_objs_type_dict = {"eq_feed_interface_isothermal": Constraint} for (obj_str, obj_type) in cv_objs_type_dict.items(): obj = getattr(m.fs.unit.feed_side, obj_str) assert isinstance(obj, obj_type) # permeate side assert isinstance(m.fs.unit.permeate_side, DSPMDEStateBlock) assert isinstance(m.fs.unit.mixed_permeate, DSPMDEStateBlock) # membrane assert isinstance(m.fs.unit.pore_entrance, DSPMDEStateBlock) assert isinstance(m.fs.unit.pore_exit, DSPMDEStateBlock) # test statistics assert number_variables(m) == 558 assert number_total_constraints(m) == 524 assert number_unused_variables(m) == 11
def test_build(self, iron_oc): assert hasattr(iron_oc.fs.unit, "gas_inlet") assert len(iron_oc.fs.unit.gas_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_inlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_inlet") assert len(iron_oc.fs.unit.solid_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_inlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.temperature, Var) assert hasattr(iron_oc.fs.unit, "gas_outlet") assert len(iron_oc.fs.unit.gas_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_outlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_outlet") assert len(iron_oc.fs.unit.solid_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_outlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.bed_area_eqn, Constraint) assert isinstance(iron_oc.fs.unit.gas_phase_area, Constraint) assert isinstance(iron_oc.fs.unit.solid_phase_area, Constraint) assert isinstance(iron_oc.fs.unit.gas_phase_length, Constraint) assert isinstance(iron_oc.fs.unit.solid_phase_length, Constraint) assert isinstance(iron_oc.fs.unit.gas_super_vel, Constraint) assert isinstance(iron_oc.fs.unit.solid_super_vel, Constraint) assert isinstance(iron_oc.fs.unit.gas_phase_config_pressure_drop, Constraint) assert isinstance(iron_oc.fs.unit.gas_solid_htc_eqn, Constraint) assert isinstance(iron_oc.fs.unit.gas_phase_heat_transfer, Constraint) assert isinstance(iron_oc.fs.unit.solid_phase_config_rxn_ext, Constraint) assert isinstance(iron_oc.fs.unit.gas_comp_hetero_rxn, Constraint) assert number_variables(iron_oc) == 809 assert number_total_constraints(iron_oc) == 775 assert number_unused_variables(iron_oc) == 12
def test_build(self, sapon): assert hasattr(sapon.fs.unit, "inlet") assert len(sapon.fs.unit.inlet.vars) == 4 assert hasattr(sapon.fs.unit.inlet, "flow_vol") assert hasattr(sapon.fs.unit.inlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.inlet, "temperature") assert hasattr(sapon.fs.unit.inlet, "pressure") assert hasattr(sapon.fs.unit, "flow_vol") assert hasattr(sapon.fs.unit, "conc_mol_comp") assert hasattr(sapon.fs.unit, "temperature") assert hasattr(sapon.fs.unit, "pressure") assert number_variables(sapon) == 8 assert number_total_constraints(sapon) == 0 assert number_unused_variables(sapon) == 8
def test_build(self, btx): assert hasattr(btx.fs.unit, "flow_mol") assert hasattr(btx.fs.unit, "mole_frac") assert hasattr(btx.fs.unit, "temperature") assert hasattr(btx.fs.unit, "pressure") assert hasattr(btx.fs.unit, "outlet") assert len(btx.fs.unit.outlet.vars) == 4 assert hasattr(btx.fs.unit.outlet, "flow_mol") assert hasattr(btx.fs.unit.outlet, "mole_frac") assert hasattr(btx.fs.unit.outlet, "temperature") assert hasattr(btx.fs.unit.outlet, "pressure") assert hasattr(btx.fs.unit, "isothermal") assert number_variables(btx) == 36 assert number_total_constraints(btx) == 31 assert number_unused_variables(btx) == 0
def test_build(self, btx): assert hasattr(btx.fs.unit, "hot_inlet") assert len(btx.fs.unit.hot_inlet.vars) == 4 assert hasattr(btx.fs.unit.hot_inlet, "flow_mol") assert hasattr(btx.fs.unit.hot_inlet, "mole_frac_comp") assert hasattr(btx.fs.unit.hot_inlet, "temperature") assert hasattr(btx.fs.unit.hot_inlet, "pressure") assert hasattr(btx.fs.unit, "cold_inlet") assert len(btx.fs.unit.cold_inlet.vars) == 4 assert hasattr(btx.fs.unit.cold_inlet, "flow_mol") assert hasattr(btx.fs.unit.cold_inlet, "mole_frac_comp") assert hasattr(btx.fs.unit.cold_inlet, "temperature") assert hasattr(btx.fs.unit.cold_inlet, "pressure") assert hasattr(btx.fs.unit, "hot_outlet") assert len(btx.fs.unit.hot_outlet.vars) == 4 assert hasattr(btx.fs.unit.hot_outlet, "flow_mol") assert hasattr(btx.fs.unit.hot_outlet, "mole_frac_comp") assert hasattr(btx.fs.unit.hot_outlet, "temperature") assert hasattr(btx.fs.unit.hot_outlet, "pressure") assert hasattr(btx.fs.unit, "cold_outlet") assert len(btx.fs.unit.cold_outlet.vars) == 4 assert hasattr(btx.fs.unit.cold_outlet, "flow_mol") assert hasattr(btx.fs.unit.cold_outlet, "mole_frac_comp") assert hasattr(btx.fs.unit.cold_outlet, "temperature") assert hasattr(btx.fs.unit.cold_outlet, "pressure") assert isinstance(btx.fs.unit.overall_heat_transfer_coefficient, Var) assert isinstance(btx.fs.unit.area, Var) assert not hasattr(btx.fs.unit, "crossflow_factor") assert isinstance(btx.fs.unit.heat_duty, Var) assert isinstance(btx.fs.unit.delta_temperature_in, Var) assert isinstance(btx.fs.unit.delta_temperature_out, Var) assert isinstance(btx.fs.unit.unit_heat_balance, Constraint) assert isinstance(btx.fs.unit.delta_temperature, (Var, Expression)) assert isinstance(btx.fs.unit.heat_transfer_equation, Constraint) assert number_variables(btx) == 50 assert number_total_constraints(btx) == 38 assert number_unused_variables(btx) == 0
def test_build(self, methane): assert hasattr(methane.fs.unit, "inlet") assert len(methane.fs.unit.inlet.vars) == 3 assert hasattr(methane.fs.unit.inlet, "flow_mol_comp") assert hasattr(methane.fs.unit.inlet, "temperature") assert hasattr(methane.fs.unit.inlet, "pressure") assert hasattr(methane.fs.unit, "outlet") assert len(methane.fs.unit.outlet.vars) == 3 assert hasattr(methane.fs.unit.outlet, "flow_mol_comp") assert hasattr(methane.fs.unit.outlet, "temperature") assert hasattr(methane.fs.unit.outlet, "pressure") assert hasattr(methane.fs.unit, "gibbs_minimization") assert hasattr(methane.fs.unit, "heat_duty") assert hasattr(methane.fs.unit, "deltaP") assert number_variables(methane) == 78 assert number_total_constraints(methane) == 66 assert number_unused_variables(methane) == 0
def test_build(self, btx): assert hasattr(btx.fs.unit, "inlet") assert len(btx.fs.unit.inlet.vars) == 4 assert hasattr(btx.fs.unit.inlet, "flow_mol") assert hasattr(btx.fs.unit.inlet, "mole_frac") assert hasattr(btx.fs.unit.inlet, "temperature") assert hasattr(btx.fs.unit.inlet, "pressure") assert hasattr(btx.fs.unit, "outlet") assert len(btx.fs.unit.outlet.vars) == 4 assert hasattr(btx.fs.unit.outlet, "flow_mol") assert hasattr(btx.fs.unit.outlet, "mole_frac") assert hasattr(btx.fs.unit.outlet, "temperature") assert hasattr(btx.fs.unit.outlet, "pressure") assert hasattr(btx.fs.unit, "heat_duty") assert hasattr(btx.fs.unit, "deltaP") assert number_variables(btx) == 24 assert number_total_constraints(btx) == 17 assert number_unused_variables(btx) == 0
def test_build(self, trans): assert hasattr(trans.fs.unit, "properties_in") assert hasattr(trans.fs.unit, "properties_out") assert hasattr(trans.fs.unit, "inlet") assert len(trans.fs.unit.inlet.vars) == 4 assert hasattr(trans.fs.unit.inlet, "flow_vol") assert hasattr(trans.fs.unit.inlet, "conc_mol_comp") assert hasattr(trans.fs.unit.inlet, "temperature") assert hasattr(trans.fs.unit.inlet, "pressure") assert hasattr(trans.fs.unit, "outlet") assert len(trans.fs.unit.outlet.vars) == 4 assert hasattr(trans.fs.unit.outlet, "flow_mol") assert hasattr(trans.fs.unit.outlet, "mole_frac_comp") assert hasattr(trans.fs.unit.outlet, "temperature") assert hasattr(trans.fs.unit.outlet, "pressure") assert number_variables(trans) == 25 assert number_total_constraints(trans) == 12 assert number_unused_variables(trans) == 8
def test_build(self, iron_oc): assert hasattr(iron_oc.fs.unit, "gas_inlet") assert len(iron_oc.fs.unit.gas_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_inlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_inlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_inlet") assert len(iron_oc.fs.unit.solid_inlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_inlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_inlet.temperature, Var) assert hasattr(iron_oc.fs.unit, "gas_outlet") assert len(iron_oc.fs.unit.gas_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.gas_outlet.flow_mol, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.mole_frac_comp, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_outlet.pressure, Var) assert hasattr(iron_oc.fs.unit, "solid_outlet") assert len(iron_oc.fs.unit.solid_outlet.vars) == 4 assert isinstance(iron_oc.fs.unit.solid_outlet.flow_mass, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.particle_porosity, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.mass_frac_comp, Var) assert isinstance(iron_oc.fs.unit.solid_outlet.temperature, Var) assert isinstance(iron_oc.fs.unit.gas_energy_balance_out, Constraint) assert isinstance(iron_oc.fs.unit.solid_energy_balance_out, Constraint) assert isinstance(iron_oc.fs.unit.isothermal_gas_emulsion, Constraint) assert isinstance(iron_oc.fs.unit.isothermal_solid_emulsion, Constraint) assert isinstance(iron_oc.fs.unit.isothermal_bubble, Constraint) assert number_variables(iron_oc) == 1144 assert number_total_constraints(iron_oc) == 1039 assert number_unused_variables(iron_oc) == 80 print(unused_variables_set(iron_oc))
def test_build(self, btg): assert hasattr(btg.fs.unit, "inlet") assert len(btg.fs.unit.inlet.vars) == 4 assert hasattr(btg.fs.unit.inlet, "flow_mol") assert hasattr(btg.fs.unit.inlet, "mole_frac_comp") assert hasattr(btg.fs.unit.inlet, "temperature") assert hasattr(btg.fs.unit.inlet, "pressure") assert hasattr(btg.fs.unit, "outlet") assert len(btg.fs.unit.outlet.vars) == 4 assert hasattr(btg.fs.unit.outlet, "flow_mol") assert hasattr(btg.fs.unit.outlet, "mole_frac_comp") assert hasattr(btg.fs.unit.outlet, "temperature") assert hasattr(btg.fs.unit.outlet, "pressure") assert hasattr(btg.fs.unit, "heat_duty") assert hasattr(btg.fs.unit, "deltaP") assert number_variables(btg) == 74 assert number_total_constraints(btg) == 37 # Unused vars are density parameters assert number_unused_variables(btg) == 10
def test_build(self, sapon): assert hasattr(sapon.fs.unit, "inlet") assert len(sapon.fs.unit.inlet.vars) == 4 assert hasattr(sapon.fs.unit.inlet, "flow_vol") assert hasattr(sapon.fs.unit.inlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.inlet, "temperature") assert hasattr(sapon.fs.unit.inlet, "pressure") assert hasattr(sapon.fs.unit, "outlet") assert len(sapon.fs.unit.outlet.vars) == 4 assert hasattr(sapon.fs.unit.outlet, "flow_vol") assert hasattr(sapon.fs.unit.outlet, "conc_mol_comp") assert hasattr(sapon.fs.unit.outlet, "temperature") assert hasattr(sapon.fs.unit.outlet, "pressure") assert hasattr(sapon.fs.unit, "rate_reaction_constraint") assert hasattr(sapon.fs.unit, "heat_duty") assert hasattr(sapon.fs.unit, "deltaP") assert number_variables(sapon) == 26 assert number_total_constraints(sapon) == 16 assert number_unused_variables(sapon) == 0