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

ODEs, PDEs, quadrature, and finite element analysis #497

Open
fritzo opened this issue Mar 17, 2021 · 1 comment
Open

ODEs, PDEs, quadrature, and finite element analysis #497

fritzo opened this issue Mar 17, 2021 · 1 comment
Labels
discussion enhancement New feature or request

Comments

@fritzo
Copy link
Member

fritzo commented Mar 17, 2021

  1. Could we express ODEs in Funsor and then solve them via (approximate) numerical integration methods?
  2. Could we express PDEs in Funsor and then solve them via (approximate) finite element methods, possibly wrapping a backend like FEniCS?
@make_funsor
def Curl(
    field: Funsor[Reals[3]],
    position: Bound,
    position2: Fresh[Reals[3]],
) -> Reals[3]:
    pass  # TODO relies on full autograd implementation


@eager.register(Curl, Tensor, ...):
    return 0


def pressure(
    velocity: Reals[3],
    density: Real,
) -> Real:
    pass

# The following are equivalent:
with SimplicialMesh(x=my_mesh):
    velocity = ...
    assert velocity.inputs["x"] == Reals[3]

@SimplicialMesh.register(Curl, ...)
def meshed_curl_operator(...):
    ...

velocity = ...
assert velocity.inputs["x"] == Bint[my_mesh.num_vertices]
@fritzo fritzo added enhancement New feature or request discussion labels Mar 17, 2021
@fritzo
Copy link
Member Author

fritzo commented Mar 2, 2022

  1. Could we pose an ODE as a variational problem and solve with an argmax sum-product computation? In particular, could we have both local variables and global variables wrt a continuous time "plate"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant