-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
Description
Background and Motivation
The current implementation of processes is based on constant mass extraction efficiencies. After every depletion step, the same fraction of a target element is removed from the target material. The longer the timestep, the greater the removed mass of a target element.
Description of idea
We should add functionality to allow for time dependent extraction efficiencies. There are a couple of ways to do this, and their differences may make them more applicable to certain use cases:
- Cycle times: the "cycle time" of a target element is the amount of time it takes for a mass of target element equal to the equilibrium mass of that element to be removed from the system via processing. This way, the extraction efficiency can scale based on the timestep size.
- Functions: for a processing component of finite lifetime that can "fill up" (for example, a filter), the extraction efficiency goes down over time as more of the filter is used up.
- Physics based: There is lots of research
Implementation details
At a minimum, these options will require additions to the input schema, Process classes (and their children), and documentation in the docpages on how to use them.
Potential snags
- We must decide how to handle cycle times when the timestep size is longer than the cycle time. Is cycle time a useful metric if we are simulating a system that is not at equilibrium?
- JSON has limited capability to handle functions, only simple ones could be supported out of the box without needing to build significant additional infrastructure.
- Physics based models of chemical extraction can be complicated and require testing and cross validation.