Dear Simon,
The handling of the constant data is completely up to the
implementation of the specific scatterers.
For the ScatteringParticle class, for example, this is provided when
the object is constructed.
So when the ARTS user calls:
scattering_speciesAddScatteringHabit(...)
an object is created which will hold the scattering data. It will then
use it when asked to
compute the bulk scattering properties. Since the
calculate_bulk_properties(...) method
is called on this object, it automatically has access to the required
data.
Ah, yes. That is a great solution. Perhaps I could do the same for the
absorbers. But I would have to break up the methods so that they are
standalone for each absorption tag. Right now, the method that does LBL,
for example, will calculate for all the LBL absorption tags, using a
common workspace variable for the line catalog (which is internally
split by species). All the housekeeping around this is a lot of trouble.
Perhaps it would be better to always run it just for a single absorber,
and use a technique similar to yours to set up the list, so that each
absorber gets the line list he needs. (And similarly for the other types
of absorption.)
/Stefan