ufz/ogs — pull request #192 by norihiro-w (2013-08-21 16:39:25+00:00)
Title: Add time stepping controller and algorithms

This request is adding time stepping tools under NumLib/TimeStepping. NumLib directory is created to gather tools particularly for numerical simulations.

TimeStepping codes have three important elements:
- Time step object (TimeStep)
- Time stepping controller (TimeSteppingController)
- Time stepping algorithms (Algorithms/ITimeStepAlgorithm, etc)

Time stepping algorithms exist to manage time stepping of individual problem. To have extendibility to support various algorithms, polymorphism is used instead of writing `switch` in one class (ogs5 approach).
`TimeSteppingController` exists for controlling time stepping of an entire system which can have multiple problems.

Example codes can be found in Tests/NumLib/TestTimeStep.cpp (c0e108e).