Extended B-spline Adaptive COLlocation with error control by Interpolation.
The purpose of eBACOLI is to solve
where
for
for
Guide to the above notation:
Furthermore, the above functions
The solution to this problem is adapted from BACOLI.
BACOLI is a method of lines algorithm which uses B-spline collocation to discretize the spatial domain
The output is a vector of B-spline coefficients which can be used to calculate the approximate solution u(t,x) and its spatial derivatives at
To build:
mkdir build && cd build
cmake ..
make
Debug
or Release
builds can be selected by providing the -DCMAKE_BUILD_TYPE=<Release|Debug>
flag to cmake
.
To solve a specific problem, 2 additional things need to be linked to the library:
- A driver file (Fortran95) to act as the main program (ie., driver-toy2-simple.f95)
- A system file (Fortran77) to specify the above systems of equations (ie., toy2.f)
A python library for handling the B-spline output of eBACOLI is found at ./lib/python/ebacoli.py.
If using bash, ./ebacoli.env sets the appropriate directory in your PYTHONPATH
for its use. (Run with source ebacoli.env
)
Example for how to structure the driver and post-processing to generate video frames is found in ./examples/movie.
Movies of various solutions found in ./media.