While discussing where to store the Gaunt factor for Bremsstrahlung emission model in #352, @Mateasek proposed to create a subpackage cherab.default_data to store the default atomic data distributed with Cherab.
This was agreed, but the question remained whether the third party atomic data sources, like OpenADAS, should inherit from the core AtomicData interface or from the DefaultAtomicData interface.
I think that the third party data sources should inherit from the DefaultAtomicData, because the DefaultAtomicData may contain the data not present in the third party data source. For example, DefaultAtomicData has the Gaunt factor needed for bremsstrahlung, but lacks atomic rates, while OpenADAS, if inherited from the core AtomicData, will have the rates but not the Gaunt factor. Therefore, it will not be possible to simulate, for example, spectral line emission on top of the bremsstrahlung background without initializing line emission models with OpenADAS and Bremsstrahlung model with DefaultAtomicData. But the most convenient way to use atomic data is by connecting it to the Plasma object and thus using the same data source for all models.
We may run into a case when both the DefaultAtomicData and the OpenADAS contain data for the same physical quantity. For such a case we may add a parameter override_default to OpenADAS, which, if True, will use the OpenADAS data, and if False, the default data.
@Mateasek, @jacklovell, what do you think?
While discussing where to store the Gaunt factor for
Bremsstrahlungemission model in #352, @Mateasek proposed to create a subpackagecherab.default_datato store the default atomic data distributed with Cherab.This was agreed, but the question remained whether the third party atomic data sources, like
OpenADAS, should inherit from the coreAtomicDatainterface or from theDefaultAtomicDatainterface.I think that the third party data sources should inherit from the
DefaultAtomicData, because theDefaultAtomicDatamay contain the data not present in the third party data source. For example,DefaultAtomicDatahas the Gaunt factor needed for bremsstrahlung, but lacks atomic rates, whileOpenADAS, if inherited from the coreAtomicData, will have the rates but not the Gaunt factor. Therefore, it will not be possible to simulate, for example, spectral line emission on top of the bremsstrahlung background without initializing line emission models withOpenADASandBremsstrahlungmodel withDefaultAtomicData. But the most convenient way to use atomic data is by connecting it to thePlasmaobject and thus using the same data source for all models.We may run into a case when both the
DefaultAtomicDataand theOpenADAScontain data for the same physical quantity. For such a case we may add a parameteroverride_defaulttoOpenADAS, which, ifTrue, will use theOpenADASdata, and ifFalse, the default data.@Mateasek, @jacklovell, what do you think?