Replies: 5 comments 11 replies
-
The plug flow reactor unit model (link) in IDAES is a 1D model that can be used for steady-state and dynamic reactor modeling with ODEs. The ODEs are solved as IVPs using solver IPOPT. Following are some tests/examples that show how to use the PFR model: |
Beta Was this translation helpful? Give feedback.
-
We also have tools to allow you to use integrators such as those in the PETSc solver libraries to solve ODEs: https://github.com/IDAES/examples-pse/tree/main/src/Examples/DAE |
Beta Was this translation helpful? Give feedback.
-
Hi all, Thanks for the replies! I imagine that an arbitrary black-box unit operation model (i.e. a python script that defines a function mapping inputs to outputs) is not possible, as that wouldn't play well with Pyomo? These options do seem quite flexible though. |
Beta Was this translation helpful? Give feedback.
-
@adowling2 This surrogate model idea looks interesting, though I haven't used them much myself. If I have an arbitrary black box model in python that solves quite quickly (say < 1s), and takes a few scalars as input and spits a few scalars out as outputs, would it be reasonable to train a surrogate model that can mimic this model & is usable in IDAES? Honestly, I'd be happy with a spline fit if that were usable in IDAES :) There seem to be a lot of surrogate modeling tools in IDAES (ALAMO, PySMO, Keras, etc.) Is there one in particular that would work for this application? |
Beta Was this translation helpful? Give feedback.
-
Hi all, Best wishes, |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm interested in developing custom, 1D reactor models (e.g. steady state catalytic packed bed reactor with heat- and mass-balances, 1D absorber models, 1D+time unsteady state pressure swing adsorption models, etc.) I would normally use specialized DE solvers in scipy or DifferentialEquations.jl to solve these systems (via Method of Lines, or specialized IVP or BVP solvers, depending on the problem) but our project is considering using the IDAES framework, due to the integration with pyomo. In the examples I have seen, the custom models still follow quite a 'rigid' form; they don't allow you to define an arbitrary python function which utilizes complex packages (e.g. scipy) and provides a vector output. Is this impression correct? Is the IDAES framework flexible enough to handle 1D ODE problems solved with arbitrary solvers? Even a simple example with a 1D plug flow reactor would be very useful. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions