예제 #1
0
def test_initialize():
    m = ConcreteModel()
    m.fs = FlowsheetBlock(default={"dynamic": False})

    m.fs.properties = SaponificationParameterBlock()

    m.fs.prod = Product(default={"property_package": m.fs.properties})

    m.fs.prod.flow_vol.fix(1.0e-03)
    m.fs.prod.conc_mol_comp[0, "H2O"].fix(55388.0)
    m.fs.prod.conc_mol_comp[0, "NaOH"].fix(100.0)
    m.fs.prod.conc_mol_comp[0, "EthylAcetate"].fix(100.0)
    m.fs.prod.conc_mol_comp[0, "SodiumAcetate"].fix(0.0)
    m.fs.prod.conc_mol_comp[0, "Ethanol"].fix(0.0)

    m.fs.prod.temperature.fix(303.15)
    m.fs.prod.pressure.fix(101325.0)

    assert degrees_of_freedom(m) == 0

    m.fs.prod.initialize(outlvl=5, optarg={'tol': 1e-6})

    assert m.fs.prod.inlet.flow_vol[0].value == 1.0e-03
    assert m.fs.prod.inlet.conc_mol_comp[0, "H2O"].value == 55388.0
    assert m.fs.prod.inlet.conc_mol_comp[0, "NaOH"].value == 100.0
    assert m.fs.prod.inlet.conc_mol_comp[0, "EthylAcetate"].value == 100.0
    assert m.fs.prod.inlet.conc_mol_comp[0, "SodiumAcetate"].value == 0.0
    assert m.fs.prod.inlet.conc_mol_comp[0, "Ethanol"].value == 0.0
예제 #2
0
def test_report():
    m = ConcreteModel()
    m.fs = FlowsheetBlock(default={"dynamic": False})

    m.fs.properties = SaponificationParameterBlock()

    m.fs.prod = Product(default={"property_package": m.fs.properties})

    m.fs.prod.report()
예제 #3
0
    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})

        return m
예제 #4
0
    def iapws(self):
        m = ConcreteModel()
        m.fs = FlowsheetBlock(default={"dynamic": False})

        m.fs.properties = iapws95.Iapws95ParameterBlock()

        m.fs.unit = Product(default={"property_package": m.fs.properties})

        return m
예제 #5
0
    def btx(self):
        m = ConcreteModel()
        m.fs = FlowsheetBlock(default={"dynamic": False})

        m.fs.properties = BTXParameterBlock(default={"valid_phase": 'Liq'})

        m.fs.unit = Product(default={"property_package": m.fs.properties})

        return m
예제 #6
0
def test_config():
    m = ConcreteModel()
    m.fs = FlowsheetBlock(default={"dynamic": False})

    m.fs.properties = PhysicalParameterTestBlock()

    m.fs.unit = Product(default={"property_package": m.fs.properties})

    # Check unit config arguments
    assert len(m.fs.unit.config) == 4

    assert not m.fs.unit.config.dynamic
    assert not m.fs.unit.config.has_holdup
    assert m.fs.unit.config.property_package is m.fs.properties
예제 #7
0
def test_build():
    m = ConcreteModel()
    m.fs = FlowsheetBlock(default={"dynamic": False})

    m.fs.properties = SaponificationParameterBlock()

    m.fs.prod = Product(default={"property_package": m.fs.properties})

    assert hasattr(m.fs.prod, "flow_vol")
    assert hasattr(m.fs.prod, "conc_mol_comp")
    assert hasattr(m.fs.prod, "temperature")
    assert hasattr(m.fs.prod, "pressure")

    assert hasattr(m.fs.prod, "inlet")
    assert len(m.fs.prod.inlet.vars) == 4
    assert hasattr(m.fs.prod.inlet, "flow_vol")
    assert hasattr(m.fs.prod.inlet, "conc_mol_comp")
    assert hasattr(m.fs.prod.inlet, "temperature")
    assert hasattr(m.fs.prod.inlet, "pressure")