Skip to content

Add an option to use Henke tables from 30 eV onwards #477

Description

@treegardel

Is your feature request related to a problem? Please describe.

The current refractive-index lookup prioritizes Palik data whenever the requested energy is within the Palik table range. This makes it difficult to use the Henke tables for simulations above 30 eV, even though Henke data is well suited for this energy range.

We also want to compare our calculated refractive indices directly with the official Henke/CXRO database. Supporting this selection is also required to match the existing behavior of RAY-UI.

Users currently have no runtime option to select Henke data preferentially.

Describe the solution you'd like

Add an optional command-line switch:

rayx --henke-above-30ev simulation.rml

When enabled, the refractive-index lookup should use:

Energy < 30 eV:   Palik → Cromer
Energy >= 30 eV:  Henke → Cromer

Without the switch, the current default behavior should remain unchanged:

Palik → Henke → Cromer

The option should be documented in the command-line help output.

Describe alternatives you've considered

  • Replacing the Palik tables globally with Henke tables. This would remove useful Palik data below 30 eV.
  • Changing the default priority permanently. This could alter existing simulation results and reduce reproducibility.
  • Adding a material-specific configuration. This would be more flexible but also more complex than needed for the initial use case.
  • Using an environment variable instead of a command-line option. A command-line switch is more explicit and easier to document in simulation workflows.

Additional context

The Henke tables are stored in Data/nff and are based on the data by Henke, Gullikson, and Davis. The official CXRO database provides a reference for directly validating the calculated refractive indices.Henke/CXRO database.

The requested behavior should be consistent with RAY-UI.

The option should apply consistently to both CPU and GPU tracing. Table lookups must not extrapolate outside the valid energy range of the selected table.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-enhancementCategory: Adding a new feature

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions