# Scattering / extinction / absorption cross-sections of silver nanowires (infinite cylinders) using meep

Particles scatter and absorb electromagnetic radiation. One often needs to compare the amount of scattering/absorption/extinction for particles of different shapes, composition, sizes and incident light properties (polarization, frequency and angle). In this regard, the concept of cross-sections comes into picture. There are three types of cross-sections, 1) scattering 2) absorption and 3) extinction. All of them have units of area, $m^2$, and provide a measure to quantify scattering/absorption process. Here using MEEP I calculate the crossections of silver nanowires and compare them with numerical solution (code from Bohren and Hauffman book).

Comparison of meep results with analytical results for silver nanowires

To achieve this, I wrote a meep code that performs a 2D simulation (x-y) with the cylinder axis along z axis with sources and monitors places as shown below. The source is a line source which travels along y direction and has polarization with electric field along x axis (along radius). I also use mirror-symmetries anti-symetry along X direction (which reduces the simulation time by half). PML layers are used on all sides. Calculation of cross-sections involves creating multiple 1-d flux monitors and running multiple simulations as shown below.

Here is my project file.. You would need ubuntu like system with meep and octave installed. Shell script will do all the work.

I have also shared the project at github.

## 14 thoughts on “Scattering / extinction / absorption cross-sections of silver nanowires (infinite cylinders) using meep”

1. Hi,

Did you use Drude-Lorentz model for silver? What is the amount of a used in this model? I found that the output results are very sensitive to a.

Best,

Khai

2. Wu says:

Hi Bala,

I’m a new learner of MEEP. Could you show me the code of calculating the scattering cross section in meep. .I really want to know how to do it.

My email address is?wtf2004@yahoo.cn

Thank you very much!

Wu

3. Luis says:

Hi Bala,

It’s been a good long time since you promised to post how to compute the cross sections. At this moment, It would be of enormous help if you did

4. Wu Tengfei says:

Dear Bala,

I’m a new user of MEEP. I saw the article “Scattering / extinction / absorption cross-sections of silver nanowires (infinite cylinders) using meep ” on your website.

I have read many discussions on the group “gmane.comp.science.electromagnetism.meep.general “. However, I’m still puzzled on how to calculate the scattering/absorbance/extinction cross section.

Could you tell me how to do this or show me an example which will be the best? I’m expecting your reply.

Best regards,
Wu

5. Zhang Pengfei says:

Dear Bala,

Could you kindly give me the meep code of calculating the scattering cross section? zpf029@gmail.com

Thank you very much!

Best Regards,
Zhang

6. Bala Krishna Juluri says:

Now you can download the project file. Click at the link in the post.

7. Tapsanit says:

Is the the variable “rad” referred to the radius of the infinite wire?

8. Bala Krishna Juluri says:

yes. it refers to the radius.

9. Pingback: johnhenry.us
10. Pingback: look at this now
11. Pingback: timberland uk
12. Yaqin Chen says:

When I run “meep cylinder_silver2.ctl” in Ubuntu, it prompts error:
ice-9/psyntax.scm:1274:12: In procedure #:
ice-9/psyntax.scm:1274:12: Syntax error:
cylinder_silver2.ctl:88:0: definition in expression context, where definitions are not allowed, in form (define incident (add-flux fcen df nfreq (make flux-region (center 0 (* rad -4) 0) (size (* rad 4) 0))))

How can I fix this problem?

13. Thierry says:

Dear Bala,

I have the same problem as Yaqin Chen!
When I run ‘meep sphere_silver.ctl’ in ubuntu, I have this error :

ice-9/psyntax.scm:1274:12: In procedure #:
ice-9/psyntax.scm:1274:12: Syntax error:
sphere_silver.ctl:96:0: definition in expression context, where definitions are not allowed, in form (define incident (add-flux fcen df nfreq (make flux-region (center 0 (* rad -4) 0) (size (* rad 4) 0 (* rad 4)))))

Please I really need help!

thank you in advance

Thierry TELLA