Skip to content

Commit

Permalink
Moving directory tree one level higher.
Browse files Browse the repository at this point in the history
  • Loading branch information
myurkin committed Nov 24, 2008
1 parent 57f1079 commit 71966a3
Show file tree
Hide file tree
Showing 60 changed files with 9,206 additions and 10,602 deletions.
66 changes: 30 additions & 36 deletions doc/README
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
ADDA 0.77
*********
"Amsterdam DDA"

Maxim A. Yurkin(1,2) and Alfons G. Hoekstra(1)

(1) Faculty of Science, Section Computational Science,
of the University of Amsterdam,
Kruislaan 403, 1098 SJ, Amsterdam, The Netherlands,
tel: +31-20-525-7530, fax: +31-20-525-7490

(2) Institute of Chemical Kinetics and Combustion,
Siberian Branch of the Russian Academy of Sciences,
Institutskaya 3, Novosibirsk 630090 Russia,
tel: +7-383-333-3240, fax: +7-383-334-2350

email: [email protected]

last revised: 4 April 2007

Copyright (C) 2006-2007 University of Amsterdam
This software package is covered by the GNU General Public License.


## ##### ## ##### ## ##
/#### /##### /## /##### /## /####
/ ### // / / ### // / / ### / ###
Expand All @@ -17,31 +41,6 @@
## ## ## ##



Maxim A. Yurkin

Institute of Chemical Kinetics and Combustion,
Siberian Branch of the Russian Academy of Sciences,
Institutskaya 3, Novosibirsk, 630090, Russia,
tel: +7-383-333-3240, fax: +7-383-334-2350

Alfons G. Hoekstra

Faculty of Science, Section Computational Science,
of the University of Amsterdam,
Kruislaan 403, 1098 SJ, Amsterdam, The Netherlands,
tel: +31-20-525-7530, fax: +31-20-525-7490


email: [email protected]

$Date:: $

Copyright (C) 2006-2008 University of Amsterdam
This software package is covered by the GNU General Public License.



1. INTRODUCTION
***************

Expand Down Expand Up @@ -77,7 +76,6 @@ format. It contains instructions for:
* specifying what scattering quantities should be calculated;
* understanding the computational aspects and timing of the code;
* understanding the command line options and formats of input and output files.
* modifying the source code for added functionality


2. AVAILABILITY
Expand All @@ -87,10 +85,8 @@ format. It contains instructions for:
it will prove to be a useful tool. We ask only that:

* If you publish results obtained using ADDA, you should acknowledge the source
of the code. We recommend the following general reference:
M. A. Yurkin, V. P. Maltsev, and A.G. Hoekstra, "The discrete dipole
approximation for simulation of light scattering by particles much larger than
the wavelength", J. Quant. Spectros. Radiat. Transf. 106, 546-557 (2007).
of the code. Please contact the authors ([email protected]) for the most
recent reference.

* If you discover any errors in the code, please promptly communicate them to
the authors.
Expand Down Expand Up @@ -118,11 +114,9 @@ doc/ - documentation
copyleft - GNU General Public License
history - complete history of ADDA development
faq - frequently asked questions
manual.doc - source of User Manual in MS Word format
manual.pdf - user Manual for ADDA in PDF format
manual.doc - Source of User Manual in MS Word format
manual.pdf - User Manual for ADDA in PDF format
README - this file
todo.xls - source of the todo list in MS Excel format
todo.pdf - todo list in PDF format
input/ - default input files
tables/ - 10 auxiliary files with tables of integrals
alldir_params.dat - parameters for integral scattering quantities
Expand All @@ -139,8 +133,8 @@ src/
Makefile, make_seq, make_mpi - makefiles
ADDAmain.c, CalculateE.c, calculator.c, cmplx.h, const.h, crosssec.c/h,
comm.c/h, debug.c/h, fft.c, function.h, GenerateB.c, io.c/h, iterative.c,
make_particle.c, matvec.c, memory.c/h, os.h, param.c/h, parbas.h,
prec_time.c/h, Romberg.c/h, sinint.c, timing.c/h, types.h, vars.c/h
make_particle.c, matvec.c, memory.c/h, os.h, param.c/h, prec_time.c/h,
Romberg.c/h, timing.c/h, types.h, vars.c/h
- source and header files of ADDA
cfft99D.f - source file for Temperton FFT
mt19937ar.c/h - source and header files for Mersenne Twister random generator.
Expand Down
14 changes: 2 additions & 12 deletions doc/faq
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Frequently Asked Questions
about ADDA
about Amsterdam DDA

$Date:: $
last revised: 3 June 2007

Q: I have found a bug in ADDA. What should I do?
A: 1) Make sure you are using the latest version of ADDA (check the ADDA
Expand All @@ -14,7 +14,6 @@ A: 1) Make sure you are using the latest version of ADDA (check the ADDA
parameters as possible without removing the bug. Also try to use defautl
versions of input files, that you have modified.
5) Send the results of (3) and (4) to the authors, together with all input

files and Makefiles that you have used for compilation. Do not forget to
include all the relevant output files, at least 'log'. Please also include
a brief description of your operation system and hardware. We will try to
Expand Down Expand Up @@ -71,14 +70,5 @@ A: The simplest is to specify your particle by a shape file. However, if your
source files to the authors so they would be incorporated in the next
release for the benefit of the community.

Q: How is the Mueller matrix, produced by ADDA, defined and/or normalized?
A: It is defined as in Bohren & Huffman "Absorption and scattering of Light by
Small Particles" (1983), and it is not normalized. Some other codes may
compute Stokes scattering matrix, which is normalized so that 1,1-element
is equal to 1 after averaging over the whole solid angle. This matrix
should be multiplied by (pi*Csca/(lambda^2)) to get Mueller matrix. Csca is
the scattering cross section for unpolarized light, equal to average of
scattering cross sections for any two perpendicular incident polarizations.

This list is far from being complete. Please send your questions to
[email protected]
95 changes: 2 additions & 93 deletions doc/history
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Ver. 0.74 - 29.03.06
+ User manual improved.
* 'buggy' beam type removed (obsolete).
* '-nosym' and '-sym_enf' options combined to '-sym {no|enf}'.
- In documentation there was option '-pol ldr avg' while actually it was
- In documentation there was option '-pol ldr avg' while actually it was
'-pol ldr avgpol'. It is averaging over incident polarizations
(not directions). Documentation corrected.
+ Internal fields are now automatically collected into one file, when running
Expand Down Expand Up @@ -96,7 +96,7 @@ Ver. 0.76 - 14.10.06
+ Makefiles modified to include new compiler 'compaq'. New variables added to
set path for FFTW3 header and library.
* Default dpl is now calculated based on the maximum absolute value among given
refractive indices, not the first one. dpl=10*max(|m|)
refractive indices, not the first one. dpl=10*sqrt(max(|m|))
- Removed requirement of full set of refractive indices to be given for multi-
domain scatterers, if '-prognose' option is used. Produces information
message when relevant.
Expand Down Expand Up @@ -183,94 +183,3 @@ Ver. 0.77 - (05.06.07)
discuss in detail multi-core PCs. Sections "Applicability of DDA" and "System
requirements" were extended to include recent benchmarking results and
discussion. Thanks to Vitezslav Karasek and Liviu Clime for their feedback.

----------------------------------
Ver. 0.78 - (19.03.08)

* Makefiles were improved to enable automatic compilation of both sequential and
MPI versions from the same source folder. Name of MPI executable is now
adda_mpi.
+ New file parbas.h added. MPI version is now checked for conformity both during
compilation and at runtime.
+ Parallel executable for Win32, compiled with MPICH 2, is included in the
package.
+ sample/test.sge file was updated to run on DAS-3 cluster.
+ Added explicit description of the used notation for the Euler angles in the
manual, source code, help system, and parameter file.
+ sample/test.pbs was slightly improved.
+ File sinint.c added to calculate sine and cosine integrals.
+ Function cEqual was added to cmplx.h, it replaces memcpy calls in many other
files.
+ Filtered coupled dipoles implemented (both full and quasistatic version). New
arguments 'fcd' and 'fcd_st' for interaction term ('-int' command line option)
and 'fcd' for polarization term ('-pol' command line option).
+ To-do list added (both in xls and pdf format).
+ Hands-on tutorial was added to the manual. It is based on the one carried out
during the DDA Workshop in Bremen.
- ADDA was crashing for certain incorrect parameters given with the -h command
line option. Fixed.
+ A few explicit statements that angles are specified in degrees were added to
the help and input files.
+ New command line option '-opt {speed|mem}' added. It allows to choose whether
ADDA will optimize itself for maximum speed or for minimum memory usage.
+ Stability of complex arithmetics slightly improved.
+ Calculation of scattered fields is accelerated by more than 4 times (compiled
with gcc). Thanks to R. Scott Brock for this idea. This may also significantly
accelerate orientation averaging, depending on the problem. Intel compiler is
now only 10-20% faster than gcc, for all parts of the code.
- Minor bug in symmetry initialization of shape 'spherebox' is fixed.
- Information messages, when no real dipoles were allocated to one of the
processors, did not work. Fixed.
* Information messages ("INFO:...") are now given without references to source
files, which looks simpler.
+ New command line option '-eq_rad <arg>' was added, it allows one to specify
volume-equivalent radius.
* Format of shape definitions in 'make_particle.c' was slightly changed.
* Shapes 'box' and 'spherebox' no longer depend on the second and third argument
of '-grid' option.
+ Shape 'box' now accepts two optional arguments (y/x and z/x aspect ratios)
defining a rectangular parallelepiped.
+ Automatic line wrapping was added for most output to stdout and sderr. ADDA
tries to get terminal width from COLUMNS environmental variables and, if
fails, uses the default value.
* '-pedantic' option for gcc was removed from Makefile, since it gave warnings
about long predefined strings.
- Shape 'line' was not working correcty in combination with '-jagged' or
explicitely specified grid sizes along y- and z-axes. Fixed.
+ Two new shapes were added: capsule and egg. They were implemented by Daniel
Hahn and Richard I. Joseph.
+ Description of predefined shapes in the manual was improved.
* Now, if grid size is auto-initialized from default dpl, ADDA ensures that it
is not smaller than 16.
+ Limitation on positiveness of dipole coordinates in shape file was removed.
Now ADDA automatically determines the minimum box around the particle and
centers it as usual. It also ignores blank lines in the middle or in the end
of shape file.
+ Orientation averaging was optimized. When beta=0 or 180, gamma angle is not
relevant but only combinations alpha+-gamma. If alpha is varied in a full
range [0,360), only one value of gamma for these specific beta values is
calculated, saving a few evaluations of internal fields. Thanks to Antti
Penttila for this idea.
+ Limited two-way compatibility with DDSCAT 6.1 geometry format was added,
corresponding to its shape option FRMFIL and output of 'calltarget' utility.
ADDA automatically detects DDSCAT format during reading of dipole file. When
saving geometry to the file, the format is determined by new command line
option '-sg_format {text|text_ext|ddscat}'.
+ New argument 'auto' was added to '-sym' command line option to correspond to
the general rule that one of the possible arguments is the default one. No
functionality is changed for other arguments.

----------------------------------
Ver. 0.78.1 - 08.04.08

- Critical bug in cDiv and cDivSelf functions in source file cmplx.h was fixed
(introduced in version 0.78). This bug made BiCGSTAB and BiCG iterative
solvers to fail. However, even when other two iterative solvers were used,
erroneous results were calculated for certain values of refractive index.

----------------------------------
Ver. 0.78.2 - 11.04.08

- An implementation of a new FCD polarization prescription (-pol fcd) was
somewhat faulty. Correction terms of orders (kd)^2 and ln(...)(kd)^3 were
interchanged. Fixed.
Binary file modified doc/manual.doc
Binary file not shown.
Binary file modified doc/manual.pdf
Binary file not shown.
Binary file removed doc/todo.pdf
Binary file not shown.
Binary file removed doc/todo.xls
Binary file not shown.
1 change: 0 additions & 1 deletion input/alldir_params.dat
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ eps=0
equiv=true
periodic=true

# all angles are specified in degrees
# all values are precalculated; so high 'eps' does not decrease computational
# time, but may decrease accuracy. If eps=0, Jmin is not used.

Expand Down
7 changes: 1 addition & 6 deletions input/avg_params.dat
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@
# This file should be manually modified by user.
# Program does not assume any symmetries of the particle.
# Therefore, possible symmetries should be considered by user and this can lead
# to decrease of integration limits.
# Here zyz-notation (or y-convention) is used for the Euler angles.
# to decrease of integration limits

alpha:
# calculation for alpha is cheap but only precalculated, therefore
# Jmax should be rather large.
# Jmin and eps are really not used;
# Do not change the range from default unless you have a good reason;
# using only one value of gamma for beta=0,pi is done only when full
# range is specified here to avoid possible inaccuracies.
# default: min=0;max=360;Jmax=5;equiv=true;periodic=true
min=0
max=360
Expand Down Expand Up @@ -47,7 +43,6 @@ eps=1e-3
equiv=true
periodic=true

# all angles are specified in degrees
# Jmin,Jmax are minimum and maximum numbers of refinement stages
# Nmax = 2^Jmax + 1
# for those with equiv=true Nmax is effectively less by 1
Expand Down
1 change: 0 additions & 1 deletion input/scat_params.dat
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ eps=0
equiv=true
periodic=true

# all angles are specified in degrees
# all values are precalculated; so high 'eps' does not decrease computational
# time, but may decrease accuracy
# Jmin,Jmax are minimum and maximum numbers of refinement stages
Expand Down
39 changes: 19 additions & 20 deletions sample/run000_sphere_g16m1_5/log
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Generated by ADDA v.0.78.2
Generated by ADDA v.0.77
The program was run on: dda
command: './adda '
lambda: 6.283185307
Expand All @@ -24,7 +24,6 @@ Scattering quantities formulae: 'by Draine'
Interaction term prescription: 'as Point dipoles'
FFT algorithm: FFTW3
Iterative Method: QMR (complex symmetric)
Optimization is done for maximum speed
The FFT grid is: 32x32x32
Memory usage for MatVec matrices: 1.3 Mb
Total memory usage: 2.2 Mb
Expand All @@ -48,14 +47,14 @@ RE_011 = 2.4111231314E-02 + progress = 0.193557
RE_012 = 3.8307716444E-03 + progress = 0.841121
RE_013 = 3.0434605426E-03 + progress = 0.205523
RE_014 = 1.3101400518E-03 + progress = 0.569523
RE_015 = 8.2588869902E-04 + progress = 0.369618
RE_016 = 5.0452779281E-04 + progress = 0.389109
RE_017 = 1.1339755335E-04 + progress = 0.775240
RE_018 = 9.3640503439E-05 + progress = 0.174228
RE_019 = 6.8748633527E-05 + progress = 0.265824
RE_020 = 2.2386152530E-05 + progress = 0.674377
RE_021 = 1.5169835168E-05 + progress = 0.322356
RE_022 = 3.1682277704E-06 + progress = 0.791149
RE_015 = 8.2588869908E-04 + progress = 0.369618
RE_016 = 5.0452779283E-04 + progress = 0.389109
RE_017 = 1.1339755286E-04 + progress = 0.775240
RE_018 = 9.3640503878E-05 + progress = 0.174228
RE_019 = 6.8748635222E-05 + progress = 0.265824
RE_020 = 2.2386137724E-05 + progress = 0.674377
RE_021 = 1.5169807150E-05 + progress = 0.322357
RE_022 = 3.1682119643E-06 + progress = 0.791150

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Timing Results
Expand All @@ -66,16 +65,16 @@ Total planes of E field calculation (each 181 points): 2
Total wall time: 1
--Everything below is processor times--
Total time: 0.6300
Initialization time: 0.2100
Initialization time: 0.2600
init Dmatrix 0.0100
FFT setup: 0.2000
FFT setup: 0.2500
make particle: 0.0000
Internal fields: 0.3700
one solution: 0.3700
init solver: 0.0200
one iteration: 0.0200
Scattered fields: 0.0300
one plane: 0.0200
Other sc.quantities: 0.0100
File I/O: 0.0100
Internal fields: 0.2600
one solution: 0.2600
init solver: 0.0100
one iteration: 0.0100
Scattered fields: 0.1100
one plane: 0.0500
Other sc.quantities: 0.0000
File I/O: 0.0000
Integration: 0.0000
Loading

0 comments on commit 71966a3

Please sign in to comment.