Skip to content

Commit 3d6f234

Browse files
Merge pull request #153 from SciML/sympy_small_grant
Updates the small grants projects
2 parents 2f47256 + 74a33dc commit 3d6f234

File tree

1 file changed

+24
-61
lines changed

1 file changed

+24
-61
lines changed

small_grants.md

Lines changed: 24 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -162,44 +162,42 @@ will "go the extra mile" to teach the contributor how the package or mathematics
162162

163163
# List of Current Projects
164164

165-
## Update NeuralPDE to be more maintainable (\$300)
165+
## Create Wrapper Functions to SymPy for Symbolics.jl (\$300)
166166

167-
**In Progress**: Claimed by Arushi Gupta for the time period of January 25th - February 25th.
167+
The Symbolics.jl solver handles a lot of cases, but can always be better.
168+
The lowest hanging fruit is to set it up with SymPy.jl as an alternative backend,
169+
where automatic translation is used to do the solving, i.e. transform a Symbolics.jl
170+
expression to SymPy, run the SymPy symbolic solver to get a solution, and convert back
171+
to Symbolics.jl.
168172

169-
NeuralPDE is a package for training Physics Informed Neural Networks based on Lux.jl.
170-
It was originally developed from Flux and while updating to Lux, several older bits
171-
were left inplace. These need to be updated to a more Lux style approach.
173+
The goals of this project are thus as follows:
172174

173-
**Information to Get Started**: The linked issue describes in detail what needs to be
174-
done.
175+
* Document the Symbolics <-> Sympy round trip conversion process and functions. Add tests that it works.
176+
* Create wrapper functions for the specific Sympy solvers, i.e.
177+
* linear solve
178+
* algebraic solve
179+
* integrate
180+
* limit
181+
* simplify
175182

176-
**Related Issues**: https://github.com/SciML/NeuralPDE.jl/issues/900
183+
**Information to Get Started**: There is already a `symbolics_to_sympy` function
184+
https://github.com/JuliaSymbolics/Symbolics.jl/blob/v6.40.0/ext/SymbolicsSymPyExt.jl and
185+
there is an exchange function in SymPy core, so I think all of the tools are there to do
186+
such conversions, see https://github.com/JuliaSymbolics/Symbolics.jl/issues/1223 and
187+
https://github.com/jverzani/SymPyCore.jl/pull/88.
177188

178-
**Recommended Skills**: Basic (undergrad-level) knowledge of Physics Informed Neural
179-
Networks and GPUs
189+
**Related Issues**: https://github.com/JuliaSymbolics/Symbolics.jl/issues/1551
180190

181-
**Reviewers**: Avik Pal, Chris Rackauckas
191+
**Success Criteria**: Pull requests which add the 5 requested functions to the
192+
SymbolicsSymPyExt.jl extension of Symbolics.jl,
193+
https://github.com/JuliaSymbolics/Symbolics.jl/blob/master/ext/SymbolicsSymPyExt.jl
182194

183-
## Rewrite the NeuralPDE parser (\$300)
184-
185-
NeuralPDE is a package for training Physics Informed Neural Networks (PINNs) uses a
186-
symbolic representation for problems which are then lowered into generated code for
187-
the user, fully automating the PINN experience. However, the previous formulation of the
188-
codegen process used pre-built kernels that can be difficult to debug. The goal of this
189-
project is to rewrite the loss function generator to instead generate a Symbolics.jl
190-
expression, which can be analyzed an generate code through `build_function`.
191-
192-
**Information to Get Started**: A partial uncompleted pull request https://github.com/SciML/NeuralPDE.jl/pull/877 can be used as a starting point.
193-
194-
**Recommended Skills**: Basic (undergrad-level) knowledge of Physics Informed Neural
195-
Networks, and symbolic computing.
195+
**Recommended Skills**: Basic (undergrad-level) knowledge of calculus and Python
196196

197197
**Reviewers**: Chris Rackauckas
198198

199199
## Fix and Update the "Simple Handwritten PDEs as ODEs" Benchmark Set (\$200)
200200

201-
**In Progress**: Claimed by Jigyasu for the time period of February 23rd - March 24th.
202-
203201
The "Simple Handwritten PDEs as ODEs" benchmarks have been failing for awhile.
204202
They need to be updated to the "new" linear solve syntax introduced in 2022.
205203
When updated, these benchmarks should serve as a canonical development
@@ -231,8 +229,6 @@ PDE discretiations.
231229

232230
## SciMLBenchmarks Compatability Bump for Benchmark Sets (\100 each set)
233231

234-
**In Progress**: Both sets claimed by Param Umesh Thakkar for the time period of January 21st - February 21st. Extended from February 21st to March 21st. Extended due to the project's complexity and final refinements.
235-
236232
The [SciMLBenchmarks](https://github.com/SciML/SciMLBenchmarks.jl) are a large set of benchmarks maintained
237233
by the SciML organization. As such, keeping these benchmarks up-to-date can be a time-consuming task.
238234
In many cases, we can end up in a situation where there are many package bumps that need to happen. Sometimes
@@ -269,36 +265,7 @@ and any regressions should be identified with an issue opened in the appropriate
269265

270266
**Reviewers**: Chris Rackauckas
271267

272-
## Update BlackBoxOptimizationBenchmarking.jl to the Optimization.jl Interface and Add to SciMLBenchmarks (\$300)
273-
274-
[BlackBoxOptimizationBenchmarking.jl](https://github.com/jonathanBieler/BlackBoxOptimizationBenchmarking.jl)
275-
is a very interesting set of benchmarks between global optimization tools. However,
276-
it has not been updated in years. It would be useful to the community if this
277-
set of benchmarks was updated to the modern SciML interfaces and benchmarking tools
278-
so it can make use of the full set of methods in Optimization.jl and drive further
279-
developments and recommendations to users.
280-
281-
**Information to Get Started**: The
282-
[Contributing Section of the SciMLBenchmarks README](https://github.com/SciML/SciMLBenchmarks.jl?tab=readme-ov-file#contributing)
283-
describes how to contribute to the benchmarks. The benchmark results are
284-
generated using the benchmark server. It is expected that the benchmarks are
285-
updated to use the [Optimization.jl](https://docs.sciml.ai/Optimization/stable/)
286-
interface, which is an interface over most optimizers in Julia. Not all of the
287-
optimizers are covered in this interface: simply remove the optimizers which
288-
are not wrapped into Optimization.jl
289-
290-
**Related Issues**: [https://github.com/SciML/SciMLBenchmarks.jl/issues/640](https://github.com/SciML/SciMLBenchmarks.jl/issues/640)
291-
292-
**Success Criteria**: The benchmarks should be turned into a loop over Optimization.jl
293-
solvers in a standard SciMLBenchmarks benchmark build.
294-
295-
**Recommended Skills**: Basic (undergrad-level) knowledge of using numerical optimizers
296-
297-
**Reviewers**: Chris Rackauckas and Vaibhav Dixit
298-
299268
## Update CUTEst.jl to the Optimization.jl Interface and Add to SciMLBenchmarks (\$200)
300-
**In Progress**: Claimed by Alonso Cisneros for the time period of 10.Mar.25 - 10.Apr.25.
301-
302269

303270
[CUTEst.jl](https://github.com/JuliaSmoothOptimizers/CUTEst.jl)
304271
is a repository of constrained and unconstrained nonlinear programming problems for testing
@@ -425,12 +392,8 @@ which SciML will help administer through the small grants program.
425392

426393
**Reviewers**: Chris Elrod
427394

428-
429-
430395
# Successful Projects Archive
431396

432-
433-
434397
These are the previous SciML small grants projects which have successfully concluded and payed out.
435398

436399
## Refactor OrdinaryDiffEq.jl to use Sub-Packages of Solvers (\$600)

0 commit comments

Comments
 (0)