Skip to content

Releases: adda-team/adda

Version 1.4.0

15 Dec 20:51
Compare
Choose a tag to compare

This release aggregates a lot of improvements over the last several years.

  • Major new feature: non-cubical (rectangular cuboid) dipoles (#196). Controlled by the command line option -rect_dip <x> <y> <z>. Can lead to drastic acceleration in some cases.
  • New command line option: -so_buf {no|line|full} for manually specifying the buffering of stdout. On Widows line buffering is emulated, which improves performance in some cases (#277).
  • Improvement of tests/2exec to ignore most of the legitimate messages. Three more testing suites added, and script test_all for systematic testing. Makes the whole ADDA development much more robust.
  • Remove limitations of grid size dimensions to be even (#95). A monolayer of dipoles is now possible.
  • Behavior of -maxiter ... command line option was changed. Now when given number is reached ADDA produces a warning
    and continues to calculate scattering quantities (#111).
  • Set the official pronunciation of ADDA - /'adda/.
  • Many changes to OpenCL part:
    • Significant speed improvements (especially for relatively small problems).
    • Switched from discontinued library clAmdFft to clFFT (#204). It supports the same sizes of transforms as FFTW3.
    • Test implementation of the whole iterative solver (currently only BiCG) on the GPU using clBLAS (#199).
    • Improved compilation flags for MacOS - now works out of the box (#279).
  • Improved description and version detection for modern MPI implementations (#203, #246). Minimum MPI version requirement is now 2.1.
  • Added support for Microsoft MPI - works out of the box on Windows (d5814aa).
  • Added separate timing for matrix-vector products (#16). Precision of total wall time was improved.
  • Optimized computation of exp(ix) for real x using tables (#169). It accelerates sparse mode by 30-50% (similar to
    more specialized SSE3 code).
  • Fixed redundant IFAIL errors in IGT routines (f6d6400). Now IGT is applicable to arbitrarily small particles.
  • Moved to GitHub with a lot of related changes to documentation (#210) and scripts. In particular:
  • Several minor bugs fixed or addressed (#157, #198, #207, #215, #216, #228, #266, #269, #270, #271, #276).
  • Added wiki pages: UsingEclipse, InstallingclFFT, and InstallingclBLAS.
  • Deprecated wiki pages InstallingclAmdFft and InstallingclAmdBlas (the latter newly created).
  • Updated wiki pages CompilingADDA, InstallingFFTW3, InstallingMinGW, OpenCL, SparseMode, InstallingMPI, Acknowledgements.
  • The manual has been significantly reworked and extended. In particular, the source file format has been changed to .docx and it now uses Microsoft Equations for formulae.
  • A number of improvements for misc/ packages:
    • near_field now works with inhomogeneous particles (#259).
    • pip updated for massive simulation (many files, billions of dipoles) (#262).
  • Windows 32-bit executables are no more provided.

More details about this release can be found in history. Attached to the release (below) are the full source code in .zip and .tar.gz formats, as well as binaries for 64-bit Windows.

Version 1.3b4 - 20.02.2014

09 Jul 07:11
Compare
Choose a tag to compare

This was supposed to be a beta release, but the further development slowed down for some time. Still, this release stood the test of time and can be fully considered a stable one. The only drawback is that some descriptions has not been updated, like description of packages and Code Design. There has also been a minor issue with lacking dlls for the Windows executables for misc/pip (#216).

  • Major changes to the code due to switch to complex types of C99 (#70).
  • Major new feature: DDA for particle near surface (substrate) - #101. Command line options: -surf ..., -int_surf ....
  • New command line option -scat_plane, which defines that the scattering should be calculated in the scattering plane (#170).
  • Implementation of point-dipole incident field (#149). Should work both for free space and in the presence of surface (dipole should be above the surface). Controlled by new beam type: -beam dipole .... Thanks to Stefania D'Agostino for the preliminary version of this code.
  • New experimental DDA formulation for non-local (spatially dispersive) materials (two different flavors: point-value and averaged over dipole volume) - #190. Command line options -int {nloc|nloc_av} ... and -pol {nloc|nloc_av} .... Currently assumes quasi-static case (particles are much smaller than the wavelength).
  • Several improvements of tests/2exec to accomodate new features and test modes (r1254, r1255, r1263, r1265, r1285).
  • Removed compensation of Cext for -scat fin (#188).
  • Added a test to timing.c, which will notify the user of (potential) timer overflow in timing results in log.
  • Symmetries are now mentioned in log not only in no or enf regimes, but also in auto. Then the specific set of used symmetries is given.
  • A few minor bugs fixed or addressed (#172, #174, #182).
  • Changes to Makefiles:
    • Added test of gcc version, '-pedantic' is used only for versions >= 4.7.2.
    • Added test to require version 3.81 of make, including support for else-if (r1285).
  • README files in win32/ and win64/ were improved to refer to the main package.
  • New wiki pages: AddingInteraction, AddingReflection, AddingPolarizability (#106), Links.
  • New sections in the manual: Surface Mode, Incident Beam, Reflection term, Decay rate enhancement, Sommerfeld integrals.

Version 1.2 - 08.06.13

06 Jul 11:44
Compare
Choose a tag to compare
  • Sparse mode is now fully integrated into ADDA and significantly improved (#98). It is designed for very porous particles.
  • Linked to new OpenCL FFT library from AMD (clAmdFft), it is now the default one in OpenCL mode (#144). Speed improvement is a few times depending on the GPU. But there are some limitations (#157).
  • New iterative solver BCGS2 - an improved version of BICGSTAB (#24).
  • New command line option argument -init_field read <filenameY> [<filenameX>] to initialize an iterative solver by the field read from file (#2).
  • Behavior of WKB initial field was slightly improved. Before WKB result was assigned to Eexc, now it is assigned to E (similar to the behavior of -init_field read).
  • Subversion revision number was added to the output of -V command line option (#125).
  • Timing for generation of incident beam was added.
  • Memory usage during prognosis was slightly reduced.
  • Finally removed deprecated options -Cpr_mat and -sg_format ddscat.
  • Fixed inaccuracy in input/scat_params.dat (r1159).
  • A few minor bugs were fixed (#83, #159, #162).
  • Several improvements of tests/2exec to accommodate OpenCL and sparse modes, as well as comparison of different FFT implementations (r1192, r1200, r1203).
  • Added wiki pages: SparseMode, InstallingclAmdFft, CodeDesign (#75), and CodeStyleGuide (#74).
  • Added new folder devtools. It contains a couple of text files, bash scripts for preparing files for release and other tasks.
  • Added doxygen config file (doc/doxy/Doxyfile) for automatic generation of extensive docs and GraphViz files (doc/gv/) with schemes describing ADDA design (for svg files in CodeDesign).
  • Several improvements to Makefile:
    • Improved the automatic dependency generation - now it is faster and more robust.
    • Full support for compilation in 32-bit mode on 64-bit OS, using EXTRA_FLAGS=-m32, also for misc/ packages.
    • New make targets: cleanfull, cleanruns, cleanrunsseq, cleanrunsmpi, cleanrunsocl. They enable cleaning output from ADDA runs.

Version 1.1 - 05.06.12

06 Jul 11:35
Compare
Choose a tag to compare
  • New OpenCL-based version of ADDA to effectively use GPUs for simulations (#118).
  • Calculation of radiation forces was largely improved, fixing several bugs. Now it is well-tested with only two remaining limitations (#14, #135). Connected changes:
    • Output files VisFrp-?.dat were renamed into RadForce-?.
    • Command line option -Cpr_mat was renamed into -Cpr. The former was marked deprecated.
  • Three new misc/ packages. In particular, it greatly simplifies using many common 3D shape formats together with ADDA (#34).
  • Added support for DDSCAT7 shape format, the previous one was labeled DDSCAT6. Command line option '-sg_format ...' was updated accordingly (#105).
  • New predefined shapes: chebyshev, plate, and prism.
  • New command line option to read incident beam from file '-beam read <filenameY> [<filenameX>]' (#2).
  • New polarizability formulations: DGF and LAK (#13).
  • New formulation IGT_SO, which is a much faster version of IGT. It applies to polarizability, interaction term, and scattering quantities (#84).
  • New iterative solvers: CSYM and QMR2 (#24).
  • New command line option to choose how to initialize the iterative solver: '-init_field {auto|zero|inc|wkb}'. First implementation of the WKB incident field is done (#59).
  • New command line option -recalc_resid to directly recalculate residual at the end of the iterative solver (#25).
  • Updated the default build platform to GCC 4 (tested with 4.5.2). Many connected changes, in particular #122. Speed of Windows executables increased by about 10-20%.
  • ADDA executables for 64-bit Windows are now available (#66).
  • Windows executables for routines from misc/ are now available, both 32- and 64-bit (#104).
  • Added automatic tests of ADDA executables to /tests/2exec (#6).
  • Minor bugs were fixed (#123, #124, #128, #136, #139, #146).
  • Minor bug in handling input shape filename was fixed (r1141).
  • Several wiki pages were added: AddingShapeFileFormat, Awards, InstallingMinGW, InstructionCommitters, LargestSimulations, OpenCL, Publications, and References (#117).
  • Deprecated command line option -prognose was finally removed.
  • Automatic names for output directory were slightly changed (r1106).
  • Two new development branches (try them at your own risk): weighted discretization (#12) and sparse (non-FFT) DDA (#98).

Version 1.0 - 10.09.10

06 Jul 11:23
Compare
Choose a tag to compare
  • Fabio Della Sala and Stefania D'Agostino contributed code to calculate near-field with ADDA (misc/near_field). Now it is included in the main package.
  • "Integration of Green's tensor" formulation of the DDA was implemented based on the code contributed by Patrick Chaumet and Adel Rahmani (part of #84).
  • New predefined shapes: bisphere, bicoated, and biellipsoid.
  • New command line option -scat_matr {muel|ampl|both|none} to specify which scattering matrix (amplitude and/or Mueller) need to be stored to file (#7).
  • Calculation of Green's tensor was accelerated by doing all 6 components at once (#58).
  • The code was refactored (see current state). Makefiles were significantly improved (see compilation instructions). In particular, #65 and #81 were fixed.
  • Homepage at Google Code was completely rewritten. Now it is is the main official page of ADDA.
  • Documentation was significantly reworked. Many sections of the manual, not directly related to performing light scattering simulations were moved to wiki pages. A number of other wiki pages were added. doc/faq was moved to a wiki page FAQ.
  • Several bugs in granule generator were fixed (#108, #109).
  • Fixed bug in calculation of radiative forces (r972).
  • Minor bugs were fixed (#93, #96, #97, #107, #110).

Version 0.79 - 29.05.09

06 Jul 11:07
Compare
Choose a tag to compare
  • Added using SLURM job ID, when available.
  • Saving of granule coordinates to a file was implemented.
  • The code was tested for 64bit, implementing a number of corrections/improvements.
  • New shape axisymmetric was added. The internals of shape generation routines were adjusted so that shape can now define the absolute size of the particle.
  • A new option '-scat fin' was implemented, which uses finite dipole correction for calculation of Cabs and Cext.
  • Breakdown detection of iterative solvers was improved.
  • -prognose command line option was replaced by -prognosis (correct spelling). The former is still operational but marked as deprecated.
  • The code was transformed to C99 standard without using its parts, which are not yet widely supported by compilers (such as inline and complex). Explicit support of this standard is required during compilation. Some style changes were done, and some work in this direction is still due.
  • Affiliation of one of the author (Maxim Yurkin) has changed to Institute of Chemical Kinetics & Combustion (Novosibirsk, Russia). Full name of the package was changed from 'Amsterdam DDA' to ADDA. This does not change the global strategy of ADDA development.
  • Code repository has been moved to Google Code. Google groups adda-announce, adda-discuss and adda-develop were created to facilitate interaction with users. This replaces the previous mailing list.
  • Copyright was updated to GPL 3.
  • To-do list was replaced by issue tracker.
  • Additions to the manual: short history of earlier ADDA development, description how to add new beam type and new command line options, a small summary of the comparison of the DDA with the FDTD, discussion of difference between two ways to calculate Csca, possibilities to improve the accuracy of these calculations, and connection between differential cross section and the Mueller matrix.
  • Information on how to cite the manual was added to its first page. It includes a direct link to the particular version of the manual on Google code.
  • Manual license is now explicitly set to Creative Commons Attribution 3.0 license.
  • Several minor bugs were fixed.

Version 0.78.2 - 11.04.08

06 Jul 08:56
Compare
Choose a tag to compare
  • 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.
  • 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. Moreover, even when other two iterative solvers were used, erroneous results were calculated for certain values of refractive index.

Version 0.78 - 19.03.08

06 Jul 08:54
Compare
Choose a tag to compare
  • Name of MPI executable is now adda_mpi; this allows automatic compilation of both sequential and MPI versions from the same source folder.
  • Parallel executable for Win32, compiled with MPICH2, is included in the package.
  • Filtered coupled dipoles formulation was 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). It greatly improves DDA performance for large refractive indices.
  • To-do list added to the package: doc/todo.xls and todo.pdf.
  • Hands-on tutorial was added to the manual. It is based on the one carried out during the DDA Workshop in Bremen.
  • New command line option '-opt {speed|mem}' was added. It allows choosing whether ADDA will optimize itself for maximum speed or for minimum memory usage.
  • 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.
  • New command line option '-eq_rad <arg>' was added, it allows one to specify volume-equivalent radius of a scatterer.
  • 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 stderr. ADDA tries to get terminal width from COLUMNS environmental variables and, if fails, uses the default value.
  • Two new shapes were added: capsule and egg. They were implemented by Daniel Hahn and Richard I. Joseph.
  • 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.
  • Orientation averaging was optimized. If α is varied in a full range [0°,360°), only one value of γ is simulated for β=0° and 180°, 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. 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}'.
  • Several minor bugs were fixed.

Version 0.77 - 05.06.07

06 Jul 08:49
Compare
Choose a tag to compare
  • The bug was fixed that crashed the calculation of radiation forces.
  • Handling of large integers was improved throughout the program. Now it should work for any problem that fits into memory. Checks of integer overflow were added where necessary to avoid crashes.
  • Robustness of handling the command line and input files was improved.
  • Makefiles were improved, in particular, an option was added to use Intel compilers without static linking.
  • Command line option -store_dip_pol was added to save dipole polarizations to file.
  • The breakdown detection of the iterative solvers was improved. Now it should be much more sensitive. Thanks to Sorin Pulbere for reporting a test problem.
  • A minor bug in Romberg integration, reported by Antti Penttila, was fixed.
  • Locking of files was made more flexible. A compile option was added to independently turn off the advanced file locking.
  • Manual was significantly improved. "DDA formulation" section was rewritten to be self-contained, sections "Near-field" and "Comparison with other DDA codes" were added. Sections on compiling and running the code were extended to discuss in detail multi-core PCs. Sections "Applicability of DDA" and "System requirements" were extended to include recent benchmark results and discussion. Thanks to Vitezslav Karasek and Liviu Clime for their feedback.

Version 0.76 - 14.10.06

06 Jul 08:30
Compare
Choose a tag to compare
  • Makefiles modified to include Compaq compiler. New variables added to set path for FFTW3 header and library.
  • New option -V added to show version, compiler used, and copyright information.
  • Robustness of memory handling improved.
  • Timing is now produced even when -prognose option is used. Communication times are shown only in parallel mode, they are now more accurate.
  • All timing in parallel mode is now done through MPI_Wtime, which measures wall time.
  • Memory requirement in the manual are slightly corrected. The values produced by the program itself were correct.
  • New option -granul to granulate one of the domains.
  • Orientation averaging did not work in parallel (reported by Antti Penttila). Fixed.
  • Symmetries were not switched off by non-symmetric Gaussian beams. Fixed.
  • Computation of scattering of a tightly focused Gaussian beam was compared to multiple multipole method (data by Roman Schuh and Thomas Wriedt). Results of the comparison show perfect agreement.
  • New chapter in the manual to facilitate adding a new predefined shape.
  • New file doc/faq added for frequently asked questions.
  • New option -store_beam to save incident electric fields to a file.
  • Starting from this release ADDA executable for 32 bit Windows is available. It is compiled with MinGW and distributed with FFTW3 dynamic link libraries. Thanks to Alexander Shvalov for information on MinGW.
  • Added support for anisotropic refractive index (option -anisotr). Currently it is limited to refractive index tensors that are diagonal in the particle reference frame. Thanks to Michiel Min for fruitful discussions.