Rythmos - Transient Integration for Differential Equations
Version of the Day
|
Rythmos is a transient integrator for ordinary differential equations and differential-algebraic equations with support for explicit, implicit, one-step and multi-step algorithms. The fundamental design of Rythmos is aimed at supporting operator-split algorithms, multi-physics applications, block linear algebra, and adjoint integration.
Rythmos::ImplicitBDFStepper
provides a re-implementation of the algorithms in the LLNL Sundials code IDA. This is an implicit BDF integrator for DAEs which uses variable step-sizes and variable-orders first through fifth.
Rythmos::ExplicitRKStepper
provides a four stage fourth order explicit RK stepper with fixed step-sizes provided by the application.
Rythmos::ForwardEulerStepper
provides the explicit forward Euler algorithm with fixed step-sizes provided by the application.
Rythmos::BackwardEulerStepper
provides the implicit backward Euler algorithm with fixed step-sizes provided by the application. This class supports ODEs and DAEs.
ExampleApplication
: This is the classic linear differential equation .
ExampleApplication1Dfem
: This is a one dimensional finite element problem from NOX that solves: .
Rythmos is dependent on the following Trilinos packages:
Thyra: This package provides interfaces and support code which includes the linear algebra operations, linear solve operations, nonlinear solve operations and the ModelEvaluator interface for applications. Rythmos is basically build directly on top of Thyra.
RTOp: This package supplies the basic interfaces for vector reduction/transformation operators used by Thyra.
Teuchos: This package provides basic utility classes such as Teuchos::RCP
and Teuchos::ParameterList
.
Rythmos' configure script responds to several top level Trilinos options.
The most important configuration option is:
–enable-rythmos
: This causes Rythmos and all of its dependent packages to be built.
If you want to build the examples, you need to enable several other packages including: EpetraExt, NOX, Amesos, AztecOO, IFPACK, and Stratimikos:
–enable-epetraext
: For the EpetraExt::ModelEvaluator
interface. This also pulls in Epetra.
–enable-epetraext-thyra
: For the Thyra adaptor Thyra::EpetraModelEvaluator
between the Thyra::ModelEvaluator
and EpetraExt::ModelEvaluator
.
–enable-nox
: This is for the 1DfemTransient example which comes from NOX.
–enable-nox-epetra
: This enables the Epetra interface in NOX.
–enable-amesos
: This enables direct sparse linear solvers for implicit methods.
–enable-aztecoo
: This enables iterative linear solvers for implicit methods.
–enable-ifpack
: This enables preconditioners for AztecOO.
–enable-stratimikos
: This is the interface the examples use to talk to Amesos and AztecOO.
The authors of the Rythmos package, are:
And grateful acknowledgement of very helpful insight at just the right times go to: