-
Notifications
You must be signed in to change notification settings - Fork 31
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
indentation issue/logic issue in core/Ions.py #286
Comments
I think the piece of code I referred to needs to be changed such that if either setup is not True or the ion is not in the masterlist, then self.Temperature and self.Ntemp must be defined and setupIonrec() must be called. so here's my code snippet:
I could make a pull request if you want. Jon |
Hi Jon,
thanks for pointing this out.
Yes, a pull request would be great.
thanks,
Ken
On 10/5/20 4:13 PM, Jonathan Slavin wrote:
I think the piece of code I referred to needs to be changed such that
if either setup is not True or the ion is not in the masterlist, then
self.Temperature and self.Ntemp must be defined and setupIonrec() must
be called. so here's my code snippet:
|if setup and self.IonStr in chdata.MasterList: self.IoneqAll =
chdata.IoneqAll # this needs to go after setting temperature and
reading ionization # equilibria # needs to know self.NTempDens first
self.argCheck(temperature, eDensity, pDensity, em) self.ioneqOne()
self.setup() else: if verbose and (self.IonStr not in
chdata.MasterList): print(f' ion {self.IonStr} not in masterlist, just
various' ' attributes, ionization, recombination rates') if
np.any(temperature) is not None: self.Temperature =
np.atleast_1d(temperature) self.Ntemp = self.Temperature.size
self.setupIonrec() |
I could make a pull request if you want.
Jon
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://secure-web.cisco.com/1ffGeobM4WIlSFF6ZU5cYvadAUkggQ1OcwMha-XIIWyyQMnN1bSTFot2cqJU5gUYKUIk68cpmb--NzG9E2bgZRUBpQmup2Xx5rRZ8gVzjLwxTgUgW8UNO6eH5e5B77U4_MxrnTO-63wu9QEs1JdAsfNpXZFaiOJEH0N_nn4FsdK59g8EddVM12pqxIapmXyyvNMDxMLi9BDcp7xpX0IOnH60NbyApevpV2UK6SUVr3sPiw4vhLeNXxPp0QPesoAkXZUiozPiNrb4IObrIhjq7qrA2RkKKJPdB431KaWrp_wmkdZZxduVqOF9ksL8r8ptZkBjh4Ai0n5DmsK5u0GeLcavILZoUBMplqD6f92grpco1bZRGClXMfN5zvnTF3g8OBRK2_5P3h_uJGKCK07Cok7ohYN7byiF6Q8bBTC_Y0d_33SyTIMz8b-vlJQ1EDaM4/https%3A%2F%2Fgithub.com%2Fchianti-atomic%2FChiantiPy%2Fissues%2F286%23issuecomment-703863181>,
or unsubscribe
<https://secure-web.cisco.com/1m00qoVt6tEZCl9IXOD7qoUb1_mGrMbubesuPsz_pnMC5_MMEAf0MZI5CCiavDS9u2HSQmlQD7GqwFWQTpfiuGotLI8cVmBQbS5euZM0OPB9EgCRrG0nOAB285S7DcsslkaAZGE1e-EibcmJURukC4dS18ycz4j!
u2wDhFqh9q1o07H4ZCqo3NGHY-xQX1BfHJvkloEOwFoG8gMZlz_XLDfRdu3mM7icjakPip9ziUjhu-gvNafqJC_iBODXe9mKaz3uXC4UoFqAxF3RvAG5-Gp7zRCOM7HrZef66iyn3xkQKMMSMVUnK_IUmASIECF1kXM7bJHRGuNZW9dzzPEJEeHXkQRyPN23ZG5ZxmH-AcIpUxDJKl5-9wDmeebG_FRxkZGs5qBOdjyrFDTv2ap5PqSt3rDSryGtD0mfG65hNVnPic7_8mP00WC-tgNBSCT2YJ/https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAFUQVWWP3MBVJ6XZZT37I3SJISGXANCNFSM4SFCEI5A>.
--
Kenneth P. Dere
Research Professor of Solar Physics
Department of Physics and Astronomy
George Mason University
[email protected]
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi Ken et al.,
I think I found a bug in core/Ions.py
It's in the if block that starts on line 149:
if setup:
if self.IonStr in chdata.MasterList:
...
else:
if verbose:
print(' ion %s not in masterlist, just various attributes, ionization, recombination rates'%(self.IonStr))
So, currently if setup is False and verbose is True it will print a message that the ion is not in masterlist. I think what is intended is for that block to be indented one level more. Then there is the question of the indentation of the next statements, which as currently written execute only if setup is False:
if np.any(temperature) is not None:
self.Temperature = np.atleast_1d(temperature)
self.Ntemp = self.Temperature.size
self.setupIonrec()
Was it intended that these be executed when ion is not in masterlist?
I ran into this because if you create an instance of ion with 'mg_1' as the ion, and then invoke the recombRate() method, you get an exception because the temperature is not defined.
I'm not sure what the proper behavior in this case is, but it seems clear that the current code is not correct.
Jon
The text was updated successfully, but these errors were encountered: