Skip to content

GazzolaLab/elasticapp

Repository files navigation

Elastica++

CMake Build Example Run Documentation Build

Efficiently simulate soft filaments on devices ranging from laptops to supercomputing clusters.

About

Elastica++ is a C++ package for simulating the dynamics of soft filaments that can bend, twist, stretch, and shear. These slender structures appear across natural and engineered systems, from DNA strands and flagella to cables, fibers, and soft robotic assemblies.

The package models these systems using Cosserat rod theory and supports assemblies of rods interacting with complex exogenous effects such as contact, friction, and hydrodynamics, as well as endogenous effects such as muscular activity. Elastica++ maps these assemblies efficiently to multicore processors using its Block architecture. More background is available on the Elastica project website.

Build

cmake -B build -G Ninja \
  -D CMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
  -D BUILD_TESTING=OFF \
  -D ELASTICA_BUILD_BENCHMARKS=OFF \
  -D ELASTICA_BUILD_EXAMPLES=OFF \
  -D ELASTICA_BUILD_PYTHON_BINDINGS=OFF
cmake --build build --parallel

Documentation

We put details of how to use this package in documentation

To build yourself,

cmake -B build-docs -G Ninja \
  -D ELASTICA_BUILD_DOCUMENTATION=ON
cmake --build build-docs --target doc --parallel

Repository Layout

  • elastica/: core library sources and headers
  • cmake/: CMake modules and project build helpers
  • docs/: project documentation pages
  • tests/: unit tests
  • benchmarks/: benchmark targets
  • support/: cluster setup and helper scripts

For cluster-specific setup notes, see support/README.md.

Contributing

Contributions are welcome.

  • Report bugs or request features through the repository's GitHub issues.
  • Open pull requests against the main branch.
  • Follow the contribution guidance in CONTRIBUTING.md.
  • Ensure the relevant CI checks pass before requesting review.

About

C++ implementation of Elastica, an open-source software for the simulation of assemblies of slender, one-dimensional structures using Cosserat Rod theory.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages