LIBRARY
tests.PointMassOrbit
Free-flying PointMass in a point-gravity field: started on a circular orbit, the orbital radius must stay constant.
isroot = true because frame_a is connected to nothing – the point mass owns its (world-aligned) frame orientation. Compared with the equivalent Body-based PointGravityOrbit, this model carries no rotational state at all, so it must solve with strictly fewer unknowns.
Usage
MultibodyComponents.tests.PointMassOrbit(r_orbit=7e6, v_orbit=sqrt(3.986004418e14 / r_orbit))
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
r_orbit | Orbit radius [m] (LEO-ish) | – | 7e6 |
Behavior
Dict{MIME{Symbol("text/plain")}, String} with 1 entry: MIME type text/plain => "Error displaying result"
Source
dyad
"""
Free-flying `PointMass` in a point-gravity field: started on a circular orbit,
the orbital radius must stay constant.
`isroot = true` because `frame_a` is connected to nothing -- the point mass owns
its (world-aligned) frame orientation. Compared with the equivalent `Body`-based
`PointGravityOrbit`, this model carries no rotational state at all, so it must
solve with strictly fewer unknowns.
"""
example component PointMassOrbit
world = MultibodyComponents.World() {}
mass = MultibodyComponents.PointMass(m = 1, isroot = true, linearStatePriority = 1000, point_gravity = true, render = false, r_0(initial = [r_orbit, 0, 0]), v_0(initial = [0, v_orbit, 0])) {}
"Orbit radius [m] (LEO-ish)"
parameter r_orbit::Real = 7e6
"Circular orbit speed for the default field constant"
final parameter v_orbit::Real = sqrt(3.986004418e14 / r_orbit)
relations
endFlattened Source
dyad
"""
Free-flying `PointMass` in a point-gravity field: started on a circular orbit,
the orbital radius must stay constant.
`isroot = true` because `frame_a` is connected to nothing -- the point mass owns
its (world-aligned) frame orientation. Compared with the equivalent `Body`-based
`PointGravityOrbit`, this model carries no rotational state at all, so it must
solve with strictly fewer unknowns.
"""
example component PointMassOrbit
world = MultibodyComponents.World() {}
mass = MultibodyComponents.PointMass(m = 1, isroot = true, linearStatePriority = 1000, point_gravity = true, render = false, r_0(initial = [r_orbit, 0, 0]), v_0(initial = [0, v_orbit, 0])) {}
"Orbit radius [m] (LEO-ish)"
parameter r_orbit::Real = 7e6
"Circular orbit speed for the default field constant"
final parameter v_orbit::Real = sqrt(3.986004418e14 / r_orbit)
relations
metadata {}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses