fibergen

fibergen: An introductory tool for FFT-based material homogenization - Published in JOSS (2019)

https://github.com/fospald/fibergen

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

A FFT-based homogenization tool.

Basic Info
Statistics
  • Stars: 17
  • Watchers: 2
  • Forks: 7
  • Open Issues: 1
  • Releases: 1
Created over 7 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Codemeta

README.md

DOI

fibergen

A FFT-based homogenization tool.

  • FFT-based homogenization based on Lippmann-Schwinger equation with staggered grid approach (SchneiderOspaldKabel2015:1)
  • homogenization for linear elasticity, large deformations, Stokes flow and heat equation
  • C++, OpenMP multiprocessing, XML + Python scripting interface
  • laminate mixing for interfaces (KabelMerkertSchneider2014, SchneiderOspaldKabel2015:2)
  • mixed boundary conditions (Kabel2016)
  • generation of fibers distributions
  • use of tetrahedrical mesh geometries
  • arbitrarily many materials
  • reading of raw CT data (gzip compressed)
  • identification of homogenized material parameters
  • ...

Target Platform

The tool was developed and tested under Linux (Ubuntu). Other platforms such as Windows and MacOS might work but probably require adjustmest to the CMakeLists.txt file and some other small scripts.

Requirements

The following libraries are required, which are likely already installed on your system: * CMake * gcc compiler (might also work with other compilers) * OpenMP for parallelization (optional) * boost incl. boost.python 3 and boost-numeric-bindings * FFTW3 library * lapack library * Python 3 * scipy incl. numpy headers * PyQt5 incl. QtWebEngine (QtWebKit also works) * zlib library * libpng library (optional for PNG output)

If unsure, continue with the installation and check the error messages of CMake.

Docker Installation

  1. Make sure you have Docker and Docker compose installed.
  2. Build and run the container with GUI support in the background bash cd docker docker compose -f docker-compose-gui.yml up --detach
  3. Run shell inside the container bash sudo docker compose exec fibergen bash
  4. Start fibergen as described in the Run section

Manual Installation

  1. download source bash git clone https://github.com/fospald/fibergen.git
  2. run build.sh, on error probably a library is missing bash sh build.sh [optional CMake parameters]
  3. after successful build update your envirnoment variables: bash export PATH=$PATH:$FIBERGEN/bin export PYTHONPATH=$PYTHONPATH:$FIBERGEN/lib where $FIBERGEN denotes your download directory.

Run

Enter the following command to run the GUI (with an optional project file to load) bash fibergen-gui [project.xml] In order to run a project file from the command line run bash fibergen project.xml You can also run some test routines using bash fibergen --test in order to perform some internal tests of math and operators.

Generating source code documentation

You can generate a Doxygen-based documentation by running bash cd doc/doxygen make firefox html/index.html

Tutorial

Further information on how to use fibergen, can be found in the tutorial (also included in the doxygen documentation).

Troubleshooting

GUI Crash

There are known instances with QtWebKit which may result in a crash of the GUI. An re-installation of QtWebKit with an older version or use of the newer QtWebEngine (i.e. using the latest version of Qt) may resolve the issue. Alternatively you can run the GUI with the demo- and help- browser disabled by bash fibergen-gui --disable-browser All QtWebKit/QtWebEngine browser instances will then be replaced by simplified QTextBrowser instances.

Setting the Python version

If you get an error about "boostpython-pyXY" not found, try to figure out which Python version boost-python is compiled against by running ```bash locate boostpython-py and then modify the CMakeLists.txt accordingly bash SET(PYTHONVERSIONMAJOR X) SET(PYTHONVERSIONMINOR Y) ```

Installing boost-numeric-bindings

Only the header files are required. No configure/build needed. bash cd install_dir git clone http://git.tiker.net/trees/boost-numeric-bindings.git export BOOSTNUMERICBINDINGS_DIR=$(pwd)/boost-numeric-bindings install_dir is the installation directory for boost-numeric-bindings. You should remove the build directory (rm -r build) before running build.sh again in order to clear the CMake cache.

Contributing

If you have any question, idea or issue please create an new issue in the issue tracker. If you want to contribute anything (e.g. demos) please contact me.

Citing

You can use the following publication for citing fibergen: @article{Ospald2019, author = {F. Ospald}, title = {fibergen: An introductory tool for {FFT}-based material homogenization}, year = {2019}, publisher = {The Open Journal}, journal = {Journal of Open Source Software}, volume = {4}, number = {34}, pages = {1027}, doi = {10.21105/joss.01027} }

Acknowledgements

Felix Ospald gratefully acknowledges financial support by the German Research Foundation (DFG), Federal Cluster of Excellence EXC 1075 "MERGE Technologies for Multifunctional Lightweight Structures". Many thanks to Matti Schneider for his helpful introduction to FFT-based homogenization and ideas regarding the ACG distribution.

Owner

  • Name: Felix Ospald
  • Login: fospald
  • Kind: user
  • Location: Chemnitz, Germany
  • Company: TU Chemnitz

Physicist and mathematician.

JOSS Publication

fibergen: An introductory tool for FFT-based material homogenization
Published
February 06, 2019
Volume 4, Issue 34, Page 1027
Authors
Felix Ospald ORCID
Research Group Numerical Mathematics (Partial Differential Equations), Faculty of Mathematics, TU Chemnitz, Chemnitz, Germany
Editor
Jed Brown ORCID
Tags
material homogenization FFT heat equation Stokes flow Darcy flow linear elasticity hyperelasticity

CodeMeta (codemeta.json)

{
  "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
  "@type": "Code",
  "author": [
    {
      "@id": "http://orcid.org/0000-0001-8372-9179",
      "@type": "Person",
      "email": "felix.ospald@gmail.com",
      "name": "Felix Ospald",
      "affiliation": "TU Chemnitz"
    }
  ],
  "identifier": "",
  "codeRepository": "https://github.com/fospald/fibergen",
  "datePublished": "2018-10-02",
  "dateModified": "2018-10-02",
  "dateCreated": "2018-10-02",
  "description": "fibergen: An introductory tool for FFT-based material homogenization",
  "keywords": "material homogenization, FFT, Python, C++, heat equation, Stokes flow, Darcy flow, linear elasticity, hyperelasticity",
  "license": "GPL",
  "title": "fibergen",
  "version": "2018.1"
}

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 151
  • Total Committers: 1
  • Avg Commits per committer: 151.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Felix Ospald f****d@g****m 151

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 12
  • Total pull requests: 0
  • Average time to close issues: 5 days
  • Average time to close pull requests: N/A
  • Total issue authors: 4
  • Total pull request authors: 0
  • Average comments per issue: 2.33
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ctdegroot (4)
  • tisaac (4)
  • michpaulatto (2)
  • Fengyixin-research (2)
Pull Request Authors
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels