Problem
Problem definition
WeberElectrodynamics.HamiltonianProblem — Type
HamiltonianProblem(system, tspan, q_initial, p_initial; kwargs...)Fully specified n-body Weber electrodynamics problem ready for integration.
Packages the compiled HamiltonianSystem, initial conditions, physical parameters, and solver/regularization options into a single immutable structure.
Arguments
system::HamiltonianSystem: Pre-built symbolic + compiled Hamiltonian system.tspan::Tuple{Real,Real}: Integration interval(t_start, t_end).q_initial::AbstractVector: Flattened initial positions, length =n_particles × dims.p_initial::AbstractVector: Flattened initial momenta, length =n_particles × dims.
Keywords
masses: Particle masses (all positive), lengthn_particles.charges: Particle charges, lengthn_particles.c: Speed of light (positive).dt: Fixed macro time step (positive).convergence_tolerance=1e-13: Fixed-point convergence threshold for projection.maximum_iterations=100: Maximum projection iterations per step.zollner=ZollnerOptions(): Zöllner electrogravitational extension options. SeeZollnerOptionsfor all available fields. The options are used at construction time to compute the per-pairκvalues stored inprob.kappasand are not retained on the problem; inspect κ viakappas(prob).
Regularization options moved to RegularizedIntegrator; pass them via solve(prob, RegularizedIntegrator(SymmetricProjectionIntegrator(); ...)).
Fields
system::HamiltonianSystem: Compiled Hamiltonian system.tspan::Tuple{Float64,Float64}: Integration interval.q_initial,p_initial::Vector{Float64}: Initial phase-space point.params::Vector{Float64}: Packed parameter vector[masses; charges; c], length2N + 1. Access slices viamasses,charges,speed_of_light.kappas::Vector{Float64}: Per-pair Zöllner coupling[κ₁₂, κ₁₃, …], lengthN*(N-1)/2. All entries1.0when Zöllner is disabled.dt::Float64: Fixed step size.convergence_tolerance::Float64: Projection convergence threshold.maximum_iterations::Int: Maximum projection iterations per step.
Accessors
Read-only accessors on a HamiltonianProblem. masses, charges, and kappas return views into the backing params vector (layout [m₁…mₙ, q₁…qₙ, c, κ…]), so they are O(1) and allocation-free.
| Function | Returns |
|---|---|
masses(prob) | AbstractVector{Float64} of particle masses |
charges(prob) | AbstractVector{Float64} of particle charges |
speed_of_light(prob) | Float64 — the c passed at construction |
kappas(prob) | AbstractVector{Float64} — per-pair Zöllner κ values (all 1.0 when Zöllner is disabled) |
params(prob) | the full packed Vector{Float64} consumed by the compiled EOMs |
See also n_particles(prob) and dims(prob), documented on the System page.
Optional features
Configuration types for optional features are documented on their own pages:
- Regularization —
RegularizationOptions,RegularizationDiagnostics - Zöllner Extension —
ZollnerOptions