The Sandia Injury Biomechanics Laboratory analyzes injury due to blast, ballistics, and blunt trauma to help the nation protect the U.S. warfighter. Our contributions to the science of injury causation and prevention aim to significantly reduce the U.S. warfighter's exposure to serious, severe, and fatal injuries.
For more information on the program — including publications, presentations, and reports — see our Sandia National Laboratories website.
The SIBL Geometry Engine is an open-source geometry and mesh engine written in Python and C++ used for
- Bézier curves, surfaces, and volumes,
- B-spline curves, surfaces, and volumes, and
- Automatic mesh generation of a 2D quadrilateral mesh from a dualized, feature-refined quadtree.
Figure 1: Eight B-spline quadratic basis functions (reproduction of Cottrell et al. Figure 2.51 and Piegl and Tiller Figure 2.62).
Figure 2: Automatic mesh generation workflow using dualization.
- Learn the formulation and Python implementation from the teaching slides: pdf download (3.3 MB).
- Review the Python library API through the test suite:
~/sibl> pytest -v
- Automatically create a 2D dualized mesh from a discrete, well-defined boundary. Start here: Lessons
- Use xyfigure and a
.json
configuration file to create high quality LaTeX figures. - Approximate the angular velocity of a quasi-rigid body using the Three Point Angular Velocity Algorithm (TPAV).
- Configure the development environment.
- Follow the developer workflow.
- To contribute, submit a merge request.
The distribution steps will tag the code state as a release version, with a semantic version number, build the code as a wheel file, and publish to the wheel file as a release to the repository.
View existing tags, if any:
git tag
Create a tag. Tags can be lightweight or annotated. Annotated tags are recommended since they store tagger name, email, date, and message information. Create an annotated tag:
# example of an annotated tag
git tag -a v1.0.0 -m "Release version 1.0.0"
Push the tag to GitLab
# example continued
git push origin v1.0.0
Verify the tag appears on GitHub, found on the https://github.com/sandialabs/sibl/tags page.
Ensure that setuptools
and build
are installed:
pip install setuptools build
Navigate to the project directory, where the pyproject.toml
file is located
and create a wheel distribution.
# generates a .whl file in the dist directory
python -m build --wheel
- Chad B. Hovey, Sandia National Laboratories, [email protected]
Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525.
Copyright 2020 National Technology and Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.
For five (5) years from the United States Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable worldwide license in this data to reproduce, prepare derivative works, and perform publicly and display publicly, by or on behalf of the Government. There is provision for the possible extension of the term of this license. Subsequent to that period or any extension granted, the United States Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable worldwide license in this data to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so. The specific term of the license can be identified by inquiry made to National Technology and Engineering Solutions of Sandia, LLC or DOE.
NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT OF ENERGY, NOR NATIONAL TECHNOLOGY AND ENGINEERING SOLUTIONS OF SANDIA, LLC, NOR ANY OF THEIR EMPLOYEES, MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS.
Any licensee of this software has the obligation and responsibility to abide by the applicable export control laws, regulations, and general prohibitions relating to the export of technical data. Failure to obtain an export control license or other authority from the Government may result in criminal liability under U.S. laws.