-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Derivative axis-free #22
Comments
👍, but how does that scale to multiple dimensions? I.e. how do you distinguish between partial derivatives, along e.g. |
Good question. I suppose we could have: D = Derivative()
D2 = D^2 # stored lazily as `applied(^,D,2)`
Dx = D ⊗ I # stored lazily as `applied(⊗,D, I)`
Dy = I ⊗ D # stored lazily as `applied(⊗,I,D)`
∇ = [Dx; Dy] # stored lazily as `applied(vcat,Dx,Dy)` Alternatively, we could try to do things "properly" with differential forms... |
I guess the ⊗ approach works for curvilinear coordinates (polar/spherical coordinates, etc), but if we ever want to do differential geometry, i.e. with a spatially varying metric, we need differential forms (?) |
It's interesting to think what differentiable forms would look like in quasi-array language: I'm not aware of finite-dimensional analogues of differential forms. Though we'll still need gradients and partial derivatives anyways so maybe best not to overthink it: just have |
Yes, I agree that |
Yes, since partial derivatives are inherently coordinate dependent they probably don’t need their own type, and the construction above is fine |
I think
Derivative
should behave likeUniformScaling
and not require axes.The text was updated successfully, but these errors were encountered: