@@ -44,7 +44,7 @@ pip install coordinax
4444 dimensions). A rep does not store numerical values.
4545- Vector: data + rep + role. Data are the coordinate values or physical
4646 components.
47- - Role: semantic interpretation of vector data (Pos, Vel, Acc , etc.). A role is
47+ - Role: semantic interpretation of vector data (Pos, Vel, PhysAcc , etc.). A role is
4848 not a rep.
4949- Metric: a bilinear form g on the tangent space defining inner products and
5050 norms (Euclidean, sphere intrinsic, Minkowski).
@@ -134,8 +134,8 @@ v = {
134134 "y": u.Q(5.0, "km/s"),
135135 "z": u.Q(6.0, "km/s"),
136136}
137- qvec = cx.Vector(data=q, chart=cx.charts.cart3d, role=cx.roles.Pos ())
138- vvec = cx.Vector(data=v, chart=cx.charts.cart3d, role=cx.roles.Vel ())
137+ qvec = cx.Vector(data=q, chart=cx.charts.cart3d, role=cx.roles.PhysDisp ())
138+ vvec = cx.Vector(data=v, chart=cx.charts.cart3d, role=cx.roles.PhysVel ())
139139v_sph = vvec.vconvert(cx.charts.sph3d, qvec)
140140v_back = v_sph.vconvert(cx.charts.cart3d, qvec)
141141bool(
@@ -150,19 +150,19 @@ Different vector roles transform via different mechanisms:
150150
151151| Role | Transformation | Requires Base Point? |
152152| -------------- | ----------------------------------- | -------------------- |
153- | ` Pos ` | Position transform (coordinate map) | No |
154- | ` Displacement ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
155- | ` Vel ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
156- | ` Acc ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
153+ | ` Point ` | Position transform (coordinate map) | No |
154+ | ` PhysDisp ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
155+ | ` PhysVel ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
156+ | ` PhysAcc ` | Tangent transform (physical vector) | Sometimes[ ^ 1 ] |
157157
158158[ ^ 1 ] :
159159 Required when converting between representations (e.g., Cartesian ↔
160160 Spherical), not required for unit conversions within the same
161161 representation.
162162
163- ## FiberPoint : Ergonomic Tangent Vector Conversions
163+ ## PointedVector : Ergonomic Tangent Vector Conversions
164164
165- ` FiberPoint ` provides a container for vectors anchored at a common base point,
165+ ` PointedVector ` provides a container for vectors anchored at a common base point,
166166automatically managing the base point dependency required for tangent vector
167167transformations:
168168
@@ -174,7 +174,7 @@ vel = cx.Vector.from_([10, 20, 30], "km/s")
174174acc = cx.Vector.from_([0.1, 0.2, 0.3], "km/s^2")
175175
176176# Create bundle - base is explicit, fields are tangent vectors
177- bundle = cx.FiberPoint (base=base, velocity=vel, acceleration=acc)
177+ bundle = cx.PointedVector (base=base, velocity=vel, acceleration=acc)
178178
179179# Convert entire bundle - automatically handles `at=` for tangent vectors
180180sph_bundle = bundle.vconvert(cx.charts.sph3d)
@@ -188,13 +188,13 @@ sph_bundle = bundle.vconvert(cx.charts.sph3d)
188188
189189** Key features:**
190190
191- - Base must have role ` Pos ` ; fields must not (enforced at construction)
191+ - Base must have role ` PhysDisp ` ; fields must not (enforced at construction)
192192- Automatic ` at= ` parameter handling for tangent transformations
193193- JAX-compatible (works with ` jax.jit ` , ` vmap ` )
194194- Physical components with uniform units (not coordinate derivatives)
195195
196196See the
197- [ FiberPoint guide] ( https://coordinax.readthedocs.io/en/latest/guides/anchored_vector_bundle.html )
197+ [ PointedVector guide] ( https://coordinax.readthedocs.io/en/latest/guides/anchored_vector_bundle.html )
198198for details.
199199
200200## Vector Algebra: Points vs Displacements
@@ -238,33 +238,33 @@ disp_from_origin = cx.as_pos(new_pos)
238238
239239| Operation | Result | Allowed? |
240240| ----------------------------- | -------------- | -------- |
241- | ` Displacement + Displacement ` | ` Displacement ` | ✅ |
242- | ` Pos + Displacement ` | ` Pos ` | ✅ |
243- | ` Displacement + Pos ` | — | ❌ |
244- | ` Pos + Pos ` | — | ❌ |
241+ | ` PhysDisp + PhysDisp ` | ` PhysDisp ` | ✅ |
242+ | ` Point + PhysDisp ` | ` Point ` | ✅ |
243+ | ` PhysDisp + Point ` | — | ❌ |
244+ | ` Point + Point ` | — | ❌ |
245245
246246> ** ⚠️ Critical: Physical Components with Uniform Units**
247247>
248- > ` Displacement ` stores ** physical vector components in an orthonormal frame** ,
248+ > ` PhysDisp ` stores ** physical vector components in an orthonormal frame** ,
249249> not coordinate increments. All components must have uniform dimension
250250> ` [length] ` .
251251>
252252> For example, in cylindrical coordinates:
253253>
254- > - ✅ ** Correct** : ` Displacement (rho=1m, phi=2m, z=3m)` — physical components,
254+ > - ✅ ** Correct** : ` PhysDisp (rho=1m, phi=2m, z=3m)` — physical components,
255255> where ` phi=2m ` means "2 meters in the tangential direction"
256- > - ❌ ** Wrong** : ` Displacement (rho=1m, phi=0.5rad, z=3m)` — coordinate
256+ > - ❌ ** Wrong** : ` PhysDisp (rho=1m, phi=0.5rad, z=3m)` — coordinate
257257> increments with mixed units
258258>
259- > This applies to all tangent vectors (` Displacement ` , ` Vel ` , ` Acc ` ), which
259+ > This applies to all tangent vectors (` PhysDisp ` , ` PhysVel ` , ` PhysAcc ` ), which
260260> transform via orthonormal frame transformations, not coordinate chart
261261> transformations.
262262
263263## Metrics and Representations
264264
265- Representations are coordinate charts; roles (Pos, Vel, Acc , ...) give vectors
266- their physical meaning. A chart’s default metric defines how physical components
267- are interpreted.
265+ Representations are coordinate charts; roles (PhysDisp, PhysVel, PhysAcc , ...)
266+ give vectors their physical meaning. A chart’s default metric defines how
267+ physical components are interpreted.
268268
269269- Euclidean charts are exposed in ` cx.r ` (Cart, Cylindrical, Spherical, etc.).
270270- Manifold charts are exposed in ` cx.r ` (e.g. ` TwoSphere ` ).
0 commit comments