Git Product home page Git Product logo

Comments (9)

kdere avatar kdere commented on July 19, 2024

I think this was an attempt to mimic the CHIANTI way of doing things but I did it very early on. The 2 Emiss methods are probably only rarely used and should just populate different dictionaries. I think the best way to resolve this is to create different dictionaries. It is easy to recover from the change if we do it this way.

from chiantipy.

wtbarnes avatar wtbarnes commented on July 19, 2024

Ok so then it there would only be two methods:

  • freeFree
  • freeBound
    and depending on the kwargs, each would populate one of two dictionaries per method:
  • FreeFreeEmiss or FreeFree
  • FreeBoundEmiss or FreeBound

Another option would just be to add these as different keys to the same dictionary. This might be a bit cleaner. Or, alternatively, just let the user multiply by the ionization equilibrium and/or abundance since this information is already available to them. So then each method only returns one dictionary with one piece of information.

from chiantipy.

kdere avatar kdere commented on July 19, 2024

I think it is best if ChiantiPy takes care of multiplying by the abundance and ionization equilibrium. Otherwise, it causes the user a certain amount of dog-work that can be easily avoided

from chiantipy.

wtbarnes avatar wtbarnes commented on July 19, 2024

Ok that seems to make sense.

So just to make sure I understand this correctly:

  • the methods suffixed with "Loss" include ionization equilibrium and abundance but not emission measure
  • the methods suffixed with "Emiss" do not include the ionization equilibrium or the abundance or the emission measure
  • the methods without any suffix include the ionization equilibrium, abundance, and emission measure

Is this correct?

from chiantipy.

kdere avatar kdere commented on July 19, 2024

right now we have the methods freeFree, freeFreeEmiss, freeFreeLoss, an so on for freeBound

freeFreeEmiss calculates the free-free spectrum a for a given ion --it does not include the abundance, ionization equilibrium or emission measure.
freeFree calcuates the spectrum for a give ion and includes the abundance and ionization equilibrium and emission measure as specified - the emission measure is specified in the continuum init method.
freeFreeLoss calcuates the energy loss of a given ion and includes the abundance, ionization equilibrium BUT NOT the emission measure. It probably should include the EM if is specified.

A lot of editing needs to be done in the Continuum class, for example many of the defaults or 0 (zero) for False or None and they should be explicity be set to that and then check how things propagate through the code.

Does this make sense?

from chiantipy.

wtbarnes avatar wtbarnes commented on July 19, 2024

Ok I see now.

So then how do these methods compare with the output of the CHIANTI IDL continuum methods? Presumably, if one was to add the output of continuum.freeFree (continuum.freeBound) for all ions, you should get the same answer as that produced by FREEFREE (FREEBOUND)?

from chiantipy.

kdere avatar kdere commented on July 19, 2024

ChiantiPy is not meant to be a duplicate of CHIANTI. Another issue is that I have not implemented the relativistic free-free cross-sections of Itoh so the free-free is the non-relativistic result based on Sutherland.

from chiantipy.

wtbarnes avatar wtbarnes commented on July 19, 2024

Ok. Just trying to understand the differences between how IDL and ChiantiPy do the continuum calculation.

I think some of my confusion stems from the fact that the docstrings for a lot of the continuum methods are a bit confusing. It looks like I was last to edit these so I seem to only have myself to blame! This is all a bit more clear now so I will try to clean those up a bit and clarify some of the confusion soon.

from chiantipy.

wtbarnes avatar wtbarnes commented on July 19, 2024

Closed by #114

from chiantipy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.