Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A lot of improvements to sparse mode:
- Macro (flag) ADDA_SPARSE was shortened to SPARSE. - Makefiles modified to produce info about SPARSE and USE_SSE3 and set up interaction (errors) with other options. - Gather operations of sparse mode are now performed through AllGather(). For that it was modified to enable in-place operation, and a new MPI_Datatype mpi_int3 was introduced. Previously used functions and variables has been removed. - In sparse mode local_nvoid_d0 and local_nvoid_d1 are now initialized in ParSetup(), while SetupLocalD() is not called at all. - Memory optimizations: material_full and remnants of DipoleCoord_full are eliminated, 'position' is no more allocated but just points to a part of position_full. - A lot of indexes in sparse_ops.h are now size_t instead of int. Among other changes, Fixes issue 159. - Fixed initialization of mat_count in MakeParticle() in sparse mode. It was broken and led - Timings for init Dmatrix and FFT setup are no more shown in sparse mode. - All command line options, not supported in sparse mode, are now explicitly removed during compilation (with appropriate modification of help texts). These includes: '-shape ...' (except read), '-init_field wkb', -granul, -save_geom, -sg_format, -store_grans. - Removed error messages when using '-int ...' (except poi) in sparse mode. Now these options work fine, but relatively slow. - Information about compile options SPARSE and USE_SSE3 (when used) has been added to output of option -V. Added information about sparse mode to log file (instead of information about FFT method). - Added meaningful error message for default run of adda (without command line parameters) in sparse mode. - A lot of formatting changes to make the sparse mode similar to the rest of the code. Other changes: - interaction.c/h now holds all the code related to calculation of Green's tensor. In particular, reading/freeing of table integrals was moved from calculator.c, and duplicating code to compute Green's tensor in fft.c was removed. An important change is that now functions, which compute Green's tensor do not test for zero argument. Hence, these test is now made in InitDmatrix(). - Intermediate vector DipoleCoord_tmp is no more used in make_particle.c. This somewhat decreases memory usage during prognosis. Overall, the code in MakeParticle() was significantly changed (a lot of moving parts around). - oclcore.h is now always included, but is void if OPENCL is not specified. That is similar to other conditional headers like fft.h. - Tests (tests/2exec) were modified to incorporate sparse mode (to compare two sparse mode versions or sparse mode vs. FFT mode). Corresponding tests are listed in separate file - suite_sparse, which is automatically used if appropriate flag is uncommented in comp2exec. Added 2 new shape files and modified ellipsoid.geom. Improved behavior of diff_numeric.awk - before it was skipping differences, if the line was missing in the first file. - A number of files (new or heavily modified) were formatted for a window width of 120 symbols. - A number of minor syntax changes to remove warnings by Eclipse code analyzer. In particular, changed several empty statements from ";" to "{}", removed two unused functions, and hid several extern declarations in sparse mode. - Fixed crashes when using command line options '-shape' and '-beam' without arguments. Now meaningful error messages are produced. - version incremented to 1.2b2. The updated code was tested to compile in different compilation modes (almost all possible combinations) and tested by tests/2exec/ against the version 1.1.
- Loading branch information