Skip to content

tpms-lattice/ASLI

Repository files navigation

ASLI (A Simple Lattice Infiller) is an open source tool for creating lattice infills with varying unit cell type, size and/or feature

 

Website Release License

Ubuntu support Windows support

Getting started with ASLI

The easiest way to get started with ASLI is to use the pre-build binaries found in releases. For more advanced advanced users, it may be more interesting to build ASLI from scratch. The prerequisites and procedure to build ASLI are detailed below.

Prerequisites

ASLI is written in C++ and makes use of CMake and GNU Make to automate the building process. ASLI also has the following dependencies:

Most of these dependencies are included with ASLI so that the user does not need to worry about them. Not included with ASLI are GMP, MPFR, Boost and TBB (optional). QT, required to compile the GUI of ASLI is not included either. To be able to compile ASLI, depending on the compilation settings, users will need some or all of these libraries available on their system.

Install dependencies

Linux

If you are missing some required or optional dependencies they can be installed on Debian and Ubuntu with a couple of commands:

Install build tools:

sudo apt-get install git cmake

Install compilers:

sudo apt-get install g++

Install libraries (GMP, MPFR, Boost):

sudo apt-get install libgmp-dev libmpfr-dev libboost-all-dev

Install libraries (TBB):

sudo apt-get install libtbb-dev

Install libraries (QT):

sudo apt-get install qt3d5-dev

Windows (MSYS2)

In windows compilation is supported with MSYS2. If you are missing some required or optional dependencies they can be installed in MSYS2 with a couple of commands:

Install build tools:

pacman -S git cmake mingw-w64-x86_64-cmake

Install compilers, and libraries (GMP, MPFR, Boost):

pacman -S --needed base-devel mingw-w64-x86_64-toolchain
pacman -S msys2-runtime-devel
pacman -S mingw-w64-x86_64-boost

Install libraries (TBB):

pacman -S mingw-w64-x86_64-intel-tbb

Install libraries (QT):

pacman -S mingw-w64-x86_64-qt5

Add the location of tbb.dll and tbbmalloc.tbb to the windows environment variables.

Downloading and compiling ASLI

Linux

Assuming CMake as well as GNU Make are installed on the system and all required dependencies are available the main steps to build are:

  1. Retrieve ASLI from the repository:

    git clone https://github.com/tpms-lattice/ASLI.git
  2. Compile:

    cd ASLI
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DMARCH_NATIVE=ON ..
    make

To clean up, simply delete the build and bin directory found in the source directory.

Windows

Assuming MSYS2 is installed on the system and all required dependencies are available the main steps to build are:

  1. Retrieve ASLI from the repository:

    git clone https://github.com/tpms-lattice/ASLI.git
  2. Compile:

    cd ASLI
    mkdir build
    cd build
    cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DMARCH_NATIVE=ON ..
    make

To clean up, simply delete the build and bin directory found in the source directory.

Parallel mode

To compile ASLI in parallel mode include -DCGAL_ACTIVATE_CONCURRENT_MESH_3=ON when calling cmake. Parallel mode is currently limited to the CGAL workflow.

Graphical user interface

To compile ASLI together with its GUI include -DASLI_GUI=ON when calling cmake.

Running ASLI

To run ASLI from the command line you only need to type ./ASLI config.yml if using Linux or ASLI.exe config.yml if using windows. The config.yml file specified points to the configuration file of ASLI.

Issues and questions

If you find a bug please post an issue. If you have questions regarding ASLI you can post them on stackoverflow with the tag ASLI.

Contact

Contact: asli (at) kuleuven . be

Reference

Perez-Boerema, F., M. Barzegari and L. Geris (2022). A flexible and easy-to-use open-source tool for building functionally graded scaffolds, Virtual and Physical Prototyping, 17:3, 682-699, DOI: 10.1080/17452759.2022.2048956.

License

ASLI is licensed under the terms of the GNU Affero General Public License .

Copyright © KU Leuven 2019-2022