$$ \newcommand{\tp}{\thinspace .} $$

 

 

 

Scientific software engineering; ODE model

Hans Petter Langtangen [1, 2]

[1] Center for Biomedical Computing, Simula Research Laboratory
[2] Department of Informatics, University of Oslo

Jul 30, 2015

Table of contents

Basic implementations
      Mathematical problem and solution technique
      A first, quick implementation
      A more decent program
      Implementing the numerical algorithm in a function
      Do not have several versions of a code
      Making a module
      Prefixing imported functions by the module name
      Example on extending the module code
      Documenting functions and modules
User interfaces
      Command-line arguments
      Positional command-line arguments
      Option-value pairs on the command line
      Creating a graphical web user interface
Tests for verifying implementations
      Doctests
      Unit tests and test functions
      Test function for the solver
      Test function for reading positional command-line arguments
      Test function for reading option-value pairs
      Classical class-based unit testing
Sharing the software with other users
      Organizing the software directory tree
      Publishing the software at GitHub
      Downloading and installing the software
Classes for problem and solution method
      The problem class
      The solver class
      Improving the problem and solver classes
Automating scientific experiments
      Available software
      Required new results
      Combining plot files
      Running a program from Python
      The automating script
      Making a report
      Publishing a complete project
Exercises
      Problem 1: Make a tool for differentiating curves
      Problem 2: Make solid software for the Trapezoidal rule
      Problem 3: Implement classes for the Trapezoidal rule
      Problem 4: Write a doctest and a test function
      Problem 5: Experiment with tolerances in comparisons
      Exercise 6: Make use of a class implementation
      Exercise 7: Make solid software for a difference equation
Bibliography

Read »