Skip to content

A Julia package for computational (bio)mechanics and computational design

License

Notifications You must be signed in to change notification settings

COMODO-research/Comodo.jl

Repository files navigation

License: Apache 2.0 example workflow Doc codecov Join the chat at https://gitter.im/Comodo.jl

About Comodo

Comodo is a Julia package for computational (bio)mechanics and computational design, and offers functionality for geometry processing, meshing, finite element analysis, automated design, topology optimisation, and image-based modelling.

Loosely Comodo could stand for Computational Modelling for Design Optimization. A more philosophical angle would be to say that DO is like -do in the Japanese art Judo (ju=柔=gentle, do=道=way), so in this sense Comodo stands for "the way of computational modelling". Comodo is perhaps best defined by its scope. Comodo aims to be a "one-stop-shop" for researchers in computational (bio)mechanics and computational design. It will feature tools for geometry processing, meshing, automated design / topology optimization, finite element analysis, as well as (e.g. medical) image processing and segmentation.

Comodo.jl started out as a modern re-implementation in Julia of the MATLAB toolbox GIBBON. However, rather than literally porting each functional unit, it instead aims to follow a similar philosophy and cover similar but more advanced core functionaly.

Installation

julia> ]
(@v1.xx) pkg> add https://github.com/COMODO-research/Comodo.jl

or

julia> using Pkg
julia> Pkg.add(url = "https://github.com/COMODO-research/Comodo.jl")

Getting started

To get started install the package, study the documentation, and test some of the demos provided in the examples folder.

Comodo snippets

Documentation

Functional Documentation

Combining with finite element analysis

For finite element analysis users are encouraged to combine the Comodo capabilities with the open source C++ solver FEBio, e.g. based on the Julia wrapper FEBio.jl. In addition, users may want to explore the Julia packages Gridap.jl and Ferrite.jl.

febio functionality

Testing

You can test Comodo by running

pkg> test Comodo

The source for the tests is runtests.jl, found in the test folder

Roadmap

New functionality to add:

  • TetGen demos
  • Mesh thickening (e.g. quads into hexahedra)
  • Discrete curvature analysis
  • Lattice structure creation:
    • Element based conversions
    • Triply periodic minimal and spinodoid surfaces
    • Boundary conforming lattices
  • Surface stitching method
  • Levelset methods
  • Topology optimisation
  • Consider adding basic geogram wrapper

How to contribute?

Your help would be greatly appreciated! If you can contribute please do so by posting a pull-request. I am very much open to fully acknowledging your contributions e.g. by listing you as a contributor properly whereever possible, by welcoming you on board as a long term contributor, or by inviting you to be a co-author on publications featuring Comodo functionality.

License

Comodo.jl is released open source under the Apache 2.0 license.

About

A Julia package for computational (bio)mechanics and computational design

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages