To install SDA, first unpack and decompress the distribution package:
tar xvzf sda-7.3.0.tgz
In the root directory of the distribution package (sda_flex/) the following directories and files can be found:
auxi/ | Auxiliary programs for sda (shell, python script, clust and fortran programs from SDA 6) |
bin/ | Default directory for the executables |
doc/ | HTML documentation (for developers: generate the doxygen documentation of the code by executing doxygen Doxyfile_sdaflex ) |
examples/ | Directory containing the example calculations and the tutorial |
lib/ | Library for sda_flex and tools contained in bin/ |
src/ | Source code |
Doxyfile_sdaflex | Input file for doxygen - for generating the technical documentation |
README | Short guidance for compilation and introduction to the examples included with the software |
The directories lib/, bin/ are empty after the download.
We do not provide default executables for SDA 7.
To compile the SDA executable (sda_flex
), the library (libsda.so
) and the tools go to the src/ directory
Edit the Makefile and adapt these parameters to your needs:
- variable CC : compiler executable, default is "gfortran" but compilation has been tested with Intel and (partly) with Portland and XLF compilers
- variable debug : default is "no", it activates optimisation and switches off debugging information; "yes" sets debugging option on and deactivates optimisation (use only for development).
- variable OpenMP : activates OpenMP, default is "yes". By default, all available CPUs are used. If you want, e.g., to limit runs to 4 CPUs,
enter
export OMP_NUM_THREADS=4
in the console, before runningsda_flex
Next, clean the object files (recommended):
make clean
: delete all object files in src/ and executables ( in lib/ and bin/ ).make clean_mod
: only delete object files in src/, directories with the executables are not modified.
Compile and install to bin/ or bin_arch2/:
make
, or synonymously,make all
: compile the library in lib/ and all executables (sda_flex
and tools)- alternative options :
make lib_sda
,make sda_flex
,make tool
,make auxi
,make test_module
Known issues for compilation:
- According to user reports, compilation on MacOS requires the following linker settings (please modify the src/Makefile accordingly): LDFLAG=-Xlinker -rpath -Xlinker '$${ORIGIN}/../lib/' , basically remove -Xlinker --enable-new-dtags
A separate C++ program for clustering is provided with the software release.
We provide this executable in sda_flex/auxi/clust, to compile this call make clust in the src directory.
and the documentation at sda_flex/auxi/clustering/doc
We have recently implemented some regression tests. To execute them, go to examples/run_tests/ and run:
./run_tests.sh
test_force_energy2
.
This executable reads complete sda input files (always sda_energy
calculations) and compares the results of forces and energies calculations by all implemented methods.
An error is generated if some differences between the methods are found.
Optionaly it is possible to activate valgrind (a memory check tool) in run_tests.sh
,
for testing the correct initialisation / destruction of objects (applicable mainly with gfortran, and if OpenMP is activated a single error is reported).
Note than all grids and effective charges of the examples are needed and should be already present in the data_grid/ directory. You need to run at least once the shell script present in the prepare_ecm_grids/ directories
.- The page you are reading is part of the main documentation in sda_flex/doc/doc_sda7/doc.html or on our webserver at http://www.mcm.h-its.org/sda7.
- The technical documentation of the code and implementation details need to be generated from the root directory sda_flex/
with the doxygen program
doxygen Doxyfile_sdaflex
It is then accessible from sda_flex/doc/html/index.html
If for particular applications, e.g. to very large systems, you wish to make SDA calculate solvent accessible surface areas faster (details here), you may obtain NACCESS and place its subroutines
solva()
and sortag()
in the src/ directory instead of the existing file solva.f
and recompile SDA.Note that in SDA7, it is possible to write to disk the results of
solva()
, so that it is only necessary to compute them once. Then, they can be read by the other programs.