Cantera / enhancements

Repository for proposed and ongoing enhancements to Cantera
11 stars 5 forks source link

Implement superelastic electron-collision plasma reaction #192

Open BangShiuh opened 6 months ago

BangShiuh commented 6 months ago

Abstract

Adding superelastic electron-collision plasma reaction. The steps to calculate this rate are,

  1. Calculate the inverse cross-section
    \sigma^{inv} = \frac{\epsilon + U}{\epsilon} \sigma(\epsilon + U)

    U is the threshold of inelastic collision.

  2. Calculate the rate coefficient
    k^{inv}_k = \gamma \int^\inf_0 \epsilon \sigma_k^{inv} f_0 d\epsilon

Motivation

This type of reaction is important for low-temperature plasma, especially when the electron energy is low. The idea is that collisions between low-energy electrons and the excited species can heat the electron. This is implemented in BOLSIG+.

Possible Solutions

Option1: Similar to the electron-collsion-plasma reaction Option2: Use reversible reaction. This will require a customized reverse reaction rate coefficient. We need evalKrFromStruct (similar to evalFromStruct). https://github.com/BangShiuh/cantera/tree/collision-reaction-reverse

References

https://www.bolsig.laplace.univ-tlse.fr/manual.html

Links to related Pull Requests, GitHub Issues, Users' Group topics, or other relevant material.

BangShiuh commented 6 months ago

@speth @ischoegl I am thinking of implementing evalKrFromStruct for customized reverse rate coefficients. The motivation is that the traditional reverse rate does not apply to plasma reaction such as TwoTempPlasmaRate or ElectronCollisionPlasmaRate. Since evalFromStruct is required for every rate, evalKrFromStruct can also be like that or we need a way to have a default evalKrFromStruct to use the traditional reverse rate coefficient. What do you think?

speth commented 6 months ago

I've actually been working with @decaluwe and @korffdm on a feature to allow customization of both forward and reverse rate constants, with the initial focus being on electrochemical reactions. I think the following usage outline that I shared with @korffdm should get you started (just replace "ButlerVolmer" with whatever name you want to use, and adjust the calculations accordingly):

I hope this works well for implementing what you need.

BangShiuh commented 5 months ago

@speth I made a small fix so that the rate constant information is correct (this should be only for the information). https://github.com/BangShiuh/cantera/commit/56805fb51df0384f5af000f0667c84bc3d5b147b. Hope this does not impact the performance of updateROP too much.