Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus Tutorials

Tempus tutorials demonstrating its capabilities.

Progression Tutorial

These tutorials use the van der Pol problem to introduce Tempus capabilities in a stepwise manner. Starting from a simple application with a hand-written Forward Euler loop, the examples progressively introduce core Tempus and Trilinos abstractions. Each example is runnable on its own, and each step adds one major concept while preserving as much of the previous example structure as possible.

The tutorial sequence introduces the following concepts:

Example 0: Problem Description
Basic Problem - baseline application code for the van der Pol problem using raw C++ arrays and a hand-written Forward Euler loop.
Example 1: Solution Data Representation
Utilize Thyra - Replace raw arrays with Thyra vectors and vector-space abstractions.
Example 2: Problem Model Evaluation
Use ModelEvaluator - Use Thyra::ModelEvaluator to describe the problem model.
Example 3: Solution Data Management
Introduce Solution State - Introduce Tempus::SolutionState to store the solution and selected integration metadata.
Example 4: Solution State History
Add Solution History - Add Tempus::SolutionHistory to manage multiple solution states.
Example 5: Time Stepping Algorithms
Introduce Stepper - introduce Tempus::Stepper to perform Forward Euler timesteps.
Example 6: Time Step Control
Introduce TimeStepControl — introduce Tempus::TimeStepControl to control timesteps with various strategies.
Example 7: Orchestrate Multiple Time Steps
Utilize IntegratorBasic — use Tempus::IntegratorBasic to manage the overall time integration process.

This progression is intended to show how applications can adopt Tempus incrementally rather than all at once.

How to read these examples

A recommended reading order is:

  • read the current example source,
  • read the transition page describing what changed from the previous step,
  • compare the files directly when line-by-line detail is needed.

Begin with Example 0: Problem Description →