Welcome to the AutoFiber Documentation!¶
AutoFiber¶
Strain energy minimization of geodesic based parameterizations over 3D surfaces for optimization of fiber layup orientations. Created to be part of the De-La-Mo automatic defect insertion into FEM package developed at Iowa State University.
AutoFiber is Copyright (C) 2016-2018 Iowa State University Research Foundation, Inc. It is published under the Apache 2.0 license. See the LICENSE file for details.
Project Structure¶
This is repository is located on Github.
autofiber/
: Contains the python package autofiber.demos/
: Contains a variety of demo models and a script, test.py which demonstrates usage on each model.docs/
: Contains various documentation materials. Complete documentation can be obtained here.
Package Structure¶
generator.py
: Main control script which generates geodesic start points, calculates geodesic paths, computes the geodesic parameterization, and employs the strain energy minimization.geodesic.py
: Contains the functions necessary for computing the geodesic trajectories and parameterizations.optimization.py
: Contains the definition for the strain energy function and gradient as well as the RMSprop algorithm used to minimize the strain energy function.analyze_uv.py
: Spatialnde helper script that defines mesh adjacency indexes.
Dependencies¶
Tested with Python 2.7-3.7
spatialnde
: 3D model loader and image projection package Created by Dr. Stephen D. Holland at Iowa State University SpatialndeNumpy
Matplotlib
- optional for plotting
Installation¶
Once all dependencies are installed run:
python setup.py build
python setup.py install
To include as a dependency in your project consider using git’s subtree capabilities. The De-La-Mo project showcases this ability and can be seen in the relevant repository. In order to install AutoFiber alongside your project add the following to your projects setup.py:
package_dir={
'autofiber': 'autofiber/autofiber'
},
packages=["autofiber"],
This will then allow you to import the AutoFiber class in your project as such:
from autofiber.generator import AutoFiber