4 Basis Fields, 2.2

Functional Differential Geometry

.

Why does d/dx appear in the book’s code (e.g. when defining a vector field like e0) before it is ever explicitly defined with a define, and why is it unbound until you run certain coordinate-system definitions?

In the FDG library (scmutils), the symbols d/dx, d/dy, d/dr, d/dθ, etc. are automatically created as literal vector-field basis objects the first time you define coordinates on a manifold using define-coordinates.

Specifically:

; rectangular coordinates
(define-coordinates (up x y) R2-rect)

does two things behind the scenes:

  1. It creates coordinate functions x, y (or r, theta) that go from points → numbers.
  2. It simultaneously creates the dual basis vector fields named d/dx, d/dy (or d/dr, d/dθ) that are literal vector fields on that coordinate system.
(for-each (lambda (name)
            (environment-define env
                                (string->symbol (string-append "d/d" (symbol->string name)))
                                (make-literal-vector-field name coord-sys)))
          coordinate-names)

These d/d… objects are not defined by a visible define in the user code; they are inserted into the global environment by the macro define-coordinates itself.

— Me@2025-10-12 10:49:20 AM

.

.

2025.12.07 Sunday (c) All rights reserved by ACHK

Posted in FDG