# HOODESolver.jl

*A Julia package for solving numerically highly-oscillatory ODE problems*

This Julia package implements Uniformly Accurate numerical methods (UA) for highly oscillating problems. We propose to solve the following equation:

with

## Installation

HOODESolver.jl is a registered package and can be installed using the Julia package manager. From the Julia REPL, enter Pkg mode (by pressing `]`

)

```
julia>]
(@v1.5) pkg> add HOODESolver
```

## Usage

The following is an example with the system of Hénon-Heiles. Please see the documentation for further usage, tutorials, and api reference.

```
using HOODESolver
using Plots
epsilon= 0.0001
A = [ 0 0 1 0 ;
0 0 0 0 ;
-1 0 0 0 ;
0 0 0 0 ]
f1 = LinearHOODEOperator( epsilon, A)
f2 = (u,p,t) -> [ 0, u[4], 2*u[1]*u[2], -u[2] - u[1]^2 + u[2]^2 ]
tspan = (0.0, 3.0)
u0 = [0.55, 0.12, 0.03, 0.89]
prob = SplitODEProblem(f1, f2, u0, tspan)
```

solve the defined problem

```
sol = solve(prob, HOODEAB())
plot(sol)
```

For support with using HOODESolver.jl, please open an issue describing the problem and steps to reproduce it.

## How to Contribute

Here's an outline of the workflow you should use if you want to make contributions to this package.

- Fork this repository
- Make a new branch on your fork, named after whatever changes you'll be making
- Apply your code changes to the branch on your fork
- When you're done, submit a PR to
`HOODESolver.jl`

to merge your fork into master branch.

This package is licensed under the MIT Expat license. See LICENSE for more information.