GithubHelp home page GithubHelp logo

messymorse / vegafem-cmake Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vibraphone/vegafem-cmake

0.0 0.0 0.0 14.97 MB

CMake build system for the Vega FEM package

License: Other

Shell 0.04% JavaScript 0.01% C++ 89.72% C 9.63% Objective-C 0.33% Prolog 0.05% Makefile 0.22%

vegafem-cmake's Introduction

VegaFEM Library

Travis-CI Build Status AppVeyor Build Status

Vega is a computationally efficient and stable C/C++ physics library for three-dimensional deformable object simulation. It is designed to model large deformations, including geometric and material nonlinearities, and can also efficiently simulate linear systems. Vega is open-source and free. It is released under the 3-clause BSD license, which means that it can be used both in academic research and in commercial applications.

Vega implements several widely used methods for simulation of large deformations of 3D solid deformable objects:

  • co-rotational linear FEM elasticity [MG04]; it can also compute the exact tangent stiffness matrix [Bar12] (similar to [CPSS10]),
  • linear FEM elasticity [Sha90],
  • invertible isotropic nonlinear FEM models [ITF04], [TSIF05],
  • Saint-Venant Kirchhoff FEM deformable models (see [Bar07]), and
  • mass-spring systems.

For any 3D tetrahedral or cubic mesh, Vega can compute both internal elastic forces and their gradients (tangent stiffness matrix), in any deformed configuration. Different parts of the mesh can be assigned arbitrary material properties. Vega can also timestep these models in time under any user-specified forces, using several provided integrators: implicit backward Euler [BW98], implicit Newmark [Wri02], explicit central differences [Wri02] and symplectic Euler. All models include support for multi-core computing. In addition to linear materials, Vega provides neo-Hookean and Mooney-Rivlin nonlinear material models; arbitrary nonlinear material models can be added to Vega. For isotropic hyperelastic materials, this is as easy as defining an energy function, and its first and second derivatives.

Vega is a middleware physics library. It is aimed at researchers and engineers with some preexisting knowledge in numerical simulation, computer graphics and/or solid mechanics, who can integrate Vega into their projects. The strength of Vega lies in its many C/C++ libraries which depend minimally on each other, and are in most cases independently reusable. Vega contains about 50,000 lines of C/C++ code.

Most of Vega was written by Jernej Barbič. Other code contributors include Fun Shing Sin, Daniel Schroeder and Christopher Twigg. Vega is named in honor of Jurij Vega.

[Bar07]Jernej Barbič. Real-time Reduced Large-Deformation Models and Distributed Contact for Computer Graphics and Haptics. PhD thesis, Carnegie Mellon University, August 2007.
[Bar12]Jernej Barbič. Exact Corotational Linear FEM Stiffness Matrix. Technical report, University of Southern California, 2012.
[BW98]David Baraff and Andrew P. Witkin. Large Steps in Cloth Simulation. In Proc. of ACM SIGGRAPH 98, pages 43–54, July 1998.
[CPSS10]Isaac Chao, Ulrich Pinkall, Patrick Sanan, and Peter Schröder. A Simple Geometric Model for Elastic Deformations. ACM Transactions on Graphics, 29(3):38:1–38:6, 2010.
[ITF04]G. Irving, J. Teran, and R. Fedkiw. Invertible Finite Elements for Robust Simulation of Large Deformation. In Symp. on Computer Animation (SCA), pages 131–140, 2004.
[MG04]M. Müller and M. Gross. Interactive Virtual Materials. In Proc. of Graphics Interface 2004, pages 239–246, 2004.
[Sha90]Ahmed A. Shabana. Theory of Vibration, Volume II: Discrete and Continuous Systems. Springer–Verlag, 1990.
[TSIF05]Joseph Teran, Eftychios Sifakis, Geoffrey Irving, and Ronald Fedkiw. Robust Quasistatic Finite Elements and Flesh Simulation. In Symp. on Computer Animation (SCA), pages 181–190, 2005.
[Wri02](1, 2) Peter Wriggers. Computational Contact Mechanics. John Wiley & Sons, Ltd., 2002.

vegafem-cmake's People

Contributors

vibraphone avatar starseeker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.