Skip to content

DDSCAT

Discrete Dipole Scattering (DDSCAT) is a program for calculating scattering and absorption of light by irregular particles and periodic arrangement of irregular particles. Homepage: http://www.ddscat.org

ddscat has been compiled with MPI support. If you wish to obtain a copy of the Makefile that was used please contact Mike Lake.

Note: This is not installed on the Centos 8 nodes. The binaries for the old Centos 6 nodes though can be found under /shared/opt/centos6/. They may work using a Centos 6 singularity container.

Included Programs

ddscat: The main scattering program.
calltarget: Creates a target.out file without having to run ddscat.
readnf: Program to conveniently read the stored wxxxryyykzzz.En file.
vtrconvert: This is a converter from DDSCAT file format (target.out) to VTK format. This allows to plot target shapes, composition, and near field intensity using public domain three dimensional graphical packages such as Paraview or Mayavi2.

Running ddscat

Remember to run the ddscat from a shell script submitted under qsub.

qsub ddscat_job.sh

Running ddscat: If you have the correct input and output setup then just use the full pathname to ddscat in your shell script (e.g. /shared/centos6/opt/ddscat-7.2.2/ddscat) and the program will run.

Input data: ddscat just looks for a file called “ddscat.par” and a directory “diel” in the directory ddscat was started from. The ddscat.par file contains all the parameters needed for your input, the diel directory contains dielectric data for various materials.

ddscat.par
diel/

Output data: ddscat expects there is a directory called “output” already existing. Here is a typical list of the files produced in the output directory:

mtable
qtable
qtable2
target.out
w000r000.avg
w000r000k000.fml
w000r000k000.sca

This is an example of the standard output of ddscat.

>DDSCAT using parameter file=ddscat.par                                                  
>DDSCAT NUMPROC=   1                                                          
>DDSCAT --- DDSCAT 7.2.2 [12.06.05]   
>DDSCAT     Single-precision version                                          
>REAPAR  ========== Parameter file for v7.2 ===================               
>  **** Preliminaries ****                                               
>REAPAR NOTORQ - do not compute torques                                       
>REAPAR PBCGS2 - CCG Method                                                   
>REAPAR GPFAFT - using GPFA package from Clive Temperton                      
>REAPAR GKDLDR - Gutkowicz-Krusin & Draine (2004) LDR for alpha
>REAPAR NOTBIN - Unformatted binary dump option                               
>REAPAR **** Initial Memory Allocation ****                                   
>REAPAR allow MXNX,MXNY,MXNZ=   100   100   100 for target generation         
>REAPAR **** Target Geometry and Composition ****                             
>REAPAR ELLIPSOID - Shape definition                                  
... etc ...
>SCAT     1644 scattering directions used to calculate <cos>, etc.          
>TIMEIT  Timing results for:  SCAT                                            
>TIMEIT    45.188 = CPU time (sec)                                            
>DDSCAT return from DDSCAT to calling program
ddscat main ckpt 1, NRFLD=           0
>DDSCAT normal termination, with no nearfield calculation

Examples

From the ddscat homepage download the examples. It’s a gzipped tar file like this: ddscat7.2.2_examples_120605.tgz. This will untar to a directory of example projects. Then just change into one of the examples directories such as ELLIPSOID and run the ddscat program.

$ cd ELLIPSOID
$ ddscat