Symbolics.jl icon indicating copy to clipboard operation
Symbolics.jl copied to clipboard

Add ArrayDifferentialOperators for Vector calculus

Open xtalax opened this issue 1 year ago • 7 comments

Adds Vector calculus operators which are composable by the dot and cross product.

A request for comment on a good design so that equations with these display intelligibly

xtalax avatar Aug 01 '23 18:08 xtalax

Codecov Report

Merging #942 (068ad64) into master (60d26bb) will increase coverage by 0.44%. The diff coverage is 1.72%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.

@@            Coverage Diff            @@
##           master    #942      +/-   ##
=========================================
+ Coverage    8.35%   8.80%   +0.44%     
=========================================
  Files          26      26              
  Lines        3267    3318      +51     
=========================================
+ Hits          273     292      +19     
- Misses       2994    3026      +32     
Files Changed Coverage Δ
src/diff.jl 0.29% <0.00%> (-0.06%) :arrow_down:
src/arrays.jl 12.18% <100.00%> (+0.55%) :arrow_up:

... and 1 file with indirect coverage changes

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov-commenter avatar Aug 04 '23 17:08 codecov-commenter

Core fails look unrelated

xtalax avatar Aug 21 '23 17:08 xtalax

2 things:

  1. There are extra Abstract types, I don't like creating type hierarchy until it leads to code reuse with dispatch. Until then, just use concrete types.
  2. Ideally I'd want to give Differential itself dimensions. So Differential(x) behaves like d/dx for scalar, but Differential(x) behaves like Nabla for x::Vector. Can achieve nabla by just parameterizing Differential with the type of x. It seems like all the other operators you added can still be expressed in these terms.

shashi avatar Aug 25 '23 16:08 shashi

Ideally I'd want to give Differential itself dimensions. So Differential(x) behaves like d/dx for scalar, but Differential(x) behaves like Nabla for x::Vector. Can achieve nabla by just parameterizing Differential with the type of x. It seems like all the other operators you added can still be expressed in these terms.

The reason I have done this is that operators are often combined together, so the elements of differentials are not necessarily differentials, but can in general be other functions too.

xtalax avatar Aug 25 '23 17:08 xtalax

What's left here?

ChrisRackauckas avatar Sep 14 '23 20:09 ChrisRackauckas

What is the status of this PR?

raphaelchinchilla avatar Feb 19 '24 17:02 raphaelchinchilla

Stale, someone would need to revive it.

ChrisRackauckas avatar Feb 22 '24 06:02 ChrisRackauckas