Regarding external libraries, small but annoying problems are constantly popping up.
A typical example is build or runtime problem due to library version mismatch on different environments.
Another typical problem is absence of certain libraries on HPC clusters.
For these reasons, it seems desirable to distribute all the necessary libraries with the source code.
Currently, not many libraries are used:
hdf5lib to save/load results
boost-pointer-tree to read ini config files
boost-command-line-options to parse command line
boost-multiarray to simplify manipulations with 3d arrays
boost-ptr-vector to simplify work with arrays of objects in inheritance hierarchy
tinyexpr to define analytical expressions for external fields
hdf5lib is distributed under BSD license. It is necessary to include it in the code and configure compilation. boost-pointer-tree and boost-command-line-options can be replaced with something simpler. E.g. something from https://github.com/nothings/single_file_libs . boost-multiarray can be extracted from boost; alternatively, write some class to handle 3d arrays from scratch. tinyexpr is already included in the repo.
Regarding external libraries, small but annoying problems are constantly popping up.
A typical example is build or runtime problem due to library version mismatch on different environments.
Another typical problem is absence of certain libraries on HPC clusters.
For these reasons, it seems desirable to distribute all the necessary libraries with the source code.
Currently, not many libraries are used:
hdf5libto save/load resultsboost-pointer-treeto read ini config filesboost-command-line-optionsto parse command lineboost-multiarrayto simplify manipulations with 3d arraysboost-ptr-vectorto simplify work with arrays of objects in inheritance hierarchytinyexprto define analytical expressions for external fieldshdf5libis distributed under BSD license. It is necessary to include it in the code and configure compilation.boost-pointer-treeandboost-command-line-optionscan be replaced with something simpler. E.g. something from https://github.com/nothings/single_file_libs .boost-multiarraycan be extracted from boost; alternatively, write some class to handle 3d arrays from scratch.tinyexpris already included in the repo.