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

Discretization for one-dimensional flame #31

Open
jiweiqi opened this issue Apr 2, 2021 · 9 comments
Open

Discretization for one-dimensional flame #31

jiweiqi opened this issue Apr 2, 2021 · 9 comments
Assignees

Comments

@jiweiqi
Copy link
Contributor

jiweiqi commented Apr 2, 2021

Goal:

implement the discretization for one-dimensional flame, then one can compute the residuals and the sensitivity for a given solution. Further, one can also solve the equations.

Equations:

see Chemkin manual Sec. 12.6

Notes:

similar to the one did for sensBVP for ignition, but more complex with the central difference.

@jiweiqi
Copy link
Contributor Author

jiweiqi commented Apr 4, 2021

Detailed plans

  • build the protocol of calling Cantera from Julia to calculate flame speed
  • adapt ReacTorch's transport property API to get the transport properties in Julia
  • implement residual functions (A) or directly calculate the block banded Jacobian as did for auto-ignition (B). For plan A, it should be fast enough for very compact mechanisms. For plan B, may need to pay attention to the Central Finite-Difference.

@jiweiqi jiweiqi self-assigned this Apr 4, 2021
@jiweiqi
Copy link
Contributor Author

jiweiqi commented Apr 19, 2021

@jiweiqi jiweiqi pinned this issue May 5, 2021
@TJP-Karpowski
Copy link
Contributor

Hi,
I see you started already with the 1D flame. I am also interested in that capability. In your repo I dont see any usage of the DiffEqOperators. Out of curiosity, what made you decide not to use them? I thought it would fit the task quite nicely and might enable the usage of the broader SciML Ecosystem later on.

@jiweiqi
Copy link
Contributor Author

jiweiqi commented May 9, 2021

Are you referring to the repo of https://github.com/DENG-MIT/Arrhenius_Flame_1D/blob/main/src/flame_1d.jl

I haven't tried DiffEqOperators, but I think it is worth trying. I didn't decide not to use them.

I don't have much recent hands-on experience in implementing the discretization scheme. So that I thought it might be a good start to implement it manually. Another consideration is that one-d flame involves a complex scheme for diffusion term. See sec. 12.6 of https://personal.ems.psu.edu/~radovic/ChemKin_Theory_PaSR.pdf. I am not sure if DiffEqOperators support such a scheme.

By the way, currently, I am not using the scheme detailed in the Chemkin manual to evaluate the residuals. It seems that a simple windward difference seems to give wrong residuals. if you have experience with the finite difference scheme used in one-d flame or DNS, it will be great we can have some discussions to resolve the issue.

@RSuryaNarayan
Copy link
Contributor

So we are skipping this entirely or are we pushing it further down the lane?

@jiweiqi
Copy link
Contributor Author

jiweiqi commented May 9, 2021

@RSuryaNarayan , I am working on implementing the finite difference scheme thoseday. Hope fully get it to work next week.

@RSuryaNarayan
Copy link
Contributor

Sure @jiweiqi sounds good

@jiweiqi
Copy link
Contributor Author

jiweiqi commented May 13, 2021

@RSuryaNarayan
Copy link
Contributor

Ah looks great!

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

No branches or pull requests

3 participants