File Exchange

image thumbnail

Drude-Lorentz and Debye-Lorentz models for the dielectric constant of metals and water

version (3.99 KB) by Bora Ung
Computes the complex permittivity of many metals and water with input wavelength


Updated 31 Jan 2012

View License

This code computes the complex dielectric constant (i.e. relative permittivity) and the refractive index of various metals using either the Lorentz-Drude (LD) or the Drude model (D) as a function of input light wavelength.

Additionally, it may compute the dielectric constant of pure water using a Debye-Lorentz model.

Choice of materials: silver, aluminum, gold, copper, chromium, nickel, tungsten, titanium, beryllium, palladium, platinum, triply distilled water.

Reference: Bora Ung and Yunlong Sheng, Interference of surface waves in a metallic nanoslit, Optics Express 15, 1182-1190 (2007).

Cite As

Bora Ung (2020). Drude-Lorentz and Debye-Lorentz models for the dielectric constant of metals and water (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (31)


Binbin Hong

Thanks a lot.

Hi all,
How to consider different metals or materials?


how toconsider the different temparture?


Thank you.

Bora Ung

Hi André. The resonance frequencies were found in the paper of A.D. Rakić et al., Appl. Opt. 37, 5271-5283 (1998). These characteristic frequencies were extracted from models (Drude and L-D) based on published experimental data for each metals.

Hi, How did you determine the resonance frequencies of the materials?

11 11

Help me a lot . Thank you .

Rahul Shaw

Helped me. Thanks..

Bora Ung

To Subhashish: in order to obtain the relative permittivity of Chromium at a given wavelength "lambda" (in meters), you should type the following command:

[epsilon_Re epsilon_Im N] = LD(lambda,'Cr')

Not able to run this code as it is. If I want to calculate for Chromium- 'Cr', then what changes have to be done ?

Reda Ahmed

help me please the program don't march

function varargout = LD(lambda,material,model)
Error: Function definitions are not permitted in this context.

i use matlab 2013 b



Qiushi Guo

Extremeley helpful


Thank you, very helpful.


Thanks! It's useful for me.


Thank you, it is useful for me too.

chao ding

Thanks! It's very useful for me.

Can someone explain to me how to use the code?
Thanks a lot.

Noha Anous

Thanks for uploading such a nice function.
But I have a question, from where are the model equations taken?
are there any approximations?
Because I tried some values and didn't get them the same as I have them in tables found in some papers.
Thanks a lot

Bora Ung

As a note, this matlab code was created for and first used in [B. Ung and Y. Sheng, Optics Express, vol.15, pp. 1182-1190 (2007)]

Wonderful file! Do you have any work of your own that I can cite for these fits?

j kim

I think, it's good program!!!

Hyunwoo Kihm

Thanks for valuable information with proper references. Weighting factor of various oscillator made the model fitting almost perfect.

Jin Xu

thanks a lot.

Bora Ung

Thanks Duane for the info. I have already done that a few days ago when I realized that it is possible to make changes. Now there IS NO NEED to make any changes.

Duane Hanselman

Rather than tell use what to do to improve the file, why not UPDATE your submission with your latest work? (Do not submit the revised file as a new submission.)

Bora Ung

The efficiency can be improved with the following changes:

replace line 183 with: epsilon_r_L = zeros(size(lambda));
replace lines 185-187 with:
epsilon_r_L = epsilon_r_L + (f(k)*omegap^2)*...
(((omega(k)^2)*ones(size(lambda)) - omegalight.^2) -...
eliminate line 190

Hope this file is useful to people as it was to me.


Updated the value of the physical constant "ehbar" to a more accurate one. Thanks to A. Webster for the tip!

A coding error in the previous version is corrected in this version.

Added a new material (pure water) whose dielectric constant is computed via the Debye-Lorentz model. References are also updated.

Added some small changes to improve the overall performance. Included a screenshot to show the comparison between the Drude, Lorentz-Drude and exact experimental values of the permittivity of silver.

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux