Application examples
XSvit: Getting started
FDTD tutorial

Force acting on a non-spherical particle


We will setup cubic volume with a tetrahedral mesh based dielectric particle inside, absorbing boundary conditions, TSF source and we will evaluate optical scattering force acting on the particle.

What can be tested:

  • tetrahedral mesh construction and loading
  • performance of force evaluation algorithm for different integration area settings

Setup all this with XSvit

Start the XSvit application and setup the computational volume in this way:

  • Computational volume size 200x200x200 voxels, discretisation 3e-8, 3e-8, 3e-8 meters.
  • Liao boundary conditions at all the boundaries
  • 800 computation steps
  • TSF source with orientation angles (theta, phi and psi) set to zero, sine wave with amplitude 1 V, wavelength 500 nm. Virtual boundary from 10, 10, 10 to 190, 190, 190. Note that in practice the amplitude value could be set up experimentally so that the wave with presence of no media has the desired amplitude known from experiment.
  • Ey image outputs in every normal direction, at center of the computational volume to see the calculation progress

We refer to basic appplication use example for details how to adjust all these settings. Then we save the parameter file if we haven't done it before.

We will first try to calculate optical force on a spherical particle, which is quite simple - we add a particle with radius 40 voxels to the center by writing 4 100 100 100 40 0 3 1 0 0 into vector material objects file, we save it using menu entry File->Save material file as... and we add the file to media entries in parameter list (by clicking on any of the Media items).

Then we can add the force output by Edit->Add force output... which calls the following dialogue:

After setting all this the complete setup should look like this

Then we can run the computation. Resulting force (in x, y, and z direction) is stored in the file. Total force can be also seen in the graph widget in XSvit.

Now we can setup a tetrahedral mesh based non-spherical particle. Here we need to use an external application to create its geometry first. We will use Blender for this. There are many manuals available for Blender so we won't repeate them (and we are not experts on Blender modeling anyway), so there are just few points what we can do to create a particle:

  1. Open Blender, we can see the default cube on the screen.
  2. Delete the cube: hit delete key and confirm deleting it (you might need to select it before, but it seems to be selected by default)
  3. Add a sphere (Add->Mesh->Icosphere). In left panel you can select number of face subdivisions to make it smoother, change it e.g. from 2 to 4.
  4. Switch to Edit mode on the bottom panel. All the faces are selected now (yellow).
  5. Enable proportional editing on the bottom panel (Mesh->Proportional Editing->Enable).
  6. Click on any sphere face by right mouse button and drag it somewhere, sphere should get distorted. Click on the left button to release the mouse. You can repeat this to create shape you like. There are also many other modeling tools if you want to do something really nice. This is how your particle could look like in Blender, after all this editing.
  7. Then run File->Export->Stanford (.ply) to save your object into format that can be used further.
  8. Install Tetgen if you haven't done so before. Assuming that you named your object file "particle.ply", call tetgen -p particle.ply
  9. If everything went well (which is not always the case), you should obtain files "particle.1.node" and "particle.1.ele", plus some more similar files that we won't use. This is our tetrahedral mesh. We could use it e.g. within many Finite Element Method software packages and we can use it also for GSvit.

Once we have tetrahedral mesh prepared, we can add this to vector material objects file. Remove spherical particle that we used before and write

21 particle.1 0 0 90 100 100 30 30 30 0 3 1 0 0

This means adding mesh (type of object = 21), written in particle.1.ele and particle.1.node, using no material attributes, magnifying it by factor of 30,30,30 (in x,y,z direction) and shifting to 90, 100, 100. It will be filled with dielectric material with relative permittivity of 3. Note that particle needs to be within the force evaluation box. This is how it might look after setting it up:

Now you can run the computation and evaluate plane wave interaction with your particle and evaluate scattering by this particle and optical force acting on it. The cross section output might look like this (depending on how exactly your particle looks like):

Output force graph is shown below. Note that as we typically want to know steady solution, we are interested in force at the right side of the graph and obviously we could have even more computation steps to let it be stable. In some cases, when some resonance modes should be developed within the particle, this can mean tens of thousands of time steps even.

Here you can also download sample parameter file, material file and files particle.1.ele and particle.1.node

Next example

Back to the documentation.

(c) Petr Klapetek, 2013