http://adsabs.harvard.edu/abs/2016ApJ...831..109D

The correction will depend on dielectric function and size/lambda, so you may find that resonances will shift in wavelength when this is done.

The extrapolation procedure described in Eq. 15-17 of above reference will give you a fractional correction phi_N, where N is the largest N that you could afford to do. I would guess that the extrapolation itself is uncertain by

some fraction (perhaps 0.1) of phi_N (again, see Fig. 6 of above reference).

Remember also that the DDA realization with finite N is only approximating the geometry of the ideal cylinder with end caps. Again, repeating with larger N will in effect be doing a slightly different geometry. The correction phi_N will include these "geometric" effects.

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

Thank you for your reply. I am happy to know that the basic calculation setup was ok and I am understanding the parameterization of the program correctly. Thank you for your assistance with the calculation optimization settings. You saved me a lot of effort in trying to figure out what the appropriate rotational setups are.

Now I am trying to reconcile the difference between my experimental and simulated spectra. The simulated LSPR peak is shifted to the red by ~50 nm. If the medium dielectric constant was increased (as it could likely be due to the surfactant), I would expect the LSPR peak to shift further to the red. Not sure about what else might be likely causing the discrepancy. Is polydispersity the probable culprit?

Thanks and best regards,

Joe

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

to the cylinder only (not including endcaps) so the value 3.55 does

correspond to your desired 25/7 to within the allowed discretization.

(I will correct this typo in the qtable output for CYLNDRCAP in the

next release.)

2. For this axially-symmetric target you do not need to rotate the

target around the axis a1, so you can reduce the compute time

by a factor 20 by changing

0. 360.0 20 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

to

0. 0. 1 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

3. With the reflection symmetry of this target, there is no

reason to sample THETA outside the range 0 to 90.

You can reduce your computing time by changing

0. 180.0 10 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

to

0. 90. 6 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

see section 19.3 for sampling in THETA: with an even value of

NTHETA, this will sample THETA uniformly in cos(THETA) at

cos(THETA)=11/12, 9/12, 7/12, 5/12, 3/12, 1/12

4. There is also really no need to do more than one angle PHI.

The PHI rotations are not very costly in cputime, but in this

case don't seem to be necessary at all if you are using unpolarized

light and are going to average over both polarization states.

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

With the ddscat.par file that you provided, the cylinder axis will be along the x axis in the Target Frame (TF). If you want the incident electric field to be along this direction, then you have to rotate the target in the Lab Frame (LF) by 90deg. Simply set Theta to 90 by changing the appropriate lines in ddscat.par to read

' Prescribe Target Rotations '

0.00 0.00 1 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

90.00 90.00 1 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

0.00 0.00 1 = PHIMIN, PHIMAX, NPHI (phi=rotation angle of a1 around k)

With this setting, incident polarization state JP=1 will correspond to incident E along the cylinder axis.

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

Thank you for your assistance. Indeed, the MXITER adjustment worked to get the code to run. I am now able to generate extinction spectra.

Follow up question; As I understand it from the manual, the shape parameters should be set, such that they reflect the aspect ratio of the nanorods I am trying to measure (pg 44 of the ddscat manual "SHPAR1 = cylinder length/d (not including end-caps!) and SHPAR2 = cylinder diameter/d "). For example, I am now trying to model a rod L=32 nm X d=7 nm (where L=total length), aspect ratio=4.57. I set up the .par file to reflect this geometry by setting the shape parameters to be a ratio of 25/7. I double the shape parameters to get a higher number of dipoles (Please correct me if I am not understanding this operation correctly). The aeff=6.48nm is calculated from the total L and d. However, the resulting qtable output has written in the header asp.ratio= 3.5477. Can you please confirm that this is the correct way to try and model this sample with ddscat? My other specific questions are if the incident polarizations and target rotations parameters are setup correctly? My goal is to simulate the extinction spectra of these nanorods in solution, then compare the results with spectrophotometer measurements.

The complete .par file is included below. Note, that this took about a week running MPI on a 12core machine. So I would probably make some changes to try and speed things up.

Thanks in advance for your assistance,

Joe

' ========== Parameter file for v7.3 ==================='

' Preliminaries '

'NOTORQ' = CMDTRQ*6 (DOTORQ, NOTORQ) — either do or skip torque calculations

'PBCGS2' = CMDSOL*6 (PBCGS2, PBCGST, GPBICG, QMRCCG, PETRKP) — CCG method

'GPFAFT' = CMETHD*6 (GPFAFT, FFTMKL) — FFT method

'GKDLDR' = CALPHA*6 (GKDLDR, LATTDR, FLTRCD) — DDA method

'NOTBIN' = CBINFLAG (NOTBIN, ORIBIN, ALLBIN) — binary output?

' Initial Memory Allocation '

100 100 100 = dimensioning allowance for target generation

' Target Geometry and Composition '

'CYLNDRCAP' = CSHAPE*9 shape directive

50.0 14.0 = shape parameters 1 - 2

1 = NCOMP = number of dielectric materials

'../diel/Au_evap' = file with refractive index 1

' Additional Nearfield calculation? '

0 = NRFLD (=0 to skip nearfield calc., =1 to calculate nearfield E)

0.0 0.0 0.0 0.0 0.0 0.0 (fract. extens. of calc. vol. in -x,+x,-y,+y,-z,+z)

' Error Tolerance '

1.00e-5 = TOL = MAX ALLOWED (NORM OF |G>=AC|E>-ACA|X>)/(NORM OF AC|E>)

' Maximum number of iterations '

1000 = MXITER

' Integration limiter for PBC calculations '

1.00e-2 = GAMMA (1e-2 is normal, 3e-3 for greater accuracy)

' Angular resolution for calculation of <cos>, etc. '

0.5 = ETASCA (number of angles is proportional to [(3+x)/ETASCA]^2 )

' Wavelengths (micron) '

0.48 1.0 130 'LIN' = wavelengths (1st,last,howmany,how=LIN,INV,LOG,TAB)

' Refractive index of ambient medium '

1.333 = NAMBIENT

' Effective Radii (micron) '

0.00648 0.00648 1 'LIN' = eff. radii (1st,last,howmany,how=LIN,INV,LOG,TAB)

' Define Incident Polarizations '

(0,0) (1.,0.) (0.,0.) = Polarization state e01 (k along x axis)

2 = IORTH (=1 to do only pol. state e01; =2 to also do orth. pol. state)

' Specify which output files to write '

0 = IWRKSC (=0 to suppress, =1 to write ".sca" file for each target orient.

' Specify Target Rotations '

0. 360.0 20 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

0. 180.0 10 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

0. 360.0 20 = PHIMIN, PHIMAX, NPHI (phi=rotation angle of a1 around k)

' Specify first IWAV, IRAD, IORI (normally 0 0 0) '

0 0 0 = first IWAV, first IRAD, first IORI (0 0 0 to begin fresh)

' Select Elements of S_ij Matrix to Print '

9 = NSMELTS = number of elements of S_ij to print (not more than 9)

11 12 21 22 31 33 44 34 43 = indices ij of elements to print

' Specify Scattered Directions '

'LFRAME' = CMDFRM (LFRAME, TFRAME for Lab Frame or Target Frame)

1 = NPLANES = number of scattering planes

0. 0. 180. 1 = phi, theta_min, theta_max (deg) for plane A

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

I have found out that longitudinal polarization along a gold nanorod axis ( set at x-axis) in LF can be achieved by setting the theta value ~ 18

I got puzzled . Why 18

Sorry to ask you such a silly question but I have tried and spent couple of nights realizing the 3D space.

Please illuminate me.

Yours sincerely,

Hirak

DDSCAT - DDSCAT 7.3.0 [13.05.03]

TARGET - Cyl.prism, NAT= 6385 NFAC= 225 NLAY= 17 asp.ratio= 1.0044

GKDLDR - DDA method

PBCGS2 - CCG method

CYLNDRCAP - shape

6385 = NAT0 = number of dipoles

0.08689122 = d/aeff for this target [d=dipole spacing]

0.002377 = d (physical units)

- physical extent of target volume in Target Frame -—-

-0.039214 0.039214 = xmin,xmax (physical units)

-0.020201 0.020201 = ymin,ymax (physical units)

-0.020201 0.020201 = zmin,zmax (physical units)

AEFF= 0.020156 = effective radius (physical units)

WAVE= 0.624000 = wavelength (in vacuo, physical units)

K*AEFF= 0.275406 = 2*pi*aeff/lambda

NAMBIENT= 1.357000 = refractive index of ambient medium

n= ( 0.1435 , 2.4668), eps.= ( -6.0645 , 0.7078) |m|kd= 0.0591 for subs. 1

TOL= 1.000E-05 = error tolerance for CCG method

( 1.00000 0.00000 0.00000 ) = target axis A1 in Target Frame

( 0.00000 1.00000 0.00000 ) = target axis A2 in Target Frame

NAVG= 248 = (theta,phi) values used in comp. of Qsca,g

( 0.02273 -0.00747 0.00000 ) = k vector (latt. units) in TF

( 0.30362, 0.00000 )( 0.92375, 0.00000 )(-0.23345, 0.00000 )=inc.pol.vec. 1 in TF

( 0.07289, 0.00000 )( 0.22177, 0.00000 )( 0.97237, 0.00000 )=inc.pol.vec. 2 in TF

( 0.95000 0.30362 0.07289 ) = target axis A1 in Lab Frame

(-0.31225 0.92375 0.22177 ) = target axis A2 in Lab Frame

( 0.02393 0.00000 0.00000 ) = k vector (latt. units) in Lab Frame

( 0.00000, 0.00000 )( 1.00000, 0.00000 )( 0.00000, 0.00000 )=inc.pol.vec. 1 in LF

( 0.00000, 0.00000 )(-0.00000, 0.00000 )( 1.00000,-0.00000 )=inc.pol.vec. 2 in LF

BETA = 0.000 = rotation of target around A1

THETA= 18.195 = angle between A1 and k

PHI = 13.500 = rotation of A1 around k

0.5000 = ETASCA = param. controlling # of scatt. dirs used to calculate <cos> etc.

Qext Qabs Qsca g(1)=<cos> <cos^2> Qbk Qpha

JO=1: 1.6468E+00 1.3128E+00 3.3396E-01 1.7513E-03 2.3078E-01 5.9597E-03 5.7771E-01

JO=2: 2.7998E-01 2.3300E-01 4.6979E-02 1.1112E-02 3.3016E-01 3.4188E-03 7.5858E-01

mean: 9.6337E-01 7.7289E-01 1.9047E-01 2.9057E-03 2.4304E-01 4.6893E-03 6.6814E-01

Qpol= 1.3668E+00 dQpha= -1.8087E-01

Qsca*g(1) Qsca*g(2) Qsca*g(3) iter mxiter Nsca

JO=1: 5.8488E-04 -2.3407E-04 4.2185E-05 99 10000 248

JO=2: 5.2201E-04 2.1309E-04 -4.7081E-05 106 10000 248

mean: 5.5344E-04 -1.0490E-05 -2.4484E-06

Mueller matrix elements for selected scattering directions in Target Frame

theta phi Pol. S_11 S_12 S_21 S_22 S_31 S_41 S_34 S_43

0.00 0.00 0.05336 8.2200E-04 -3.9079E-05 -4.386E-05 7.324E-04 2.765E-10 -5.275E-11 2.206E-07 -1.965E-07

10.00 0.00 0.10003 9.6275E-04 8.5808E-05 9.631E-05 8.578E-04 -7.130E-10 -4.075E-10 -4.875E-04 4.343E-04

20.00 0.00 0.35199 1.3385E-03 4.1977E-04 4.711E-04 1.193E-03 5.239E-10 -1.164E-10 -9.614E-04 8.567E-04

30.00 0.00 0.54439 1.9058E-03 9.2442E-04 1.037E-03 1.698E-03 -6.694E-10 4.075E-10 -1.408E-03 1.254E-03

40.00 0.00 0.66563 2.5985E-03 1.5411E-03 1.730E-03 2.315E-03 4.511E-10 1.426E-09 -1.813E-03 1.615E-03

50.00 0.00 0.73951 3.3343E-03 2.1970E-03 2.466E-03 2.971E-03 -4.366E-10 -1.222E-09 -2.163E-03 1.927E-03

60.00 0.00 0.78458 4.0244E-03 2.8133E-03 3.157E-03 3.586E-03 -6.476E-10 0.000E+00 -2.447E-03 2.180E-03

70.00 0.00 0.81160 4.5838E-03 3.3147E-03 3.720E-03 4.084E-03 -1.615E-09 2.910E-10 -2.653E-03 2.363E-03

80.00 0.00 0.82635 4.9422E-03 3.6388E-03 4.084E-03 4.404E-03 -5.311E-10 -2.095E-09 -2.773E-03 2.471E-03

90.00 0.00 0.83165 5.0536E-03 3.7448E-03 4.203E-03 4.503E-03 -6.476E-10 2.212E-09 -2.805E-03 2.499E-03

100.00 0.00 0.82837 4.9027E-03 3.6186E-03 4.061E-03 4.368E-03 -1.062E-09 -8.731E-10 -2.746E-03 2.447E-03

110.00 0.00 0.81571 4.5073E-03 3.2759E-03 3.677E-03 4.016E-03 -8.549E-10 -6.403E-10 -2.602E-03 2.318E-03

120.00 0.00 0.79086 3.9158E-03 2.7594E-03 3.097E-03 3.489E-03 -8.440E-10 -1.164E-09 -2.378E-03 2.119E-03

130.00 0.00 0.74787 3.2013E-03 2.1332E-03 2.394E-03 2.852E-03 -4.075E-10 4.948E-10 -2.086E-03 1.858E-03

140.00 0.00 0.67522 2.4509E-03 1.4745E-03 1.655E-03 2.184E-03 -8.949E-10 1.310E-09 -1.735E-03 1.546E-03

150.00 0.00 0.55206 1.7554E-03 8.6345E-04 9.691E-04 1.564E-03 -8.731E-11 -1.892E-09 -1.340E-03 1.194E-03

160.00 0.00 0.34991 1.1979E-03 3.7346E-04 4.191E-04 1.067E-03 -5.384E-10 2.183E-10 -9.111E-04 8.118E-04

170.00 0.00 0.08337 8.4419E-04 6.2705E-05 7.038E-05 7.522E-04 -3.056E-10 -1.455E-10 -4.608E-04 4.105E-04

180.00 0.00 0.04916 7.3574E-04 -3.2226E-05 -3.617E-05 6.555E-04 -2.910E-11 6.912E-11 1.673E-07 -1.491E-07

190.00 0.00 0.12656 8.8517E-04 9.9820E-05 1.120E-04 7.887E-04 -1.164E-10 -4.366E-11 4.610E-04 -4.108E-04

200.00 0.00 0.39033 1.2751E-03 4.4345E-04 4.977E-04 1.136E-03 -4.075E-10 -3.638E-10 9.111E-04 -8.118E-04

210.00 0.00 0.57830 1.8599E-03 9.5834E-04 1.076E-03 1.657E-03 8.877E-10 8.731E-11 1.339E-03 -1.193E-03

220.00 0.00 0.69135 2.5707E-03 1.5835E-03 1.777E-03 2.290E-03 7.567E-10 -2.328E-10 1.735E-03 -1.545E-03

230.00 0.00 0.75801 3.3226E-03 2.2441E-03 2.519E-03 2.960E-03 5.239E-10 3.783E-10 2.084E-03 -1.857E-03

240.00 0.00 0.79742 4.0251E-03 2.8599E-03 3.210E-03 3.586E-03 1.062E-09 -8.149E-10 2.376E-03 -2.117E-03

250.00 0.00 0.81999 4.5926E-03 3.3554E-03 3.766E-03 4.092E-03 4.584E-10 -2.328E-10 2.599E-03 -2.316E-03

260.00 0.00 0.83104 4.9555E-03 3.6694E-03 4.118E-03 4.415E-03 8.949E-10 2.037E-09 2.743E-03 -2.444E-03

270.00 0.00 0.83303 5.0696E-03 3.7629E-03 4.223E-03 4.517E-03 5.020E-10 1.339E-09 2.802E-03 -2.496E-03

280.00 0.00 0.82650 4.9219E-03 3.6246E-03 4.068E-03 4.385E-03 1.019E-09 5.821E-11 2.771E-03 -2.469E-03

290.00 0.00 0.81035 4.5320E-03 3.2722E-03 3.672E-03 4.038E-03 6.512E-10 9.895E-10 2.650E-03 -2.361E-03

300.00 0.00 0.78145 3.9496E-03 2.7500E-03 3.086E-03 3.519E-03 8.004E-10 8.731E-10 2.445E-03 -2.178E-03

310.00 0.00 0.73355 3.2472E-03 2.1223E-03 2.382E-03 2.893E-03 7.421E-10 -6.403E-10 2.162E-03 -1.926E-03

320.00 0.00 0.65506 2.5107E-03 1.4654E-03 1.645E-03 2.237E-03 5.966E-10 4.948E-10 1.812E-03 -1.615E-03

330.00 0.00 0.52635 1.8286E-03 8.5757E-04 9.625E-04 1.629E-03 3.783E-10 -4.657E-10 1.408E-03 -1.254E-03

340.00 0.00 0.32422 1.2812E-03 3.7012E-04 4.154E-04 1.142E-03 -4.366E-11 -1.164E-10 9.615E-04 -8.567E-04

350.00 0.00 0.07151 9.3236E-04 5.9410E-05 6.668E-05 8.307E-04 1.601E-10 -4.366E-11 4.878E-04 -4.346E-04

360.00 0.00 0.05336 8.2200E-04 -3.9079E-05 -4.386E-05 7.324E-04 3.201E-10 -7.822E-11 2.201E-07 -1.961E-07

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

FROM_FILE allows the target to be composed of more than one material — you simply need to specify the composition at each occupied lattice site.

The UserGuide has instructions for the format of target option FROM_FILE. The shape.dat file is a simple ascii file. In examples_exp/FROM_FILE you will find an example.

If the target material is anisotropic, then you can use target option ANIFRMFIL. The shape.dat file is again a plain ascii file, but now becomes more complicated, because at each lattice site you must specify the "composition" corresponding to each of the three principal

axes of the dielectric tensor, and you must specify the orientation of these three principal axes in the Target Frame (because the optical axes of the local material may not coincide with the x,y,z axes of the Target Frame). The UserGuide describes the formatting of this (plain ascii) file.

Forum category: DDSCAT / General discussion

Forum thread: Multilayered Ellipsoid ]]>

I have designed the .stl file for the multilayered shape.

Now, I need to convert it to shape format.

If you kindly introduce me to the format, it will be very much helpful for me to write a code to convert them directly.

Thanks and regards,

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Multilayered Ellipsoid ]]>

If you want a cluster of spheres, all of the same composition, it is easiest to simply use the SPHERES_N target option. You simply need a file specifying the position of the center of each sphere, and its radius (in arbitrary units). The spheres can be overlapping if desired. See the DDSCAT UserGuide for details, and the example provided in examples_exp/SPHERES_N

If you want samples of random aggregates produced by ballistic agglomeration of equal-sized spheres, see the target files available for clusters of 8, 16, 32,64, 128, 256, … spheres at

http://www.astro.princeton.edu/~draine/agglom.html

Examples are given for the standard ballistic agglomeration, and two variants (BAM1 and BAM2) that give higher density aggregates, as described by Shen, Draine & Johnson (2008: Astrophys. J., 689, 260). However, you will need to modify these files for compatibility with DDSCAT:

- delete the first line in the file
- delete the numbers in the column labeled "j"
- change all the numbers in the column labeled "2*a(j)" from 1 to 0.5

If you want a cluster of spheres of various different materials, see target option SPH_ANI_N

The value of the interdipole separation "d" is determined automatically by DDSCAT after you specify the value of AEFF = radius of equal volume sphere (in physical units, e.g., microns) and (if you are using target option SPHERES_N) the parameter SHPAR1 setting the target extent in the x direction, in units of d.

DDSCAT will report the derived value of d in physical units.

Forum category: DDSCAT / General discussion

Forum thread: How to fix lattice spacing 'd' value? ]]>

> FATAL ERROR IN PROCEDURE: ZBCG2WP

> ITERN>ITERMX

> EXECUTION ABORTED

Your ddscat.par file includes the line

100 = MXITER

ddscat reached IT=100 iterations but hadn't quite reached the specified error tolernace of 1.e-5, so it terminated the calculation. If you increase the value of MXITER (to, e.g., 1000) I think that you will find that ddscat will run successfully (on my laptop, IT=133 iterations were required for convergence to ferr < 1.e-5).

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

To do this I put the ddscat program, and ddscat.par file in a new directory. When I run the program it generates the mtable, qtable, qtable2 and target.out files, but not any .avg, .fml or .sca files. The qtable extinction data is empty. When executing, the program appears to make it through the 100 iterations, but then closes out after. The problem seems to be related to the aeff and/or the shape parameters. When I make the aeff too small or the shape parameters too large, then I get the problem as I described. I have been trying to keep the shape parameters large enough to have ~10000 dipoles. But if I set the aeff to match my experimental samples, then the program doesn't generate extinction data (it does seem to work for much larger aeff sizes).

Below is an example of a .par file that I have been using for a gold rod with dimensions L=37 nm (including end caps) and d=7 nm. Therefore the aeff for this geometry is 0.0068 microns. I tried to make the shape parameters a multiple of 2 (60 x 14), to get over 10000 dipoles.

I have tried this on the Windows precompiled version, as well as on a Linux system with the latest version. I would be tremendously grateful if you could give me any insight on what I might be doing wrong.

' ========== Parameter file for v7.3 ==================='

' Preliminaries '

'NOTORQ' = CMDTRQ*6 (DOTORQ, NOTORQ) — either do or skip torque calculations

'PBCGS2' = CMDSOL*6 (PBCGS2, PBCGST, GPBICG, QMRCCG, PETRKP) — CCG method

'GPFAFT' = CMETHD*6 (GPFAFT, FFTMKL) — FFT method

'GKDLDR' = CALPHA*6 (GKDLDR, LATTDR, FLTRCD) — DDA method

'NOTBIN' = CBINFLAG (NOTBIN, ORIBIN, ALLBIN) — binary output?

' Initial Memory Allocation '

100 100 100 = dimensioning allowance for target generation

' Target Geometry and Composition '

'CYLNDRCAP' = CSHAPE*9 shape directive

60 14 = shape parameters 1 - 2

1 = NCOMP = number of dielectric materials

'../diel/Au_evap' = file with refractive index 1

' Additional Nearfield calculation? '

0 = NRFLD (=0 to skip nearfield calc., =1 to calculate nearfield E)

0.0 0.0 0.0 0.0 0.0 0.0 (fract. extens. of calc. vol. in -x,+x,-y,+y,-z,+z)

' Error Tolerance '

1.00e-5 = TOL = MAX ALLOWED (NORM OF |G>=AC|E>-ACA|X>)/(NORM OF AC|E>)

' Maximum number of iterations '

100 = MXITER

' Integration limiter for PBC calculations '

1.00e-2 = GAMMA (1e-2 is normal, 3e-3 for greater accuracy)

' Angular resolution for calculation of <cos>, etc. '

0.5 = ETASCA (number of angles is proportional to [(3+x)/ETASCA]^2 )

' Wavelengths (micron) '

0.650 0.650 1 'LIN' = wavelengths (1st,last,howmany,how=LIN,INV,LOG,TAB)

' Refractive index of ambient medium '

1.333 = NAMBIENT

' Effective Radii (micron) '

0.0068 0.0068 1 'LIN' = eff. radii (1st,last,howmany,how=LIN,INV,LOG,TAB)

' Define Incident Polarizations '

(0,0) (1.,0.) (0.,0.) = Polarization state e01 (k along x axis)

1 = IORTH (=1 to do only pol. state e01; =2 to also do orth. pol. state)

' Specify which output files to write '

0 = IWRKSC (=0 to suppress, =1 to write ".sca" file for each target orient.

' Specify Target Rotations '

0. 0. 1 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

0. 0. 1 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

0. 0. 1 = PHIMIN, PHIMAX, NPHI (phi=rotation angle of a1 around k)

' Specify first IWAV, IRAD, IORI (normally 0 0 0) '

0 0 0 = first IWAV, first IRAD, first IORI (0 0 0 to begin fresh)

' Select Elements of S_ij Matrix to Print '

9 = NSMELTS = number of elements of S_ij to print (not more than 9)

11 12 21 22 31 33 44 34 43 = indices ij of elements to print

' Specify Scattered Directions '

'LFRAME' = CMDFRM (LFRAME, TFRAME for Lab Frame or Target Frame)

1 = NPLANES = number of scattering planes

0. 0. 180. 1 = phi, theta_min, theta_max (deg) for plane A

Forum category: DDSCAT / General discussion

Forum thread: Gold Nanorod Extinction Spectra Simulation ]]>

Forum category: DDSCAT / General discussion

Forum thread: How to fix lattice spacing 'd' value? ]]>

Forum category: DDSCAT / General discussion

Forum thread: target size ]]>

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

I have sent you a private message in your wikidot mailbox.

Regards,

Stefany

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

thanks for your reply.

Yes, it will be great to provide me with your sample makefile.

regards,

Stefany

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

I have implemented MPI in our workstation and it is working fully. I think your problem is originating from threading the makefile properly. If you want I can send you my makefile for test.

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

one month ago, I posted a worry about convergence problems I encountered with ddscat/MPI

Does somebody have an idea with what went wrong?

I copy the message below.

Regards,

Stefany

previous message:

I did a serial calculation with a sphere easily. but when I try a parallel calculation with MPI, I find very high values.

It is the same for all the algorithms

ZBCG2 IT= 1 f.err= NaN

…

cgcommon ckpt 20

iter= 8 frac.err= NaN

…

GPBICG IT= 10 f.err= 6.167E+00

…

…

sqrt(rnorm/bnorm)= 3 174106950333229.

sqrt(rnorm/bnorm)= 4 NaN

Other codes using MPI have been successfully implemented in our system, and the job submission procedures are correctly implemented.

The administrator followed all the instructions in the USer Guide. Did we miss an important information?

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

Thank you very much for such a helpful and insightful reply.

I have set the volume of a nanorod as a function of their aspect ratio ( here, L/D) so that the dipole distance remains constant for a group of calculations. I have used the "au_evap" file for dielectric function and wavelength range was fixed from 0.3 um to 1 um.

I will repeat the calculation suggested by you, Sir.

Were the configurations for the target orientation right? Please let me know.

Thanks and regards,

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

First: are you able to successfully run the nearfield calculations from the examples, e.g., ELLIPSOID_NEARFIELD ?

Second: are you running ddpostprocess on the same system architecture that was used for the ddscat calculations?

Forum category: DDSCAT / General discussion

Forum thread: error in calculate nearfield ]]>

To set d, you need to specify the value of aeff = radius of equal volume sphere.

For this geometry, aeff = [(3/16)*D^2*L + (1/8)D^3]^{1/3}.

If you want D=20nm and L=20nm, then aeff=13.57 nm

You must also set the value of the wavelength and refractive index. Are you sure you are specifying these correctly?

I would also suggest that you repeat your calculation using a very mild refractive index (e.g., m=1.1+0.01i) just

to check that you get reasonable results for this case. Gold at 1000nm has a very large refractive index that

may pose numerical difficulties.

Also, you are using a very modest number of dipoles. DDSCAT can easily do this problem with a smaller value of d, which you can set by changing shape parameters 1 and 2 to, say, 32 16

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

I want calculate nearfield of 2 shape , I see 2 different errors for each shape,one error when run ddpostprossess is " readnf sanity failure: inconsistent j1= 245786 and nat0= 279320"

and another error when run ddscat.par of another shape :"

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:

#0 0x7F354D819777

#1 0x7F354D819D7E

#2 0x7F354D16BD3F

#3 0x7F354D1B7E2C

#4 0x401DB9 in ddscat_

#5 0x40E2B5 in MAIN__ at DDSCAT_cpp.f90:? "

I dont know meaning of 2 errors?

Thanks advance.

Forum category: DDSCAT / General discussion

Forum thread: error in calculate nearfield ]]>

Sorry for the extremely late reply.

Regarding the questionnaire, I am using DDSCAT (version 7.3) with which I need to compute the scattering matrices of gold nanorods having some different aspect ratio from 300 nm to 1000 nm wavelength regime with 5 nm shift. The length regime was considered from 20 nm to 80 nm possessing suitable increase in aspect ratio perceived in fabrication configurations.

Initially, for a 20 nm long nanorod having a diameter of 10 nm, I have considered the CYLNDRCAP module to model the system with 2 nm spacing in dipoles. The size parameter was set to

'CYLNDRCAP' = CSHAPE*9 shape directive

10 5 2 0.0 0.0 = shape parameters 1 - 7

For longitudinal polarization along the axis of the nanorod, I set the parameters

' Specify Target Rotations '

0. 0. 1 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

90. 90. 1 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

0. 0. 1 = PHIMIN, PHIMAX, NPHI (phi=rotation angle of a1 around k)

For transverse polarization along the diameter of the nanorod, I set the parameters

' Specify Target Rotations '

0. 0. 1 = BETAMI, BETAMX, NBETA (beta=rotation around a1)

0. 0. 1 = THETMI, THETMX, NTHETA (theta=angle between a1 and k)

0. 0. 1 = PHIMIN, PHIMAX, NPHI (phi=rotation angle of a1 around k)

which yields contradictory results for polarization; I have got maximum polarization for transverse polarization at 90^{o} and for longitudinal polarization condition the pattern is quite complex and doesn't match with the experimental data. Am I doing right? Please suggest me. If I need to produce details for the parameterization, please intimate me.

I wish to add the whole parameter file as an attachment, but couldn't find the way to attach those.

Thank you,

Yours sincerely,

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

I run ddscat 7.3,and calculate nearfield ,but only get electrical field, I change ddpostprocess.f90 according instruction in the end code but in output I cant get polarization vector,. Should I change in ddpostprocess.par? or ddpostprocess.f90 ?

Thanks,

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

Insufficient information to be able to comment on this. Size, aspect ratio, wavelength, orientation…?. What version of DDSCAT are you using? Did DDSCAT claim to meet the error tolerance?

Also: DDSCAT does not work well when the dielectric function is very large, so you may not be able to calculate for gold in the

infrared.

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

DDA solution for polarization considering a gold nanorod shows an interesting pattern. The well-documented pattern (i.e. maximum @90°and minimum @180°) was obtained when the transverse wavelength was considered and beta, theta, and phi were set to zero. Using the same settings, the polarization patterns obtained for the longitudinal wavelength show patterns which deviate from their physical picture.

Please suggest the required modification that I need to make for obtaining the correct polarization pattern.

Thanks and regards,

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Longitudinal Polarization ]]>

DDSCAT —- DDSCAT 7.3.2 [17.01.25]

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

I want to calculate the polarization of two spheres.

One sphere has 1.33+0.01i refractive index and another sphere has 1.9+0.45i.

So I set ddscat.par such as :

2 = NCOMP = number of dielectric materials

'../diel/m1.33_0.01'

'../diel/m1.90_0.45'

Then, m1.33+0.01i is number 1 and m1.90++0.45i is nuber 2. Is it right?

And I set BAM file such as :

x y z a IC1 IC2 IC3 theta_DF phi_DF beta_DF

0.000000 0.000000 0.000000 0.500000 1 1 1 0.00000 0.00000 0.00000

0.000000 1.000000 0.000000 0.500000 2 2 2 0.00000 0.00000 0.00000

Because a sphere at (0,0,0) has m=1.33+0.01i which is number 1, so I set IC1=IC2=IC3=1.

And also at a sphere at (0,1,0) , I set IC1=IC2=IC3=2 because m=1.90++0.45i is nuber 2.

Is it right?

I can't sure that means of number of IC1, IC2, IC3.

Forum category: DDSCAT / General discussion

Forum thread: SPH_ANI_N : BAM file ]]>

DDSCAT —- DDSCAT 7.3.2 [17.01.25]

which will tell you the vintage of your software. Early versions of DDSCAT did have bugs in the MPI implementation, but the current release was thought to handle MPI correctly.

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

will begin with a line like

DDSCAT —- DDSCAT 7.3.2 [17.01.25]

which will tell you the vintage of your software. Early versions of DDSCAT did have bugs in the MPI implementation, but the current release was thought to handle MPI correctly.

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

I am a new user of ddscat.

I try to calculate scattering and absorption efficiencies of metal nanoparticles of arbitrary shapes and sizes.

I did a serial calculation with a sphere easily. but when I try a parallel calculation with MPI, I find very high values.

It is the same for all the algorithms

ZBCG2 IT= 1 f.err= NaN

…

cgcommon ckpt 20

iter= 8 frac.err= NaN

…

GPBICG IT= 10 f.err= 6.167E+00

…

…

sqrt(rnorm/bnorm)= 3 174106950333229.

sqrt(rnorm/bnorm)= 4 NaN

Other codes using MPI have been successfully implemented in our system, and the job submission procedures are correctly implemented.

The administrator followed all the instructions in the USer Guide. Did we miss an important information?

Regards

Forum category: DDSCAT / General discussion

Forum thread: Running ddscat with MPI ]]>

I am a new user of ddscat.

I try to calculate scattering and absorption efficiencies of metal nanoparticles of arbitrary shapes and sizes.

I did a serial calculation with a sphere easily. but when I try a parallel calculation with MPI, I find very high values.

It is the same for all the algorithms

ZBCG2 IT= 1 f.err= NaN

…

cgcommon ckpt 20

iter= 8 frac.err= NaN

…

GPBICG IT= 10 f.err= 6.167E+00

…

…

sqrt(rnorm/bnorm)= 3 174106950333229.

sqrt(rnorm/bnorm)= 4 NaN

Other codes using MPI have been successfully implemented in our system, and the job submission procedures are correctly implemented.

The administrator followed all the instructions in the USer Guide. Did we miss an important information?

Regards

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

Forum category: DDSCAT / General discussion

Forum thread: target size ]]>

C_abs= 4pik/E0^2 SUM_j=1^N [Im(P_j*(alpja_j) conj(Pj) - 2/3 k^2 P_j^2] (eq. 9)

and efficiency Q_abs is normalized C_abs (see DDSCAT User Guide https://arxiv.org/abs/1305.6497, section Absorption and Scattering By Finite targets). DDSCAT is calculating polarizations P_j in EVERY point of the shape/object. Thus, you can split the sum given in eq. 9 into contributions from subset of shape locations - for example upper part of disk and lower part of a disk. So if this is what you are interested in, the answer is yes. I think that the practical way of doing it is to store P_j and recalculate C_abs yourself. For that you can use nearfield option in DDSCAT. But, you can also get to the DDSCAT code and change the summation there (you will need to know FORTRAN and recompile the code).

Forum category: DDSCAT / General discussion

Forum thread: How to simulate a spherical Target at the interface air/dielectric (epsilon dielectric is 2) ]]>

More specifically, suppose that I am trying to model a surface as a rectangular disk (as you describe above) and there is a spherical particle of different material on top of it. Can I have absorption efficiency of the particle on top separately? When I do the calculations what I see is the absorption efficiency of the whole system.

If yes, I will try to model core-shell particle on top of a surface (there will be at least 3 different materials! surface, core and shell). Can I calculate absorption efficiencies of each material? Is it possible?

Thank you for your help.

Have a nice day.

Forum category: DDSCAT / General discussion

Forum thread: How to simulate a spherical Target at the interface air/dielectric (epsilon dielectric is 2) ]]>

"Wxxxryyykzzz.poln" file is unformatted(binary file), and I cant read this file.I want to read data of file.

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

Shape parameter 1 should be *larger* than parameter 4, parameter 2 larger than parameter 5, and parameter 3 larger than parameter 6.

Hence if you wish to do concentric spheres, you could set shape parameters 1-6 to

60 60 60 40 40 40

Forum category: DDSCAT / General discussion

Forum thread: Error in code when running for CONELLIPS target. ]]>

I am using DDA to calculate the optical properties such as absorption, scattering and extinction for "CONELLIPS" shape (Two -layers). I have no idea about CONELLIPS shape, this type of target geometry is in-built or not. I have only changed the target geometry-(ELLIPSOID to CONELLIPS) and the composition-(40 40 40 60 60 60 = shape parameters 1 - 6) and run the code for two different materials. After that, i got the error as given below:

Error: FATAL ERROR IN PROCEDURE: TARCEL

AX < BX

EXECUTION ABORTED

Forum category: DDSCAT / General discussion

Forum thread: Error in code when running for CONELLIPS target. ]]>

2. It is unclear what you mean by "cannot compile 2xxxryyykzzz.poln". Please clarify.

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

For DDSCAT, the closest approximation to the posed problem would be to calculate the finite target placed at the surface of a rectangular block with the desired dielectric function representing the semi-infinite substrate. Use a block that is as large as you can afford, and repeat the calculation for different block sizes to see whether the results seem to be sensitive to the size of the block. This method is inelegant and unfortunately not very efficient; memory limitations will limit the size of the slab, given that the interdipole spacing d needs to be small enough to resolve the target geometry.

If your target happens to be a disk, you can use target option DSKRCTNGL. If your target happens to be a rectangular block, you can use target option RCTGLBLK2. If your target has another geometry, you can use target option FROM_FILE, and use your own software to prepare a file with the list of dipoles locations and compositions.

Forum category: DDSCAT / General discussion

Forum thread: How to simulate a spherical Target at the interface air/dielectric (epsilon dielectric is 2) ]]>

The UserGuide describes how the input file for target option FROM_FILE should be formatted. There is a sample calculation in the examples/FROM_FILE directory.

Keep in mind that if one has a multilayer target, the interdipole spacing d should be small enough to resolve the thickness of the thinnest layer. One should always do a "resolution study" to verify that your results are not sensitive to your choice of interdipole spacing d.

Forum category: DDSCAT / General discussion

Forum thread: Multilayered Ellipsoid ]]>

I am working with ellipsoid Nanomatryushka particles having two or more layers. I need to simulate values for the Muller Matrices for the kind of particles. Can I do it with DDSCAT? Can I model Fano Resonance with it?

If I need to modify the CONELLIPSE section for my use, how can I do it?

Regards,

Hirak

Forum category: DDSCAT / General discussion

Forum thread: Multilayered Ellipsoid ]]>

Thank you

Forum category: DDSCAT / General discussion

Forum thread: How to simulate a spherical Target at the interface air/dielectric (epsilon dielectric is 2) ]]>

I am work with ddscat7.2. Now I want plot polarization direction in each point.

but I cant compile wxxxryyykzzz.poln .Could you help me.

Thank you in advance.

Forum category: DDSCAT / General discussion

Forum thread: polarization vector ]]>

I understand!!

Forum category: DDSCAT / General discussion

Forum thread: CYLNDRPBC : 2-d periodic ]]>

For 2-d periodic targets, the transmitted beam has the same theta as the incident beam.

For your example, the transmitted beam has theta=30.

In your example, S_11 for the transmitted beam appears to be very small.

The reflected beam is propagating at theta=180-30=150 deg

S_11 for this beam is the reflection coefficient, 0.816

As described in section 22.10 of the UserGuide, the ddscat distribution includes examples_exp/RECTCL_PBC as a "worked example". You may want to verify that you can repeat this calculation.

Forum category: DDSCAT / General discussion

Forum thread: CYLNDRPBC : 2-d periodic ]]>

If I set theta=30 in 2-d periodic target,

then the incident direction is theta=-30 and

the scattering direction is theta=30 and theta=150.

And scattering direction that theta=30 is reflected direction and

scattering direction that theta=150 is penetration direction.

Is it right?

Forum category: DDSCAT / General discussion

Forum thread: CYLNDRPBC : 2-d periodic ]]>

In pbcscavec.f90, I found that

! scattering angle is neither zero nor pi

! scattering plane is therefore defined by k_0 and k_s .

Why scattering angle is neither zero nor pi?

And I carried out with following ddscat.par

'RCTGL_PBC' = CSHAPE*9 shape directive

30.0 1.0 1.0 1.0 1.0 = shape parameters 1 - 5

BETA = 0.000

THETA= 30.000

PHI = 0.000

and I got the out file 'w000r000k000.sca' like that

Mueller matrix elements for selected scattering directions in Target Frame

theta phi Pol. S_11 S_12 S_21 S_22 S_31 S_41

30.00 180.00 0.00009 9.9946E-01 -8.9653E-05 -8.965E-05 9.995E-01 5.805E-23 5.528E-25

150.00 180.00 0.81600 1.3728E-05 -1.1202E-05 -1.120E-05 1.373E-05 1.161E-24 1.372E-26

Why scattering directions are theta=30 and theta=150?

I can't understand.

Please advise to me.

Forum category: DDSCAT / General discussion

Forum thread: CYLNDRPBC : 2-d periodic ]]>

MPI.f = $(MPI_f)

MPI.o - $(MPI_o)

i.e., there should be no space between the $ and (

2. When you compile and link, which of the following do you see used?

mpi_subs.f90 etc. on compilation and mpi_subs.o on linking,

or mpi_fake.f90 and mpi_fake.o ?

Forum category: DDSCAT / Report errors

Forum thread: Using DDSCAT with MPI for nearfield calculations: fixed in DDSCAT 7.3.2 ]]>

other codes using MPI have been successfully implemented in our system, therefore ours should be able to work too. Also, the job submission procedures are correctly implemented in our system. We have followed all the instructions in the USer Guide: we changed the PBCGS2 parameter to PBCGST in the file ddscat.par; also, in the "Makefile" we commented the initial parameters and commented the necessary ones:

DMPI = -Dmpi

MPI.f = $ (MPI_f)

MPI.o = $ (MPI_o)

Nevertheless, it still does not seem to work. Should we be changing any other parameters? If not, is there any parameter we stated incorrectly?

Thank you very much again.

Forum category: DDSCAT / Report errors

Forum thread: Using DDSCAT with MPI for nearfield calculations: fixed in DDSCAT 7.3.2 ]]>

I study scattering using DDSCAT7.3.

I have some questions about CYLNDRPBC.

I want to make regolith using CYLNDRPBC, so I wrote shape parameter such like ::60.0 1.0 1 1.0 1.0 .

Then, in the output file 'w000r000k000.sca', there are only two theta values(0, 180)

I want to (0~180)theta value.

How can I do?

Forum category: DDSCAT / General discussion

Forum thread: CYLNDRPBC : 2-d periodic ]]>

Forum category: DDSCAT / General discussion

Forum thread: 53/5000 E is calculated on all volumes of nano-particles in the wavelength range ]]>

Have you succeeded running any other code using MPI on your system?

Forum category: DDSCAT / Report errors

Forum thread: Using DDSCAT with MPI for nearfield calculations: fixed in DDSCAT 7.3.2 ]]>

I am executing ddscat as a part of a University Thesis and I am having trouble using MPI for parallel calculations. I have followed all the instructions in the User Guide, having changed all the parameters necessary in both files "ddscat.par" and "Makefile". Once compiled, I am having trouble making the code understand it has to separate itself in different cores: it keeps on calculating everything in a single node. How do I manage to tell the code to run separately? Is there a parameter I should change that I don't know about?

Thank you!

Forum category: DDSCAT / Report errors

Forum thread: Using DDSCAT with MPI for nearfield calculations: fixed in DDSCAT 7.3.2 ]]>

Forum category: DDSCAT / General discussion

Forum thread: 53/5000 E is calculated on all volumes of nano-particles in the wavelength range ]]>

For periodic targets (such as CYLNDRPBC), DDSCAT requires that the scattering directions be specified in the target frame (TFRAME).

Forum category: DDSCAT / General discussion

Forum thread: scattering directions ]]>

Section 29 of the UserGuide describes what to do.

When you run with NRFLD=1, ddscat will create binary files wxxxryyykzzz.poln

The program ddpostprocess can read these files and write out selected data, such

as the polarizations, in files that can be used by other software, such as VTK.

Please see section 30.1 of the UserGuide.

You may wish to modify DDPOSTPROCESS.f90 to better meet your needs — see section 30.2 of the UserGuide.

Forum category: DDSCAT / Report errors

Forum thread: meet a problem? asking for help! ]]>

but I cant compile wxxxryyykzzz.poln .Could you help me

Forum category: DDSCAT / Report errors

Forum thread: meet a problem? asking for help! ]]>