Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Status and roadmap #15

Open
viniviena opened this issue Oct 24, 2024 · 6 comments
Open

Status and roadmap #15

viniviena opened this issue Oct 24, 2024 · 6 comments

Comments

@viniviena
Copy link
Collaborator

viniviena commented Oct 24, 2024

1. Current status

Currently, we have a working version of a dynamic CSTR (branch: vini/newsyntax) using Clapeyron.jl for property prediction, specifically for density and enthalpy calculations. This implementation can serve as a basis for other unit operations, as many of them share common features. Essentially, most unit operations can be reduced to a drum with thermodynamic constraints—such as constant volume or constant pressure—and an internal sink or source, like reaction or mass transfer.

I am now working on the implementation of a dynamic flash drum. You can find the relevant reference here: Dynamic Flash Drum Article. Any assistance with this would be greatly appreciated.

2. Missing Functionalities in ProcessSimulator

  • Transport Properties Estimation Library: This is a critical missing component.
    • Alternative: EntropyScaling.jl can be used as a substitute and already includes a Clapeyron extension.
    • Predictive Capabilities: It provides predictive capabilities for certain classes of compounds. (Which ones? This needs to be clarified).

3. Future Directions for ProcessSimulator.jl

Framework Style

  • Should the project follow the style of OMCHEMSIM, which includes generic unit operations for steady state simulation?
    • Examples:
      • Upstream: Reactors (CSTR, PFR)
      • Downstream: Flash, Distillation Column (in steady-state mode)

Dynamic Mode

  • Should we initially aim for a dynamic process simulator rather than focusing on steady-state like OMCHEMSIM?

3. Focus Areas for Initial Development & Adoption

  • Which segment of process engineering should we target first to encourage adoption?

    Biopharma

    • Reference: A Plant-Wide Dynamic Model of a Continuous Pharmaceutical Process.

    Process Intensification in CCS

    • Reference: GRAMS: A General Framework Describing Adsorption, Reaction, and Sorption-Enhanced Reaction Processes.

    Electrochemical Processes

    • (Need to identify relevant references).

    Biofuel Production

    • Reference: Dynamic Modeling and Plantwide Control of a Production Process for Biodiesel and Glycerol (this includes Modelica code).
@Sush1090
Copy link

Hello,
In part 3 of this issue four engineering extensions of this package are mentioned.

I wanted to know if is there any interest of extending this to thermodynamic cycles as well (Thermal Systems)?
JuliaSim already has an proprietary HVAC library, but I ask from a stand point of energy generation cycles like Oragnic Rankine Cycle.
For ref: paper, link

@viniviena
Copy link
Collaborator Author

Hei @Sush1090,

That would definitely be a great feature to have. I actually think there's already one test on thermodynamic cycles that @se-schmitt did. He could speak more about it.

https://github.com/SciML/ProcessSimulator.jl/blob/main/test/base/simple_steady_state.jl

@se-schmitt
Copy link
Contributor

Hi @Sush1090, very interesting! There are certainly some overlaps (all of the fluid handling components) which might make it easy to also apply this package to ORC at some point. However, the current components are still very simple.

@Sush1090
Copy link

Hello @se-schmitt,
I also believe that there is some overlap.
I have some local code which can simulate ORC with Clapeyron.jl . A very short simple case with simple components as well. I can send this.
Hence if possible there can be an extension of ProcessSimulator.jl to thermodynamic cycles (ORC, vapour compression etc ..).

I think the current simple components are a nice starting point for this. The base components needed for cycles would be:

  1. Compressor
  2. Pump
  3. Evaporator
  4. Condenser
  5. Heat transfer fluids
  6. Thermal Storages

If I am correct, there are currently additional implementations been done in Clapeyron.jl for different flash computations which can allow the @connector node variables to be based around pressure and enthalpy so as to represent state points in 2 phase as well.

@se-schmitt
Copy link
Contributor

Sure, would be nice to see your code. An extension for ORC might be a good option. The two-phase calculations need some attention, especially for separation units. We could also use this then for these components.

@Sush1090
Copy link

I have put a small script in here Github link

For now there are no two-phase calculations as all state point are either gas or liquid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants