224 |
|
|
225 |
METHOD seqmod; |
METHOD seqmod; |
226 |
RUN state.specify; |
RUN state.specify; |
227 |
state.y[cd.components].fixed := FALSE; |
FREE state.y[cd.components]; |
228 |
END seqmod; |
END seqmod; |
229 |
|
|
230 |
METHOD reset_to_massbal; |
METHOD reset_to_massbal; |
259 |
Qin to zero and equilibrated to TRUE. |
Qin to zero and equilibrated to TRUE. |
260 |
} END NOTES; |
} END NOTES; |
261 |
RUN specify_P_and_vapor_fraction; |
RUN specify_P_and_vapor_fraction; |
262 |
Qin.fixed := TRUE; |
FIX Qin; |
263 |
IF (equilibrated) THEN |
IF (equilibrated) THEN |
264 |
state.phase_fraction['vapor'].fixed := FALSE; |
FREE state.phase_fraction['vapor']; |
265 |
END IF; |
END IF; |
266 |
END specify_P_and_heat_input; |
END specify_P_and_heat_input; |
267 |
|
|
404 |
(* Equations connect_feed, vapor_balance, and liquid_balance |
(* Equations connect_feed, vapor_balance, and liquid_balance |
405 |
* make us free nc+1 variables. |
* make us free nc+1 variables. |
406 |
*) |
*) |
407 |
state.y[state.cd.components].fixed := FALSE; |
FREE state.y[state.cd.components]; |
408 |
state.phase_fraction['vapor'].fixed := FALSE; |
FREE state.phase_fraction['vapor']; |
409 |
(* Then we trade cmo_ratio for T *) |
(* Then we trade cmo_ratio for T *) |
410 |
cmo_ratio.fixed := TRUE; |
FIX cmo_ratio; |
411 |
IF (equilibrated) THEN |
IF (equilibrated) THEN |
412 |
state.T.fixed := FALSE; |
FREE state.T; |
413 |
END IF; |
END IF; |
414 |
END seqmod; |
END seqmod; |
415 |
|
|
416 |
METHOD seqmod_massbal; |
METHOD seqmod_massbal; |
417 |
equilibrated := FALSE; |
equilibrated := FALSE; |
418 |
RUN seqmod; |
RUN seqmod; |
419 |
vapin.state.T.fixed := TRUE; |
FIX vapin.state.T; |
420 |
liqin.state.T.fixed := TRUE; |
FIX liqin.state.T; |
421 |
END seqmod_massbal; |
END seqmod_massbal; |
422 |
|
|
423 |
METHOD seqmod_fullthermo; |
METHOD seqmod_fullthermo; |
427 |
|
|
428 |
METHOD seqmod_fixed_Q; |
METHOD seqmod_fixed_Q; |
429 |
RUN seqmod_fullthermo; |
RUN seqmod_fullthermo; |
430 |
cmo_ratio.fixed := FALSE; |
FREE cmo_ratio; |
431 |
Qin.fixed := TRUE; |
FIX Qin; |
432 |
END seqmod_fixed_Q; |
END seqmod_fixed_Q; |
433 |
|
|
434 |
METHOD seqmod_adiabatic; |
METHOD seqmod_adiabatic; |
448 |
|
|
449 |
METHOD reset_to_adiabatic; |
METHOD reset_to_adiabatic; |
450 |
RUN reset_to_fullthermo; |
RUN reset_to_fullthermo; |
451 |
cmo_ratio.fixed := FALSE; |
FREE cmo_ratio; |
452 |
Qin.fixed := TRUE; |
FIX Qin; |
453 |
Qin := 0{W}; |
Qin := 0{W}; |
454 |
END reset_to_adiabatic; |
END reset_to_adiabatic; |
455 |
|
|
460 |
END specify; |
END specify; |
461 |
|
|
462 |
METHOD heat_balance; |
METHOD heat_balance; |
463 |
cmo_ratio.fixed := FALSE; |
FREE cmo_ratio; |
464 |
Qin.fixed := TRUE; |
FIX Qin; |
465 |
END heat_balance; |
END heat_balance; |
466 |
|
|
467 |
METHOD CMO; |
METHOD CMO; |
468 |
cmo_ratio.fixed := TRUE; |
FIX cmo_ratio; |
469 |
Qin.fixed := FALSE; |
FREE Qin; |
470 |
END CMO; |
END CMO; |
471 |
|
|
472 |
END detailed_tray; |
END detailed_tray; |
797 |
(* Equations connect_feed, vapor_balance, and liquid_balance |
(* Equations connect_feed, vapor_balance, and liquid_balance |
798 |
* make us free nc+1 variables. |
* make us free nc+1 variables. |
799 |
*) |
*) |
800 |
state.y[cd.components].fixed := FALSE; |
FREE state.y[cd.components]; |
801 |
state.phase_fraction['vapor'].fixed := FALSE; |
FREE state.phase_fraction['vapor']; |
802 |
(* swap q for T at equilibrium, or set both if |
(* swap q for T at equilibrium, or set both if |
803 |
* ignoring equilbrium. |
* ignoring equilbrium. |
804 |
*) |
*) |
805 |
q.fixed := TRUE; |
FIX q; |
806 |
IF (equilibrated) THEN |
IF (equilibrated) THEN |
807 |
T.fixed := FALSE; |
FREE T; |
808 |
END IF; |
END IF; |
809 |
END seqmod; |
END seqmod; |
810 |
|
|
811 |
METHOD seqmod_massbal; |
METHOD seqmod_massbal; |
812 |
equilibrated := FALSE; |
equilibrated := FALSE; |
813 |
RUN seqmod; |
RUN seqmod; |
814 |
vapin.state.T.fixed := TRUE; |
FIX vapin.state.T; |
815 |
liqin.state.T.fixed := TRUE; |
FIX liqin.state.T; |
816 |
END seqmod_massbal; |
END seqmod_massbal; |
817 |
|
|
818 |
METHOD seqmod_fullthermo; |
METHOD seqmod_fullthermo; |
822 |
|
|
823 |
METHOD seqmod_fixed_Q; |
METHOD seqmod_fixed_Q; |
824 |
RUN fullthermo_seqmod; |
RUN fullthermo_seqmod; |
825 |
q.fixed := FALSE; |
FREE q; |
826 |
Qin.fixed := TRUE; |
FIX Qin; |
827 |
END seqmod_fixed_Q; |
END seqmod_fixed_Q; |
828 |
|
|
829 |
METHOD seqmod_adiabatic; |
METHOD seqmod_adiabatic; |
843 |
|
|
844 |
METHOD reset_to_adiabatic; |
METHOD reset_to_adiabatic; |
845 |
RUN reset_to_fullthermo; |
RUN reset_to_fullthermo; |
846 |
q.fixed := FALSE; |
FREE q; |
847 |
Qin.fixed := TRUE; |
FIX Qin; |
848 |
Qin := 0{W}; |
Qin := 0{W}; |
849 |
END reset_to_adiabatic; |
END reset_to_adiabatic; |
850 |
|
|
852 |
RUN seqmod; |
RUN seqmod; |
853 |
RUN feed.specify; |
RUN feed.specify; |
854 |
IF (feed.equilibrated AND (feed.pd.phase_indicator == 'VL')) THEN |
IF (feed.equilibrated AND (feed.pd.phase_indicator == 'VL')) THEN |
855 |
feed.Details.state.phase[pd.reference_phase].T.fixed := FALSE; |
FREE feed.Details.state.phase[pd.reference_phase].T; |
856 |
feed.Details.state.phase_fraction[pd.other_phases].fixed := TRUE; |
FIX feed.Details.state.phase_fraction[pd.other_phases]; |
857 |
END IF; |
END IF; |
858 |
RUN vapin.specify; |
RUN vapin.specify; |
859 |
RUN liqin.specify; |
RUN liqin.specify; |
997 |
METHOD seqmod; |
METHOD seqmod; |
998 |
RUN liqout.seqmod; |
RUN liqout.seqmod; |
999 |
RUN distillate.seqmod; |
RUN distillate.seqmod; |
1000 |
reflux_ratio.fixed := TRUE; |
FIX reflux_ratio; |
1001 |
END seqmod; |
END seqmod; |
1002 |
|
|
1003 |
METHOD specify; |
METHOD specify; |
1168 |
|
|
1169 |
METHOD seqmod; |
METHOD seqmod; |
1170 |
RUN state.specify; |
RUN state.specify; |
1171 |
state.y[cd.components].fixed := FALSE; |
FREE state.y[cd.components]; |
1172 |
state.phase_fraction['vapor'].fixed := FALSE; |
FREE state.phase_fraction['vapor']; |
1173 |
reboil_ratio.fixed := TRUE; |
FIX reboil_ratio; |
1174 |
IF (equilibrated) THEN |
IF (equilibrated) THEN |
1175 |
state.T.fixed := FALSE; |
FREE state.T; |
1176 |
END IF; |
END IF; |
1177 |
END seqmod; |
END seqmod; |
1178 |
|
|
1289 |
|
|
1290 |
METHOD specify_T; |
METHOD specify_T; |
1291 |
RUN specify; |
RUN specify; |
1292 |
fl1.state.phase_fraction['vapor'].fixed := FALSE; |
FREE fl1.state.phase_fraction['vapor']; |
1293 |
fl1.T := 340{K}; |
fl1.T := 340{K}; |
1294 |
fl1.T.fixed := TRUE; |
FIX fl1.T; |
1295 |
END specify_T; |
END specify_T; |
1296 |
|
|
1297 |
METHOD values; |
METHOD values; |
1402 |
|
|
1403 |
METHOD specify_T; |
METHOD specify_T; |
1404 |
RUN specify; |
RUN specify; |
1405 |
fl1.state.phase_fraction['vapor'].fixed := FALSE; |
FREE fl1.state.phase_fraction['vapor']; |
1406 |
fl1.T := 340{K}; |
fl1.T := 340{K}; |
1407 |
fl1.T.fixed := TRUE; |
FIX fl1.T; |
1408 |
END specify_T; |
END specify_T; |
1409 |
|
|
1410 |
METHOD values; |
METHOD values; |
1516 |
|
|
1517 |
METHOD specify_T; |
METHOD specify_T; |
1518 |
RUN specify; |
RUN specify; |
1519 |
fl1.state.phase_fraction['vapor'].fixed := FALSE; |
FREE fl1.state.phase_fraction['vapor']; |
1520 |
fl1.T := 340{K}; |
fl1.T := 340{K}; |
1521 |
fl1.T.fixed := TRUE; |
FIX fl1.T; |
1522 |
END specify_T; |
END specify_T; |
1523 |
|
|
1524 |
METHOD values; |
METHOD values; |
1662 |
|
|
1663 |
METHOD specify_T; |
METHOD specify_T; |
1664 |
RUN specify; |
RUN specify; |
1665 |
fl1.state.phase_fraction['vapor'].fixed := FALSE; |
FREE fl1.state.phase_fraction['vapor']; |
1666 |
fl1.T := 310{K}; |
fl1.T := 310{K}; |
1667 |
fl1.T.fixed := TRUE; |
FIX fl1.T; |
1668 |
END specify_T; |
END specify_T; |
1669 |
|
|
1670 |
METHOD values; |
METHOD values; |