Problem

Problem definition

WeberElectrodynamics.HamiltonianProblemType
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), length n_particles.
  • charges: Particle charges, length n_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. See ZollnerOptions for all available fields. The options are used at construction time to compute the per-pair κ values stored in prob.kappas and are not retained on the problem; inspect κ via kappas(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], length 2N + 1. Access slices via masses, charges, speed_of_light.
  • kappas::Vector{Float64}: Per-pair Zöllner coupling [κ₁₂, κ₁₃, …], length N*(N-1)/2. All entries 1.0 when Zöllner is disabled.
  • dt::Float64: Fixed step size.
  • convergence_tolerance::Float64: Projection convergence threshold.
  • maximum_iterations::Int: Maximum projection iterations per step.
source

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.

FunctionReturns
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: