You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Success Criteria**: New benchmarks with the DAE systems.
340
304
341
-
**Recommended Skills**: Prior knowledge in modeling with differential-algebaic equations
305
+
**Recommended Skills**: Prior knowledge in modeling with differential-algebraic equations
342
306
would be helpful for debugging.
343
307
344
308
**Reviewers**: Chris Rackauckas
@@ -360,11 +324,11 @@ be discussed before starting the project.
360
324
361
325
It is recommended that implicit methods such as Rosenbrock and SDIRK integrators are
362
326
done first, as the extra intricacies of their algorithm make this refactor simpler
363
-
because the nuances of the implementation are less likely to noticably impact performance.
327
+
because the nuances of the implementation are less likely to noticeably impact performance.
364
328
365
329
**Information to Get Started**: The OrdinaryDiffEq.jl solvers are all found in
366
330
[the Github repository](https://github.com/SciML/OrdinaryDiffEq.jl) and
367
-
the format of the package is docmented in the
331
+
the format of the package is documented in the
368
332
[developer documentation](https://docs.sciml.ai/DiffEqDevDocs/stable/). The key to doing
369
333
this right is to note that it is just a refactor, so all of the methods are there in
370
334
the package already. However, note that some methods can be a bit nuanced, for example,
@@ -390,7 +354,7 @@ development skills and test-driven development of a large code base is required.
390
354
[LoopVectorization.jl](https://github.com/JuliaSIMD/LoopVectorization.jl) is a
391
355
central package for the performance of many Julia packages. Its internals make
392
356
use of many low-level features and manual SIMD that can make it require significant
393
-
maintanance to be optimized for new versions of the compiler.
357
+
maintenance to be optimized for new versions of the compiler.
394
358
395
359
**Information to Get Started**:
396
360
@@ -408,31 +372,63 @@ which SciML will help administer through the small grants program.
408
372
409
373
**Success Criteria**: LoopVectorization.jl runs on v1.12's latest release.
410
374
411
-
**Recommended Skills**: This requires some low-level knoweldge of LLVM IR and familiarity with `llvmcall`. The changes should be routine.
375
+
**Recommended Skills**: This requires some low-level knowledge of LLVM IR and familiarity with `llvmcall`. The changes should be routine.
412
376
413
377
**Reviewers**: Chris Elrod
414
378
415
379
# Successful Projects Archive
416
380
417
-
These are the previous SciML small grants projects which have successfully concluded and payed out.
381
+
These are the previous SciML small grants projects which have successfully concluded and paid out.
382
+
383
+
## Add SymPy.jl as an Alternative Backend for Symbolics.jl (\$300)
384
+
385
+
**Completed by Jash Ambaliya on June 20th, 2025.**
386
+
387
+
The Symbolics.jl symbolic solver covers a wide range of cases, but adding a fallback to SymPy's solver provides broader coverage with minimal effort. This project implemented a backend integration using SymPy.jl via automatic conversion between Symbolics and SymPy representations. It introduced helper functions for converting expressions, solving them using SymPy, and converting results back.
388
+
389
+
**Goals Achieved** :
390
+
391
+
- Documented and tested the Symbolics <-> SymPy roundtrip conversion.
392
+
- Implemented wrappers in `SymbolicsSymPyExt.jl` for the following SymPy-based operations:
393
+
-`linear_solve`
394
+
-`algebraic_solve`
395
+
-`integrate`
396
+
-`limit`
397
+
-`simplify`
398
+
399
+
This enhancement expands Symbolics.jl’s solving capabilities by leveraging the mature SymPy backend when native solutions are insufficient.
400
+
401
+
**Information to Get Started** :
402
+
403
+
The project used the existing `symbolics_to_sympy` function and the SymPy exchange mechanism. Reference discussions included:
**Success Criteria** : Pull requests adding the five requested functions to the [SymbolicsSymPyExt.jl](https://github.com/JuliaSymbolics/Symbolics.jl/blob/master/ext/SymbolicsSymPyExt.jl).
410
+
411
+
**Recommended Skills** : Basic (undergrad-level) knowledge of calculus, symbolic computation, and Python interop in Julia.
412
+
413
+
**Reviewers** : Chris Rackauckas
418
414
419
415
## Refactor OrdinaryDiffEq.jl to use Sub-Packages of Solvers (\$600)
420
416
421
417
#### Note: Bounty increase to \$600 from \$300 (7/20/2024)
422
418
423
-
**Completed by Param Umesh Thakkar for the time period of June 18th, 2024 - August 18th 2024. Extended due to scope and cost extension.**
419
+
**Completed by Param Umesh Thakkar for the time period of June 18th, 2024 - August 18th 2024. Extended due to scope and cost extension.**
424
420
425
421
It's no surprise to anyone to hear that DifferentialEquations.jl, in particular the
426
422
OrdinaryDiffEq.jl solver package, is very large and takes a long time to precompile.
427
423
However, this is because there are a lot of solvers in the package. The goal would
428
424
be to refactor this package so that sets of solvers are instead held in subpackages
429
425
that are only loaded on-demand. Since many of the solvers are only used in more
430
426
niche applications, this allows for them to be easily maintained in the same repo
431
-
while not imposing a loading cost on the more standard appliations.
427
+
while not imposing a loading cost on the more standard applications.
432
428
433
429
**Information to Get Started**: The OrdinaryDiffEq.jl solvers are all found in
434
430
[the Github repository](https://github.com/SciML/OrdinaryDiffEq.jl) and
@@ -454,9 +450,9 @@ development skills and test-driven development of a large code base is required.
454
450
The transistor amplifier benchmark was added [https://github.com/SciML/SciMLBenchmarks.jl/pull/1007](https://github.com/SciML/SciMLBenchmarks.jl/pull/1007).
455
451
Project is kept open for other benchmarks.
456
452
457
-
## SciMLBenchmarks Compatability Bump for Benchmark Sets (\$100 each set)
453
+
## SciMLBenchmarks Compatibility Bump for Benchmark Sets (\$100 each set)
458
454
459
-
**Completed 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.**
455
+
**Completed 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.**
460
456
461
457
The [SciMLBenchmarks](https://github.com/SciML/SciMLBenchmarks.jl) are a large set of benchmarks maintained
462
458
by the SciML organization. As such, keeping these benchmarks up-to-date can be a time-consuming task.
@@ -497,7 +493,7 @@ regressions found through the update process.
497
493
**Success Criteria**: The benchmarks should run and give similar results to the pre-updated benchmarks,
498
494
and any regressions should be identified with an issue opened in the appropriate repository.
499
495
500
-
**Recommended Skills**: Willingness to roll up some sleaves and figure out what changed in breaking updates.
496
+
**Recommended Skills**: Willingness to roll up some sleeves and figure out what changed in breaking updates.
501
497
502
498
**Reviewers**: Chris Rackauckas
503
499
@@ -518,4 +514,4 @@ should be sufficient.
518
514
**Recommended Skills**: Basic (undergrad-level) knowledge of linear operators and multiple dispatch
0 commit comments