This website uses cookies to function and to improve your experience. By continuing to use our site, you agree to our use of cookies.

**Discussion Closed** This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

## Effective Medium Theory modelling of core-shell nanoparticles.

Posted May 6, 2010, 12:18 PM EDT 7 Replies

Please login with a confirmed email address before reporting spam

I'm really glad to see an active online community here in COMSOL to help each other solve our issues.

I need help to model a core-shell embedded dielectric matrix which follows effective medium approximation. Initially I'm starting with 2d disks and I plan to extend it to 3d spheres eventually. My goal is to calculate

1.effective permittivity and polarization of the resultant medium.

I'm a beginner in COMSOL so any kind of help is highly appreciated. Inputs on modeling and some tips to begin with are most welcomed. I'm always open to discussions and suggestions so feel free to leave your comments.

Warm Regards,

Rajesh.

Please login with a confirmed email address before reporting spam

From the last two months of my experience in COMSOL, I would strongly reccomend the following,

1.) Analytically simulate as much of your model in Matlab as possible and make sure you know what you need to expect from the COMSOL model later.

2.) In COMSOL, I personally use the "Scattered Hybrid Mode" in "Physics" under "Properties". I am not fully confident with this but more so than I am with the "Hybrid Mode".

3.) Make sure you know which domains you want your sources in.

4.) Every boundary must have a condition associated with it, If your wave is normally incident then, you could probably get away with using the Periodic Continuity boundary with a PML below your "special dielectric"

You also need to take care and maybe use matched boundaries at several locations

Start of with an extremely simple dielectric first e.g. a multilayered material comprising of the two or more materials you will be using. Only expand the model to core shell nano particles when you are confident with the results, otherwise the results won't make any sense.

cheers,

Best Regards,

Prateek

Please login with a confirmed email address before reporting spam

@Prateek.

Thank You so much for taking time to reply to my post. I will try to use tips you gave. However, I din't understand what you meant by "PML below your "special dielectric". What is PML? Could you please elaborate?

@ Everyone

I included a model file in this post. This is the basic element of my model and I will make an array of such objects with proper periodic conditions as suggested by Prateek.

In my computations, I need to use the surface volume fraction. From the model I attached, it would be

(volume of the outer sphere (shell)) / (volume of the rectangular block)

My question is how can I calculate the volume fraction in COMSOL? How can I use the size of the figures(radius of sphere SPH1and L,B and H of rectangular block BLK1) in calculating the volume fraction?

It would be great if someone can help !!

Regards,

Rajesh.

Attachments:

Please login with a confirmed email address before reporting spam

In COMSOL, when you have a wave scattered away from your dielectric, you don't want it to come back after it has reflected from a boundary, because you can't just make a wave die at a boundary (unless you use matched boundaries in which case the wave just travels through)

A PML is a perfectly matched layer, Basically, you draw a rectangle and set the property to a cartesian PML.

There is a caveat however, the waves absorbed by the PML are limited to the incident ones and only very slightly off. For example, the PML won't be a good absorber for a wave coming into it at 60 degrees or so, there will be back reflections from it.

As for creating your design, I would suggest you start in 2D,

The area of the square and circle (or volume) are simple to figure out if you are in the draw mode (pencil) aren't they?, you just double click on them and they'll tell you the dimensions. I am not sure what your question is here.

cheers,

Prateek

Please login with a confirmed email address before reporting spam

Thanx a ton for explaining what is a PML. I appreciate it greatly.

Let me try to rephrase my question. Say I have a huge rectangular block and there are 'n' randomly dispersed non-ovelapping spheres in that box. I want to calculate their volume fraction. I can do it directly by giving number of spheres, their volume and rectangle volume directly as input in an expression. But I want COMSOL to do this calculation dynamically based on the geometry before each simulation.

If I remove 100 spheres or add 200 more, I want the volume fraction for net geometry without me changing any inputs or constants. Can we we link the geometry properties to global expression dynamically? If yes, how?

Hope I did a better job this time explaining my scenario. If I did not make myself clear, please let me know. I will try to put some pictures and explain.

Regards,

Rajesh.

Please login with a confirmed email address before reporting spam

Yea I get your question now,

A couple of things before I attempt to answer that,

How will you go about adding these spheres?

How will you be defining their distribution in the rectangular block?

I think the answer would lie in the process you use to distribute the spheres,

Now,

One method that I can think of is interfacing COMSOL with MATLAB, this is very common and I started doing this initially and might be getting back to it at some stage. So just google for comsol interfacing with matlab and you will find plenty of people do this and plenty of tutorials.

What this will enable you to do is control your sphere distribution in the rectangular block - simply through an equation in matlab, i.e. you can control your geometry through matlab, and ofcourse a simple equation in matlab will then allow you to calculate your volume fraction. You'll just have to get your head around where the variables are stored, they seem to be stored in weird containers! (google's your friend again)

One more thing, I should warn you about, When I used COMSOL with MATLAB, I found that I wasn't able to switch control back to either software. What I mean is If I started of in MATLAB, I had to control everything through Matlab, and any changes that I made in COMSOL were not registered (and vice versa), a few of my colleagues came across the same issue. But I am sure that there is a work around for this as well,

Hopefully that answered your question,

cheers,

Prateek

Please login with a confirmed email address before reporting spam

Intefacing MATLAB with COMSOL for my work is something I never thought before. It definitely sounds like there is a possibility of doing it with help of MATLAB.

However I cannot think of a straight idea to realise it. How can I control the geometry with the help of MATLAB?. I mean through what kind of equations? Sorry if I am asking questions related to very basic stuff. Reference to commands/procedures will greatly help.

Thank you so much for taking time and efforts in giving these valuable suggestions. I am sure they are going to make a difference in my work.

Rajesh.

Please login with a confirmed email address before reporting spam

icb.olin.edu/spring_07/eds/lectures/primer_comsol_matlab.pdf

it will give you some insight, the next step would be to play around with the mentioned containers to try and adapt it to your own geometry.

cheers,

Prateek

Note that while COMSOL employees may participate in the discussion forum, COMSOL^{®} software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.

## Suggested Content

- FORUM 2D modelling of four core cable
- FORUM PARDISO out of core
- BLOG The Difficulties with Working with Nanoparticles
- BLOG Best Papers and Posters from the COMSOL Conference 2016 Munich
- KNOWLEDGE BASE 'Command not found' or 'No such file or directory' error when starting the license manager on Linux