Skip to content
/ triad Public

An object-oriented C++ kernel for integrating initial value problems.

License

Notifications You must be signed in to change notification settings

dealias/triad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                              T R I A D 
          Copyright (C) 2000-2016 John C. Bowman (bowman@math.ualberta.ca)

INTRODUCTION
============

Triad is an object-oriented C++ kernel for integrating initial value problems.

Design priorities, in order of priority:

1. High-performance computing

2. Portability

3. Object-oriented construction (reusable code)

4. Easy user-interface for data entry and output (eg., using XDR)

COMPILATION
===========

This program has been successfully compiled and tested on i386, alpha,
rs6000, sun, sgi, and t3e UNIX platforms. To compile, simply say in the
appropriate problem-dependent directory:

make

For better optimization, one can specify compiler-dependent optimization
flags, for example:

make CFLAGS="-O3 -DNDEBUG"

EXECUTION
===========

The command line is

triad [<options>]

<options> is a list of assignments, delimited by spaces, of the form A=B.

One of the most important options is the "run" name. Consider, for example,
the command line

triad run=test dt=1

The run name is associated with the parameter file test/p, which contains
further parameters assignments, separated by whitespace. Except for the run
name itself, command line assignments override parameter file
assignments. Thus, in the above example, the run "test" is begun, using
the time step of 1, regardless of what time step may be specified in the
parameter file. The default run name is "test".

Examples:

triad itmax=10
	This evolves run test 10 time steps, producing whatever output
        files are specified by the problem-dependent portion of the code,
        along with restart and statistics files and a parameter file in a
        format suitable for a graphics program (such as sm). On each run,
        the parameter file is overwritten with the current values, so that
        the program effectively "remembers" previous command-line settings.
	
triad itmax=10 restart=1
	This restarts a previous run ("test") and executes an additional 10
        time steps.

triad itmax=10 init=1
	This evolves run test 10 time steps, using as initial values the final
        values computed the last time this case was run. 

triad itmax=10 clobber=1
	This evolves run test 10 time steps, overwriting a previous restart
        file.

triad itmax=10 dynamic=1 tolmax=.5 tolmin=.05
	A typical example of dynamic time-stepping parameters that lead
        to efficient computation without numerical instability.

triad itmax=10 tmax=2.0
	This evolves run test for 10 time steps or for 2.0 time units,
        whichever is less. This is useful when dynamic time stepping is
        enabled and it is desired to terminate computation at a fixed time.

triad itmax=10 sample=1.0
	This evolves run test for 10 time steps, producing output files at
        exactly at ever 1.0 time units. This is useful when dynamic time
        stepping is enabled and it is desired to produce uniformly spaced
        output values.

triad itmax=10 dynamic=0
	This disables the dynamic time-stepping mechanism.

The complete list of kernel commands is

itmax
microsteps
tmax
dt
dynamic
tolmax
tolmin
stepfactor
stepnoninvert
dtmin
dtmax
tprecision
sample
polltime
hybrid
digits
restart
initialize
clobber
override
verbose
run
checkpoint
output
method
integrator

Each problem will generally define other commands to set various user
supplied parameters.

*** FURTHER DOCUMENTATION TO BE ADDED ***

About

An object-oriented C++ kernel for integrating initial value problems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages