Giter Club home page Giter Club logo

bifurcationkit.jl's Introduction

BifurcationKit.jl

Documentation Build Status Downloads
docs-stable docs-dev Build status Build status codecov

This Julia package aims at performing automatic bifurcation analysis of possibly large dimensional equations F(u, λ)=0 where λ is real by taking advantage of iterative methods, dense / sparse formulation and specific hardwares (e.g. GPU).

It incorporates continuation algorithms (PALC, deflated continuation, ...) based on a Newton-Krylov method to correct the predictor step and a Matrix-Free/Dense/Sparse eigensolver is used to compute stability and bifurcation points.

The idea is to be able to seamlessly switch the continuation algorithm a bit like changing the time stepper (Euler, RK4,...) for ODEs.

BifurcationKit can also seek for periodic orbits of Cauchy problems. It is by now, one of the only software which provides shooting methods and methods based on finite differences / collocation to compute periodic orbits.

The current focus is on large scale nonlinear problems and multiple hardwares. Hence, the goal is to provide Matrix Free methods on GPU (see PDE example and Periodic orbit example) or on cluster to study non linear PDE, nonlocal problems, compute sub-manifolds...

Despite this focus, the package can easily handle low dimensional problems and specific optimizations are regularly added.

Support and citation

If you use BifurcationKit.jl in your work, we ask that you cite the following paper. Open source development as part of academic research strongly depends on this. Please also consider starring this repository if you like our work, this will help us to secure funding in the future. It is referenced on HAL-Inria as follows:

@misc{veltz:hal-02902346,
  TITLE = {{BifurcationKit.jl}},
  AUTHOR = {Veltz, Romain},
  URL = {https://hal.archives-ouvertes.fr/hal-02902346},
  INSTITUTION = {{Inria Sophia-Antipolis}},
  YEAR = {2020},
  MONTH = Jul,
  KEYWORDS = {pseudo-arclength-continuation ; periodic-orbits ; floquet ; gpu ; bifurcation-diagram ; deflation ; newton-krylov},
  PDF = {https://hal.archives-ouvertes.fr/hal-02902346/file/354c9fb0d148262405609eed2cb7927818706f1f.tar.gz},
  HAL_ID = {hal-02902346},
  HAL_VERSION = {v1},
}

Installation

This package requires Julia >= v1.3.0

To install it, please run

] add BifurcationKit

To install the bleeding edge version, please run

] add BifurcationKit#master

Plugins

Most plugins are located in the organization bifurcationkit:

Overview of capabilities

The list of capabilities is available here.

Examples of bifurcation diagrams (ODEs and PDEs)

simple ODE example Codimension 2 (ODE)
Automatic Bif. Diagram in 1D Swift Hohenberg Automatic Bif. Diagram in 2D Bratu
Snaking in 2D Swift Hohenberg Periodic orbits in 1D Brusselator
Period doubling BVAM Model Periodic orbits in 2D Ginzburg-Landau
Deflated Continuation in Carrier problem 2D Swift Hohenberg on GPU

bifurcationkit.jl's People

Contributors

rveltz avatar danielwe avatar fredrikekre avatar aayushsabharwal avatar antoine-levitt avatar paniash avatar dkarrasch avatar datseris avatar oxinabox avatar isaacsas avatar tkf 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.