We would like to use chiantipy for T_e=5000 to 10000 K

17 views
Skip to first unread message

Michihiro Takami

unread,
Apr 20, 2023, 4:21:09 AM4/20/23
to chianti
Hi, I very much appreciate the development team for developing and maintaining this excellent software. Only the issue is chiantipy does not seem to work below T_e < 1e4 K. I am wondering if anyone could easily revise the software and allow us to make calculations for T_e=5000 to 10000 K. It would be tremendously useful for my student's MSc project. Many thanks for your consideration.

Ken Dere

unread,
Apr 20, 2023, 8:59:10 AM4/20/23
to chianti
you can do the following:


fe=ch.ioneq(26)

t=np.linspace(5000, 10000, 11)

fe.calculate(t)

fe.Ioneq.shape
Out[4]: (27, 11)

so that fe.Ioneq is the ionization equilibria for for the 27 fe ions (including the bare ion) for the 11 temperatures.

to use this you would probably need to create a some_name.ioneq files that can be read by ioneqRead().

Yes, it would be a bit of work and we should probably create  such a file ourselves.
hope this works,
Ken

Michihiro Takami

unread,
Apr 21, 2023, 3:04:34 AM4/21/23
to chianti
Tons of thanks for your quick advice, Ken! I have tested it and found that it works.

On the other hand. Here is our jupyter notebook.
We set the temperature in the 4th block of the commands.
Seems like we get an error in the 5th block of the temperature is set to be below 1e4 K.
I am wondering why. We very much appreciate your advice!

Thanks, Hiro

Ken Dere

unread,
Apr 21, 2023, 9:09:57 AM4/21/23
to chianti
the problem is that ionization equilibria are not available at that temperature.  the attribute .Intensity is a dict and here there is an errorMessage in it

I will see if I can put together a python script to run to create an ionization equilibria for a specified set of temperatures.

One thing that you can do is

o1.emiss() and then use o1.emissPlot()

that should at least get you started

regards,
Ken

Michihiro Takami

unread,
May 7, 2023, 8:38:39 PM5/7/23
to chianti
Many thanks for your advice, and sorry for my dalay. I finally had time to read your codes to find that o1.emiss stores the spectra in o1.Emiss['emiss'].
According you code, the unit is ergs s^-1 str^-1, and it does not include elemental abundance or ionization fraction. Does it mean the intensity/flux is given per atom/ion? I'd very much appreciate your advice. Thanks!

Ken Dere

unread,
May 8, 2023, 9:28:10 AM5/8/23
to chianti
Yes, that is true.

I do plan to create a jupyter ipython notebook for creating ionization equilibrium files for a specified set of temperatures but I have been busy

regards

Michihiro Takami

unread,
May 8, 2023, 8:53:55 PM5/8/23
to chianti
Thanks a lot for your reply, Ken! Please take your time for the jupyter notebook. My student still have a lot to do.
Reply all
Reply to author
Forward
0 new messages