def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.reactions = SaponificationReactionParameterBlock( default={"property_package": m.fs.properties}) m.fs.unit = StoichiometricReactor( default={ "property_package": m.fs.properties, "reaction_package": m.fs.reactions, "has_heat_transfer": True, "has_heat_of_reaction": True, "has_pressure_change": True }) m.fs.unit.inlet.flow_vol.fix(1) m.fs.unit.inlet.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.inlet.temperature.fix(303.15) m.fs.unit.inlet.pressure.fix(101325.0) m.fs.unit.rate_reaction_extent[0, 'R1'].fix(90) m.fs.unit.heat_duty.fix(0) m.fs.unit.deltaP.fix(0) return m
def model(self): model = ConcreteModel() model.pparams = SaponificationParameterBlock() model.rparams = SaponificationReactionParameterBlock( default={"property_package": model.pparams}) return model
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = PressureChanger( default={ "property_package": m.fs.properties, "thermodynamic_assumption": ThermodynamicAssumption.pump, "compressor": False }) m.fs.unit.inlet.flow_vol[0].fix(1e-3) m.fs.unit.inlet.temperature[0].fix(320) m.fs.unit.inlet.pressure[0].fix(101325) m.fs.unit.inlet.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.deltaP.fix(-20000) m.fs.unit.efficiency_pump.fix(0.9) iscale.calculate_scaling_factors(m) return m
def model(self): model = ConcreteModel() model.params = SaponificationParameterBlock() model.props = model.params.state_block_class( [1], default={"parameters": model.params}) return model
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = Feed(default={"property_package": m.fs.properties}) return m
def model(self): model = ConcreteModel() model.pparams = SaponificationParameterBlock() model.rparams = SaponificationReactionParameterBlock( default={"property_package": model.pparams}) model.props = model.pparams.build_state_block([1]) model.rxns = model.rparams.build_reaction_block( [1], default={"state_block": model.props}) return model
def trans(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties1 = SaponificationParameterBlock() m.fs.properties2 = BTXParameterBlock() m.fs.unit = Translator( default={"inlet_property_package": m.fs.properties1, "outlet_property_package": m.fs.properties2}) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = PressureChanger( default={ "property_package": m.fs.properties, "thermodynamic_assumption": ThermodynamicAssumption.pump, "compressor": False }) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.reactions = SaponificationReactionParameterBlock(default={ "property_package": m.fs.properties}) m.fs.unit = StoichiometricReactor(default={ "property_package": m.fs.properties, "reaction_package": m.fs.reactions, "has_heat_transfer": True, "has_heat_of_reaction": True, "has_pressure_change": True}) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = HeatExchanger( default={ "shell": { "property_package": m.fs.properties }, "tube": { "property_package": m.fs.properties }, "flow_pattern": HeatExchangerFlowPattern.crossflow }) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = Product(default={"property_package": m.fs.properties}) m.fs.unit.flow_vol.fix(1.0e-03) m.fs.unit.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.temperature.fix(303.15) m.fs.unit.pressure.fix(101325.0) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = Heater(default={"property_package": m.fs.properties}) m.fs.unit.inlet.flow_vol[0].fix(1e-3) m.fs.unit.inlet.temperature[0].fix(320) m.fs.unit.inlet.pressure[0].fix(101325) m.fs.unit.inlet.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.heat_duty.fix(1000) return m
def trans(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties1 = SaponificationParameterBlock() m.fs.properties2 = BTXParameterBlock() m.fs.unit = Translator( default={ "inlet_property_package": m.fs.properties1, "outlet_property_package": m.fs.properties2 }) m.fs.unit.inlet.flow_vol.fix(1.0e-03) m.fs.unit.inlet.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet.conc_mol_comp[0, "Ethanol"].fix(0.0) return m
def sapon(self): m = ConcreteModel() m.fs = FlowsheetBlock(default={"dynamic": False}) m.fs.properties = SaponificationParameterBlock() m.fs.unit = HeatExchanger( default={ "shell": { "property_package": m.fs.properties }, "tube": { "property_package": m.fs.properties }, "flow_pattern": HeatExchangerFlowPattern.crossflow }) m.fs.unit.inlet_1.flow_vol[0].fix(1e-3) m.fs.unit.inlet_1.temperature[0].fix(320) m.fs.unit.inlet_1.pressure[0].fix(101325) m.fs.unit.inlet_1.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet_1.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet_1.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet_1.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet_1.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.inlet_2.flow_vol[0].fix(1e-3) m.fs.unit.inlet_2.temperature[0].fix(300) m.fs.unit.inlet_2.pressure[0].fix(101325) m.fs.unit.inlet_2.conc_mol_comp[0, "H2O"].fix(55388.0) m.fs.unit.inlet_2.conc_mol_comp[0, "NaOH"].fix(100.0) m.fs.unit.inlet_2.conc_mol_comp[0, "EthylAcetate"].fix(100.0) m.fs.unit.inlet_2.conc_mol_comp[0, "SodiumAcetate"].fix(0.0) m.fs.unit.inlet_2.conc_mol_comp[0, "Ethanol"].fix(0.0) m.fs.unit.area.fix(1000) m.fs.unit.overall_heat_transfer_coefficient.fix(100) m.fs.unit.crossflow_factor.fix(0.6) return m
def test_build_defined_state(self): model = ConcreteModel() model.params = SaponificationParameterBlock() model.props = model.params.build_state_block( [1], default={"defined_state": True}) assert isinstance(model.props[1].flow_vol, Var) assert value(model.props[1].flow_vol) == 1 assert isinstance(model.props[1].pressure, Var) assert value(model.props[1].pressure) == 101325 assert isinstance(model.props[1].temperature, Var) assert value(model.props[1].temperature) == 298.15 assert isinstance(model.props[1].conc_mol_comp, Var) assert len(model.props[1].conc_mol_comp) == 5 for i in model.props[1].conc_mol_comp: assert value(model.props[1].conc_mol_comp[i]) == 100 assert not hasattr(model.props[1], "conc_water_eqn")
def model(self): model = ConcreteModel() model.params = SaponificationParameterBlock() return model