Skip to content

Commit

Permalink
Update paper.md
Browse files Browse the repository at this point in the history
  • Loading branch information
mongibellili authored Aug 26, 2024
1 parent 80cce6c commit ab744fe
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags:
authors:
- name: Elmongi Elbellili
orcid: 0000-0003-1230-5488
affiliation: 1-2
affiliation: "1, 2"
affiliations:
- name: Royal Military Academy, Brussels, Belgium
index: 1
Expand All @@ -19,9 +19,9 @@ bibliography: paper.bib

# Summary

The growing intricacy of contemporary engineering systems, typically reduced to differential equations with events, poses a difficulty in digitally simulating them using traditional numerical integration techniques. The Quantized State System (QSS) and the Linearly Implicit Quantized State System (LIQSS) are different methods for tackling such problems. The QuantizedSystemSolver is a package written in the Julia language [Julia programming language](https://julialang.org) [@julia]. that aims to solve a set of Ordinary differential equations with a set of events. It implements the quantized state system methods: An approach that builds the solution by updating the system variables independently as opposed to classic integration methods that update all the system variables every step.
The growing intricacy of contemporary engineering systems, typically reduced to differential equations with events, poses a difficulty in digitally simulating them using traditional numerical integration techniques. The Quantized State System (QSS) and the Linearly Implicit Quantized State System (LIQSS) are different methods for tackling such problems [@QSS]. The QuantizedSystemSolver is a package written in the Julia language [Julia programming language](https://julialang.org) [@julia]. that aims to solve a set of Ordinary differential equations with a set of events. It implements the quantized state system methods: An approach that builds the solution by updating the system variables independently as opposed to classic integration methods that update all the system variables every step.

While the package is optimized to be fast, extensibility is not compromised. It is divided into 3 entities that can be extended separately: Problem, Algorithm, and Solution. The API was designed to provide an easier way to handle events than the approach provided by the classic integration solvers. Inside an NLodeProblem function, the user may introduce any parameters, variables, equations, and events. The output of this function (object of type Problem) is sent to the solve function along any other configuration arguments such as the alroithm type, the tolerance, and time span. Finally, a solution is produced that can be queried and plotted. The package uses other packages such as [`MacroTools.jl `]( https://github.com/FluxML/MacroTools.jl) for user-code parsing, [`SymEngine.jl `]( https://github.com/symengine/SymEngine.jl) for Jacobian computation, and a modified [`TaylorSeries.jl`](https://github.com/JuliaDiff/TaylorSeries.jl/) that uses caching to obtain free Taylor variables. The approximation through Taylor variables transforms any complicated equations to polynomials, which makes root finding cheaper. It can be used by researchers and students to efficiently model various dynamical systems with discontinuities.
While the package is optimized to be fast, extensibility is not compromised. It is divided into 3 entities that can be extended separately: Problem, Algorithm, and Solution. The API was designed to provide an easier way to handle events than the approach provided by the classic integration solvers. Inside an NLodeProblem function, the user may introduce any parameters, variables, equations, and events. The output of this function (object of type Problem) is sent to the solve function along any other configuration arguments such as the alroithm type, the tolerance, and time span. Finally, a solution is produced that can be queried and plotted. The package uses other packages such as [`MacroTools.jl `]( https://github.com/FluxML/MacroTools.jl)[@MacroTools] for user-code parsing, [`SymEngine.jl `]( https://github.com/symengine/SymEngine.jl)[@SymEngine] for Jacobian computation, and a modified [`TaylorSeries.jl`](https://github.com/JuliaDiff/TaylorSeries.jl/)[@TaylorSeries] that uses caching to obtain free Taylor variables. The approximation through Taylor variables transforms any complicated equations to polynomials, which makes root finding cheaper. It can be used by researchers and students to efficiently model various dynamical systems with discontinuities.


# Acknowledgements
Expand Down

0 comments on commit ab744fe

Please sign in to comment.