HarmonicBalance

A Julia package for solving nonlinear differential equations using the harmonic balance method.

https://github.com/quantumengineeredsystems/harmonicbalance.jl

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary

Keywords

floquet floquet-theory harmonic-balance julia nonlinear-dynamics oscillators perturbation-theory symbolic-computation time-dependent-hamiltonian time-dependent-systems

Keywords from Contributors

interpretability neural-sde numerical-methods exoplanet mesh pinn hybrid-differential-equations hacking numeric matrix-exponential
Last synced: 6 months ago · JSON representation ·

Repository

A Julia package for solving nonlinear differential equations using the harmonic balance method.

Basic Info
Statistics
  • Stars: 73
  • Watchers: 2
  • Forks: 17
  • Open Issues: 12
  • Releases: 54
Topics
floquet floquet-theory harmonic-balance julia nonlinear-dynamics oscillators perturbation-theory symbolic-computation time-dependent-hamiltonian time-dependent-systems
Created over 4 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

docs Downloads Downloads

Code Style: Blue Aqua QA JET codecov

HarmonicBalance.jl is a Julia package for solving periodic, nonlinear differential equations using the method of harmonic balance.

Installation

To install HarmonicBalance.jl, you can use the github repo or the Julia package manager, julia using Pkg Pkg.add("HarmonicBalance")

Documentation

For a detailed description of the package and examples, see the documentation.

This repo contains a collection of example notebooks.

Example: steady states of a nonlinear resonator

Let's find the steady states of a driven Duffing resonator with nonlinear damping, with equation of motion:

```julia using HarmonicBalance, Plots @variables α ω ω0 F η t x(t) # declare constant variables and a function x(t) diffeq = DifferentialEquation(d(x,t,2) + ω0^2x + αx^3 + ηd(x,t)x^2 ~ Fcos(ωt), x) addharmonic!(diff_eq, x, ω) # specify the ansatz x = u(T) cos(ωt) + v(T) sin(ωt)

implement ansatz to get harmonic equations

harmoniceq = getharmonicequations(diffeq)

solve for a range of ω

result = getsteadystates(harmonic_eq, ω => range(0.9, 1.2, 100), (α => 1., ω0 => 1.0, F => 0.01, η => 0.1)) A steady state result for 100 parameter points

Solution branches: 3 of which real: 3 of which stable: 2

Classes: stable, physical, Hopf, binary_labels ```

julia plot(result, "sqrt(u1^2 + v1^2)")

Citation

If you use HarmonicBalance.jl in your project, we kindly ask you to cite this paper, namely:

HarmonicBalance.jl: A Julia suite for nonlinear dynamics using harmonic balance Jan Košata, Javier del Pino, Toni L. Heugel, Oded Zilberberg SciPost Phys. Codebases 6 (2022)

BibTeX entry

bibtex @Article{10.21468/SciPostPhysCodeb.6, title={{HarmonicBalance.jl: A Julia suite for nonlinear dynamics using harmonic balance}}, author={Jan Košata and Javier del Pino and Toni L. Heugel and Oded Zilberberg}, journal={SciPost Phys. Codebases}, pages={6}, year={2022}, publisher={SciPost}, doi={10.21468/SciPostPhysCodeb.6}, url={https://scipost.org/10.21468/SciPostPhysCodeb.6} }

See also

  • JosephsonCircuits.jl: Models superconducting circuits using modified nodal analysis and harmonic balance with an analytic Jacobian.
  • Manlab: A similar package in Matlab also using continuation methods and using the Harmonic Balance method for periodic orbits.

Owner

  • Name: QuantumEngineeredSystems
  • Login: QuantumEngineeredSystems
  • Kind: organization

Citation (CITATION.bib)

@Article{10.21468/SciPostPhysCodeb.6,
	title={{HarmonicBalance.jl: A Julia suite for nonlinear dynamics using harmonic balance}},
	author={Jan Košata and Javier del Pino and Toni L. Heugel and Oded Zilberberg},
	journal={SciPost Phys. Codebases},
	pages={6},
	year={2022},
	publisher={SciPost},
	doi={10.21468/SciPostPhysCodeb.6},
	url={https://scipost.org/10.21468/SciPostPhysCodeb.6},
}

GitHub Events

Total
  • Create event: 40
  • Commit comment event: 18
  • Release event: 7
  • Issues event: 4
  • Watch event: 6
  • Delete event: 29
  • Issue comment event: 25
  • Push event: 220
  • Pull request event: 59
Last Year
  • Create event: 40
  • Commit comment event: 18
  • Release event: 7
  • Issues event: 4
  • Watch event: 6
  • Delete event: 29
  • Issue comment event: 25
  • Push event: 220
  • Pull request event: 59

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 376
  • Total Committers: 8
  • Avg Commits per committer: 47.0
  • Development Distribution Score (DDS): 0.42
Past Year
  • Commits: 183
  • Committers: 6
  • Avg Commits per committer: 30.5
  • Development Distribution Score (DDS): 0.104
Top Committers
Name Email Commits
Orjan Ameye o****e@h****m 218
jdelpino j****o 72
jkosata j****a@p****m 62
dependabot[bot] 4****] 12
github-actions[bot] 4****] 5
CompatHelper Julia c****y@j****g 4
Markus Bestler 1****m 2
Richelle Jade Tuquero 1****T 1
Committer Domains (Top 20 + Academic)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 20 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 49
juliahub.com: HarmonicBalance

A Julia package for solving nonlinear differential equations using the harmonic balance method.

  • Versions: 49
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20 Total
Rankings
Dependent repos count: 9.9%
Stargazers count: 18.9%
Forks count: 19.4%
Average: 21.8%
Dependent packages count: 38.9%
Last synced: 7 months ago

Dependencies

.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-docdeploy latest composite
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/CI.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite