-
Notifications
You must be signed in to change notification settings - Fork 5
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
A Differentiable Reacting Flow Simulation Package in PyTorch #49
Comments
Thanks @jiweiqi! Sounds really cool. I'm glad you're able to take advantage of YAML, that's one of the reasons we wanted to introduce that format. If there are any changes that would make your work easier, feel free to propose them |
Hi @jiweiqi I wish we could standardize everything, but alas, we can't control that. There are also some good benefits of matching the input to the output, such as being able to directly compare and make sure the output is correct. What we might be able to do is provide a |
@jiweiqi ... I believe some of the rationale you provide in DENG-MIT/reactorch/issues/5 falls short. As you write:
Reimplementing the 'second category' is de facto reimplementing the core of what Cantera intends to be (cantera means 'quarry' in spanish, and there really is the intent to provide 'buidling blocks' to the research community). The first category you mention are really examples for what can be done with Cantera (they are labeled as 'examples' for a reason). Without the second category, there is no first. |
@jiweiqi ... I don’t think that needs of machine learning and more ‘traditional’ approaches are as different as you make them sound. If you are willing to dig a little deeper, all sides ultimately need the exact same tools that you decided aren’t worth pursuing within what you perceive as a ‘legacy’ framework. Your preference is certainly faster for short term goals, and I understand that the lab is new. Keeping it going for the long haul will be the real task. |
To mention one of the aspects of your manuscript, Quasi-Steady-State-Assumptions (QSSA) aren’t specific to PINN (nor is the concept new, see work at UConn). To your point: if it’s not part of Cantera (which it isn’t at the moment), be part of the discussion and just pitch in. In return, you’ll be able to leverage others’ work in the long run. |
I don't want to squash helpful discussion, but would like to make a reminder that we expect everyone to contribute to creating a positive environment, so even bystanders and others reading but not participating in the discussion feel like it's a welcoming place. Examples include:
|
@jiweiqi ... no problem, I do see that we have differing viewpoints as @rwest clearly recognized. I never intended to sound harsh myself (but am not a native speaker either). I hope you know that I believe your work has merit despite our disagreements. ReacTorch is of course a legitimate Cantera application. |
@jiweiqi ... truly happy that you opened #82 - I was hoping to see a discussion along those lines. Regarding your comments about gaps in Cantera's Python API that you may have referenced to in #81, please let me know specifics. I believe there's a lot of value to make sure that all kinetic parameters are properly exposed, so a re-interpretation of a YAML input file should not be necessary within ReacTorch (the value proposition is not specific to ML, and the entire community will benefit). I know the code-base well, and exposing parameters available in C++ to the Python front end is not too difficult. |
Not in a single call, but it's not difficult: [([gas.n_atoms(sp, el) for sp in ['CH4', 'H2', 'H2O']], el) for el in 'CHO'] |
For accessing gas = ct.Solution('gri30.yaml')
rxn = gas.reaction(2) # Reaction 2 is an elementary reaction
rr = rxn.rate # Arrhenius class holding rate parameters
A, b, e = rr.pre_exponential_factor, rr.temperature_exponent, rr.activation_energy
rxn = gas.reaction(0) # Reaction 0 is a threebody reaction
rxn.efficiencies # third-body-efficiencies
rr = rxn.rate # Arrhenius class holding rate parameters
rxn = gas.reaction(303) # Reaction 303 is a falloff reaction
rr = rxn.low_rate # Arrhenius class holding parameters
rr = rxn.high_rate # Arrhenius class holding parameters I'm not certain that everything that is available in C++ is accessible from Python, but as I said it's relatively straightforward to add to the API. |
That will work, just like |
The I might suggest that questions about how to use Cantera are a better fit for the Users' Group than threads attached to this or any other enhancement post. |
Delete to avoid unintentional advertising of unrelated stuffs
The text was updated successfully, but these errors were encountered: