DataAnalyticsEngineering / FANS

FANS: an open-source, efficient, and parallel FFT-based homogenization solver designed to solve microscale multiphysics problems.
GNU Lesser General Public License v3.0
8 stars 2 forks source link

Improvement to traditional installation guidelines #16

Closed sanathkeshav closed 1 month ago

sanathkeshav commented 2 months ago

The traditional installation option offered by @siggmo is a popular choice for quickly trying out FANS by multiple users. I was wondering if it can be improved a bit more by identifying and adding every single dependency of FANS including but not limited to gcc/ g++, CMake, git, htop, time.

This would make the traditional installation guide very exhaustive and by far the easiest way to get all the dependencies installed.

siggmo commented 2 months ago

I'm not sure what packages could be missing because I determined the dependencies using dpkg-shlibdeps which is a tool to automatically determine shared library dependencies of an executable (using CMake option CPACK_DEBIAN_PACKAGE_SHLIBDEPS).

Did the users that experienced the problem really install all of those packages? https://github.com/DataAnalyticsEngineering/FANS/blob/54ee6d246a4c3d78be6857ceaf3134dead00bda2/README.md?plain=1#L35

This list is the dependency list that is put into the Debian package created by CPack, and I was able to install this package on a clean Ubuntu. This is the output of dpkg -I fans_0.1.2_amd64.deb:

root@23e4c2d887b9:/packages# dpkg -I fans_0.1.2_amd64.deb 
 new Debian package, version 2.0.
 size 212140 bytes: control archive=578 bytes.
     404 bytes,    11 lines      control              
     100 bytes,     2 lines      md5sums              
      64 bytes,     7 lines   *  postinst             #!/bin/sh
      61 bytes,     7 lines   *  postrm               #!/bin/sh
 Architecture: amd64
 Depends: openmpi-bin, libc6 (>= 2.16), libfftw3-double3 (>= 3.3.5), libfftw3-mpi3, libgcc-s1 (>= 4.0), libgomp1 (>= 4.2.1), libhdf5-103, libopenmpi3 (>= 4.0.3), libstdc++6 (>= 5.2)
 Description: FANS - Fourier Accelerated Nodal Solver
  FANS shared library and executable
 Maintainer: MIB DAE Stuttgart
 Package: fans
 Priority: optional
 Section: devel
 Version: 0.1.2
 Installed-Size: 596

Maybe they used a non Debian-based distro?

siggmo commented 2 months ago

Ahh I'm sorry now I get it, you meant not the direct package dependencies but also the build toolchain etc.

Then let's just add the packages that come in our Docker images. For just building that would be: https://github.com/DataAnalyticsEngineering/FANS/blob/54ee6d246a4c3d78be6857ceaf3134dead00bda2/docker/Dockerfile#L25-L31

And then the additional tools: https://github.com/DataAnalyticsEngineering/FANS/blob/54ee6d246a4c3d78be6857ceaf3134dead00bda2/docker/Dockerfile#L52-L60

Mayben we then should also add instructions on how to set up the python environment for the h52xdmf script? In the Dockerfile that would correspond to: https://github.com/DataAnalyticsEngineering/FANS/blob/54ee6d246a4c3d78be6857ceaf3134dead00bda2/docker/Dockerfile#L84-L88

I can update the README accordingly if you are fine with the above suggestions :)

IshaanDesai commented 1 month ago

Closed via https://github.com/DataAnalyticsEngineering/FANS/pull/22