Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Realistic laser excitation profiles #1

Open
AvonReppert opened this issue Feb 21, 2018 · 2 comments
Open

Realistic laser excitation profiles #1

AvonReppert opened this issue Feb 21, 2018 · 2 comments

Comments

@AvonReppert
Copy link

Udkm1Dsim is a great package when it comes to simulating heat flow and the resulting lattice response after the laser excitation. However the provided laser excitation pattern has the weakness that it often only assumes Lambert-Beer like exponentially decaying intensity profiles.

In bi- or multilayer thin films it is known that the absorption profiles differ strongly from Lambert-Beer behavior due to interference, multireflections and possibly negative real parts of the refractive indices
For discussions see for example:
As the authors of Khorsand, A. R., et al. Nature materials 13.2 (2014): 101. beautifully phrased it:
"Knowledge of the exact absorption profile is crucial to disentangle thermal and non-thermal phenomena [...]" in a response to Eschenlohr, A., et al. Nature materials 12.4 (2013): 332.

A full transfer matrix calculation of the excitation pattern and the resulting energy deposition is highly desirable to make the simulations more realistic. A scheme for a correct absorption profile calculation has been proposed in the publication by Windt, David L. "IMD—Software for modeling the optical properties of multilayer films." Computers in physics 12.4 (1998): 360-370.

This has already been implemented by Loïc Le Guyader in a multilayer absoprtion package based on on the method by K. Ohta and H. Ishida, Appl. Opt. 29, 2466 (1990) and successfully applied in Co/SmFeO3 heterostructures see (Phys. Rev. B 87, 054437 (2013)).
Other implementations in python also exist (see https://pypi.python.org/pypi/tmm ).

It would be very enriching to this package if one would have the option to use the more realistic excitation pattern based on the complex index of refraction for each of the constituent materials.
Inferfacing excisting codes with the udkm1Dsim toolbox would strongly facilitate realistic simulations of the energy flow and lattice response of laser excited thin film samples.

@dschick
Copy link
Owner

dschick commented Feb 21, 2018

I fully agree! Altough the difference between matrix-formalism and Lambert-Beer's law strongly depends on the system and is especially important for gold.

There should be also a MATLAB algorithm available by André Bojahr to calculate the optical reflectivity and transmission in a matrix formalism. Maybe this can be used in addition to the above stated methods.

The unitCell class already features optical constants as a property (optRefIndex vector with 2 elements).
So one needs to provide a scalar n1, n2 for a fixed pump wavelength for the beginning.

In the heat class a new method for calculating the matrix-transfer-algorithm is required and some kind of a switch, for which method for laser-excitation to use. One could thing of using the matrix version if optical-constants are present and otherwise the Lambert-Beer law. Having the optical constants available one could also automatically calculate the optical penetration depth, etc.

how about the actual algorithm? do you have something at hand?
I could ask Loïc if we could use his python code, which we then would need to transfer wo MATLAB and adapt to the udkm1Dsim environment.

If you could do the work with the actual algorithm I can work on integrating it seamlessly into the toolbox.

@AvonReppert
Copy link
Author

Yes using the matrix formalism when optical constants are present and otherwise Lambert-Beer law would by nice.
I do not have something at hand. Asking Loïc would be the first step in the right direction.
Or André but I have never seen his code so I do not know which code would be easier to implement/adapt. If I have to do the coding then it will definitely take a while until this issue will be resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants