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

Add 2D-GRM #3

Open
4 tasks
schmoelder opened this issue Feb 28, 2022 · 1 comment · Fixed by #73
Open
4 tasks

Add 2D-GRM #3

schmoelder opened this issue Feb 28, 2022 · 1 comment · Fixed by #73
Labels
enhancement New feature or request feature parity good first issue Good for newcomers

Comments

@schmoelder
Copy link
Contributor

schmoelder commented Feb 28, 2022

In CADET-Core, a 2D General Rate Model is available. Moreover, other 2D units are being developed, such as MCT. To support these in CADET-Process, ports need to be added to the FlowSheet.

This is, however, not trivial since flow rates are treated differently in CADET-Process than they are in CADET-Core. While in CADET-Core, all flows between units are always explicitly specified, in CADET-Process they are automatically determined in a preprocessing routine. Here, the concept of output_state is introduced which specifies the ratio of all outgoing flows. Consider the following FlowSheet:

graph LR
    A[Inlet] -->B[Column]
    B -->|0.5| C[Outlet A]
    B -->|0.5| D[Outlet B]
Loading

The flow entering the column is split 50/50 to Outlets A and B, respectively.

A 2D unit has multiple inlet ports. Here there are several options:

  • Option 1: Expose the ports on FlowSheet level s.t. users can explicitly define flow from certain upstream units to the corresponding port and then from the outlet port to specific downstream units.
  • Option 2: Treat the inlet as a single port which distributes all incoming flow according to some internal input_state which is recombined at the column outlet before being sent to downstream units according to the unit's output_state

Option 1 is more flexible but also more complicated to setup. Also, what's the notion of an output_state here? Should there be an output state per port?

Option 2 is simpler but also less flexible.

  • Handling of nrad in CadetAdapter
  • Translation between nrad and nports
  • Adding nrad to create_LWE
  • Tests
@schmoelder schmoelder added enhancement New feature or request feature parity good first issue Good for newcomers labels Feb 28, 2022
@hannahlanzrath
Copy link
Collaborator

I think personally I'd go with Opt 1 here to keep everything explicit and flexible.

@schmoelder schmoelder mentioned this issue Nov 28, 2023
17 tasks
@jbreue16 jbreue16 mentioned this issue Jul 17, 2024
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature parity good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants