Skip to content

idealab-isu/autofiber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
    Spatialnde
  • Numpy
  • 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

How to run

Take a look at test.py for an in-depth explanation of the relevant API calls and how they work for a variety of models.

Tutorial

A short tutorial with explanations of API and images of results is located here.

Abaqus integration

A function has been created and implemented in De-La-Mo to allow for automatic insertion of computed fiber orientations into Abaqus. See the De-La-Mo project for more information.

About

Strain energy optimized, geodesic based mesh parameterization generator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages