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
Keywords from Contributors
Repository
A Julia package for solving nonlinear differential equations using the harmonic balance method.
Basic Info
- Host: GitHub
- Owner: QuantumEngineeredSystems
- License: bsd-3-clause
- Language: Julia
- Default Branch: master
- Homepage: https://quantumengineeredsystems.github.io/HarmonicBalance.jl/stable/
- Size: 65.8 MB
Statistics
- Stars: 73
- Watchers: 2
- Forks: 17
- Open Issues: 12
- Releases: 54
Topics
Metadata Files
README.md

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
- Repositories: 2
- Profile: https://github.com/QuantumEngineeredSystems
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
Top Committers
| Name | 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.
- Homepage: https://quantumengineeredsystems.github.io/HarmonicBalance.jl/stable/
- Documentation: https://docs.juliahub.com/General/HarmonicBalance/stable/
- License: BSD-3-Clause
-
Latest release: 0.15.5
published 8 months ago
Rankings
Dependencies
- actions/checkout v2 composite
- julia-actions/julia-buildpkg latest composite
- julia-actions/julia-docdeploy latest composite
- julia-actions/setup-julia v1 composite
- JuliaRegistries/TagBot v1 composite
- 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