bendudson / hermes-3

Multifluid drift reduced fluid model
GNU General Public License v3.0
37 stars 18 forks source link

Simple_conduction crashes/extreme poor performance #170

Open mikekryjak opened 1 year ago

mikekryjak commented 1 year ago

SOLEDGE2D has a simple conduction model where only ee and ii collisions are used for the electron and ion conductivity, respectively. Hermes-3 includes all of the collisions of a given species by default when the thermal_conduction flag is enabled in evolve_pressure. This includes charge exchange as well as any collisions enabled in the collisions component (by default, it has ee, ii, ie, nn, en and in enabled, so all of them).

I have disabled the flag thermal_conduction and added a new species-level component simple_conduction for both the ions and the electrons. This outright crashed my full and low res cases (CVODE -4 flag, meaning solver failure).

I tested it in 1D-recycling, and I did get it to run. However, I am seeing a slowdown of ~200x. I've only got three timesteps so far, and each one has taken longer than the previous one. The results appear to move in the right direction, i.e. improve conduction due to a reduction in collisions considered, both in the ions and the electrons: image

However, upon inspecting the target I found a serious anomaly in the electron pressure: image

This is also visible in the same way in the ion pressure as well as ion momentum and points to something being wrong in the boundary.

Here is the input file I used (just 1D-recycling with the above changes): input_file.zip

johnomotani commented 1 year ago

Does the calculation your sheath boundary condition for energy flux use the definition of 'conduction'? It might need changing to be consistent with your new conduction model?

mikekryjak commented 1 year ago

Hi @johnomotani, the conduction model prevents any heat flux through the boundary as this is done through a sink created in sheath_boundary. As far as I can tell, simple_conduction has the same bits in it as the model in evolve_pressure... To your point though, it's probably a good idea to see what happens to sheath heat flux when I change the model, maybe there are more clues hiding there.

mikekryjak commented 3 months ago

I think this PR makes simple_conduction redundant https://github.com/bendudson/hermes-3/pull/195