Skip to content
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

Improvements to differential/Jacobian calculations #37

Closed
mikeingold opened this issue Apr 7, 2024 · 4 comments
Closed

Improvements to differential/Jacobian calculations #37

mikeingold opened this issue Apr 7, 2024 · 4 comments
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@mikeingold
Copy link
Collaborator

I consolidated all of the previous differential functions into a single function that uses an if/else condition on the number of parametric dimensions

https://github.com/mikeingold/MeshIntegrals.jl/blob/5d92c86d07fa6af97d3df024cdf40fe58a50d16b/src/utils.jl#L62-L81

These operations (norm, norm of cross product, triple product) can be generalized as falling out of an exterior/wedge product using Geometric/Clifford Algebra. It would be nice to generalize this operation into something simple like norm(foldl(wedge, J)) that doesn't require a conditional.

It looks like DifferentialForms.jl could be used but would require some adaptation to translate between Forms and vectors.

@mikeingold mikeingold added the enhancement New feature or request label Apr 7, 2024
@mikeingold mikeingold changed the title TODO Generalize differential function Generalize differential function using geometric algebra Apr 14, 2024
@mikeingold mikeingold pinned this issue Apr 14, 2024
@mikeingold mikeingold unpinned this issue Aug 14, 2024
@mikeingold mikeingold changed the title Generalize differential function using geometric algebra Improvements to differential/Jacobian calculations Sep 2, 2024
@mikeingold
Copy link
Collaborator Author

Merging this with AD topic.

The above refers to generalizing the differential element function to arbitrary dimensions. However, the Jacobians this is built on are currently finite-difference approximations. Ideally, these partial differentials could be calculated using an automatic differentiation (AD) package.

@mikeingold mikeingold added help wanted Extra attention is needed question Further information is requested labels Sep 2, 2024
@mikeingold
Copy link
Collaborator Author

Status Update

  • Changes rolled in with v0.14.0 included merging of the previous derivative function into jacobian.
  • I'm still planning to update differential hopefully soon with a generalization to any number of dimensions.
  • I have no update on AD functionality. The last I checked, none of the big AD packages I tried were able to achieve AD on Meshes.jl parametric functions out-of-the-box, and defining a bunch of chain rules for them is really something that would need to be done upstream in Meshes.jl proper.

@mikeingold
Copy link
Collaborator Author

PR #101 implements a generalization of differential to any number of parametric dimensions using geometric algebra (via CliffordNumbers.jl).

The remaining part of this issue is in implementing improved jacobian calculations.

@mikeingold mikeingold unpinned this issue Oct 10, 2024
@mikeingold
Copy link
Collaborator Author

I'm re-splitting this Issue to track the AD topic in a re-opened #35

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant