Skip to content

Move the line shape models to a submodule #396

Description

@vsnever

The lineshape.pyx already contains almost 1000 lines of code and the implementation of #393 will bloat it even more. I think it's time to create a separate submodule for line shape models. Here is a suggested file structure, with an indication of which class/function goes where. This change will not affect user code.

cherab/core/model/lineshape/
├── beam/
│ ├── __init__.py
│ ├── __init__.pxd
│ ├── base.pyx <-- BeamLineShapeModel
│ ├── base.pxd
│ ├── mse.pyx <-- BeamEmissionMultiplet
│ ├── mse.pxd
├── __init__.py
├── __init__.pxd
├── base.pyx <-- LineShapeModel
├── base.pxd
├── doppler.pyx <-- doppler_shift, thermal_broadening
├── doppler.pxd
├── gaussian.pyx <-- add_gaussian_line, GaussianLine
├── gaussian.pxd
├── multiplet.pyx <-- MultipletLineShape
├── multiplet.pxd
├── stark.pyx <-- StarkBroadenedLine
├── stark.pxd
├── zeeman.pyx <-- ZeemanLineShapeModel, ZeemanTriplet, ParametrisedZeemanTriplet, ZeemanMultiplet
├── zeeman.pxd

@jacklovell, @Mateasek, if you agree, I'll make the change along with implementation of #393.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions