SimulationUnitSystem#
- class gala.units.SimulationUnitSystem(length: Unit | Annotated[Quantity, PhysicalType('length')] = None, mass: Unit | Annotated[Quantity, PhysicalType('mass')] = None, time: Unit | Annotated[Quantity, PhysicalType('time')] = None, velocity: Quantity, PhysicalType({'speed', 'velocity'})] = None, G: float | Quantity = 1.0, angle: Unit | Annotated[Quantity, PhysicalType('angle')] = Unit('rad'))[source]#
Bases:
UnitSystem
Represents a system of units for a (dynamical) simulation.
A common assumption is that G=1. If this is the case, then you only have to specify two of the three fundamental unit types (length, mass, time) and the rest will be derived from these. You may also optionally specify a velocity with one of the base unit types (length, mass, time).
Examples
To convert simulation positions and velocities to physical units, you can use this unit system:
usys = SimulationUnitSystem(length=10 * u.kpc, time=50 * u.Myr) (sim_pos * usys["length"]).to(u.kpc) (sim_vel * usys["velocity"]).to(u.km/u.s)
Or, to convert positions and velocities from physical units to simulation units:
(100 * u.kpc).to(usys["length"])
Methods Summary
decompose
(q)A thin wrapper around
astropy.units.Quantity.decompose()
that knows how to handle Quantities with physical types with non-default representations.get_constant
(name)Retrieve a constant with specified name in this unit system.
to_dict
()Return a dictionary representation of the unit system with keys set by the physical types and values set by the unit objects.
Methods Documentation
- decompose(q)#
A thin wrapper around
astropy.units.Quantity.decompose()
that knows how to handle Quantities with physical types with non-default representations.
- get_constant(name)#
Retrieve a constant with specified name in this unit system.
- Parameters:
- name
str
The name of the constant, e.g., G.
- name
- Returns:
- const
float
The value of the constant represented in this unit system.
- const
Examples
>>> usys = UnitSystem(u.kpc, u.Myr, u.radian, u.Msun) >>> usys.get_constant('c') 306.6013937855506
- to_dict()#
Return a dictionary representation of the unit system with keys set by the physical types and values set by the unit objects.