raysect / source

The main source repository for the Raysect project.
http://www.raysect.org
BSD 3-Clause "New" or "Revised" License
89 stars 23 forks source link

Proposal: inhomogeneous absorption #417

Open MMoscheni opened 1 year ago

MMoscheni commented 1 year ago

Dear Raysect team,

currently Raysect provides a class to create an inhomogeneous radiation emitter, i.e. InhomogeneousVolumeEmitter.

By relying on the linear attenuation law (Lambert-Beer), the integrated emission between two consecutive samples in InhomogeneousVolumeEmitter can be attenuated of an appropriate factor depending on local material properties (specified by an absorption_function_3d() to be defined by the user). This would therefore model an absorbing material, e.g. a plasma with respect to the radiation emission therein.

Quoting the wise strategy suggested by @vsnever (from this issue):

What do you think? Thank you! Cheers, Matteo

CnlPepper commented 1 year ago

Unfortunately it is not as simple as suggested. Volume integration through overlapping volumes, containing a mixture of absorption and emission would not correctly integrate. The volume handling needs to be completely rewritten to perform a piecewise integration from every volume simultanously, not one after the other as it is currently implemented. This was planned for v1.0, but it is a breaking change and would require cherab's materials to be completely rewritten.

CnlPepper commented 1 year ago

See #357.