Methods
We offer several methods for solving the nonlinear algebraic equations that arise from the harmonic balance procedure. Each method has different tradeoffs between speed, robustness, and completeness.
Total Degree Method
HarmonicBalance.TotalDegree Type
TotalDegree
The Total Degree homotopy method performs a homotopy
Fields
gamma::Complex
: Complex multiplying factor of the start system G(x) for the homotopythread::Bool
: Boolean indicating if threading is enabled.tracker_options::HomotopyContinuation.TrackerOptions
: Options for the tracker.endgame_options::HomotopyContinuation.EndgameOptions
: Options for the endgame.compile::Union{Bool, Symbol}
: Compilation options.seed::UInt32
: Seed for random number generation.
Polyhedral Method
HarmonicBalance.Polyhedral Type
Polyhedral
The Polyhedral homotopy method constructs a homotopy based on the polyhedral structure of the polynomial system. It is more efficient than the Total Degree method for sparse systems, meaning most of the coefficients are zero. It can be especially useful if you don't need to find the zero solutions (only_non_zero = true
), resulting in a speed up. See HomotopyContinuation.jl for more information.
Fields
only_non_zero::Bool
: Boolean indicating if only non-zero solutions are considered.thread::Bool
: Boolean indicating if threading is enabled.tracker_options::HomotopyContinuation.TrackerOptions
: Options for the tracker.endgame_options::HomotopyContinuation.EndgameOptions
: Options for the endgame.compile::Union{Bool, Symbol}
: Compilation options.seed::UInt32
: Seed for random number generation.
Warm Up Method
HarmonicBalance.WarmUp Type
WarmUp
The Warm Up method prepares a warmup system with the Total Degree method using the parameter at index
perturbed by perturbation_size
. The warmup system is used to perform a homotopy using all other systems in the parameter sweep. It is very efficient for systems with minimal bifurcation in the parameter sweep. The Warm Up method does not guarantee to find all solutions. See HomotopyContinuation.jl for more information.
Fields
warm_up_method::Union{Polyhedral, TotalDegree}
: Method used for the warmup system.start_parameters::Union{Nothing, Vector{ComplexF64}}
: Start parameters.thread::Bool
: Boolean indicating if threading is enabled.tracker_options::HomotopyContinuation.TrackerOptions
: Options for the tracker.endgame_options::HomotopyContinuation.EndgameOptions
: Options for the endgame.compile::Union{Bool, Symbol}
: Compilation options.seed::UInt32
: Seed for random number generation.