lmmentel / mendeleev

A python package for accessing various properties of elements, ions and isotopes in the periodic table of elements.
https://mendeleev.readthedocs.io
MIT License
225 stars 43 forks source link

Optical properties #173

Closed goodwin2208 closed 3 months ago

goodwin2208 commented 3 months ago

Mendeleev is an awesome tool for many parameters I need for my scientific coding. It is great!

I currently have to pull data for atomic scattering and calculate the optical properties from a government site by atom on a case-by-case basis, which is tedious. It would be awesome for Mendeleev to have the optical constants for every element based on energy. Here is the widely used database based on photon energies for atomic scattering: https://henke.lbl.gov/optical_constants/asf.html

And here are the equations to go from atomic scattering to optical constants: image

Of course, the database doesn't cover emergent properties like how silica is transparent but it is a good tool, just like density lookups. The Henke model for optical constants is the most widely used but there are several others. Even with just the atomic scattering factors my projects would be much smoother.

lmmentel commented 3 months ago

Thanks for the suggestion and attaching the data source. It should be possible to add this as a feature. Could you describe how you would use this?

goodwin2208 commented 3 months ago

I use these factors to calculate the light penetration depth. They are also used to find the amount of light reflected from the material, total internal reflection, how much light bends when entering the medium, and the speed of light in the medium. Everything you can think of with Snell's law or refractive indexes.

I would love to contribute to the package but I do not have the programming skills.

lmmentel commented 3 months ago

I have already added the data for all available elements in a pull request #174. You can check the code example there to see how the data will be made available for each of the elements.

If there are properties that could be useful to calculate on top of that data we can consider adding them as well. Do you have exact formulas, preferably with units we could use here?

lmmentel commented 3 months ago

I closed this since the scattering factors data is already added. Please open a separate issue for any additional property you would like introduced based on these or other data.