# Time Integration Specifications¶

The first card in this section dictates whether the problem is a steady state or transient simulation. This card is required. If the steady state option is chosen, then the remaining input records are not required, as the rest of the records are used to set parameters for transient simulations, e.g., time step size, time step error control, etc. Some records are optional even for a transient simulation, as indicated below. It should be noted that the mass-matrix term multiplier in the Problem Description section (see, for example, the EQ= cards), must be set to one (1) for the transient run to evolve the fields in time. The only equations that are taken as purely quasi static are the EQ=mesh equations for the situation in which the Mesh Motion type is Arbitrary.

In addition to the transient parameter information, some Level-Set function information is also supplied to Goma in this section. The method of Level-Sets is used to track fluid-fluid or fluidsolid interfaces in an Eulerian fashion, making the problem inherently transient.

## Time Integration¶

Time integration = {steady | transient}


### Description / Usage¶

This required card is used to specify transient or steady-state calculation. Valid options are:

For a solution to the steady (time-derivative free) equations.

transient

For transient simulations.

If option steady is chosen, then none of the other Time Integration Specification cards in this section are needed.

### Examples¶

This is a sample card for a steady state simulation:

Time integration = steady


This is a sample card for a transient simulation:

Time integration = transient


## delta_t¶

delta_t = <float>


### Description / Usage¶

This card is required for transient simulations to set the value of the initial time step. The input parameter is defined as:

<float>

Any floating point number that indicates the time step in the appropriate units for your problem.

To specify a fixed time step size for an analysis, set <float> to be a negative number, e.g. -1.0e-6; the code will use a constant (positive) time step. Should convergence problems occur when a fixed step size is specified, the size of the time increment entered for the delta_t card will be reduced by half until convergence is achieved. Once a constant time step is reduced, it will not be increased.

### Examples¶

Following is a sample card for an initial time step:

delta_t = 6.e-03


If a constant time step is desired, use a negative value:

delta_t = -6.e-03


## Maximum Number of Time Steps¶

Maximum number of time steps = <integer>


### Description / Usage¶

This card sets the maximum number of time steps that may be performed for a transient simulation. Goma will stop if this limit is reached. The input parameter is defined as

<integer>

Any integer greater than zero, which will limit the number of time steps taken in a simulation.

### Examples¶

The following sample card sets the maximum number of time steps to 100:

Maximum number of time steps = 100


## Maximum Time¶

Maximum time = <float>


### Description / Usage¶

This card sets the maximum value of time that may be achieved in a transient simulation. Goma will stop if this limit is reached. The input parameter is defined as:

<float>

Any floating point number in the same units as specified in the delta_t card.

The last result written to the EXODUS II and soln.dat file in a successfully completed simulation will always be at the maximum time. This provides a cutoff time beyond which the simulation will terminate.

### Examples¶

The following sample card sets the maximum time to 105 (in units consistent with your simulation):

Maximum time = 105.


## Minimum Time Step¶

Minimum time step = <float>


### Description / Usage¶

This card sets the value of the minimum allowable time step size in a transient analysis, a useful control if the time step is being decreased due to poor convergence of the transient or iterative algorithm. The input parameter is defined as

<float>

Any floating point number in the same units as specified in the delta_t card.

### Examples¶

A sample card that sets the minimum time step to 1.e-9 follows:

Minimum time step = 1.e-9


### Technical Discussion¶

This specification provides a graceful way for the program to terminate based on the computed time step dropping below the minimum value rather than terminating by a segmentation fault or a divide-by-zero error that could result if the time step becomes too small without the benefit of this control.

## Maximum Time Step¶

Maximum time step = <float>


### Description / Usage¶

This card sets the value of the maximum allowable time step size in a transient analysis, where the input parameter is defined as

<float>

Any floating point number in the same units as specified in the delta_t card.

### Examples¶

A sample card that sets the maximum time step to 10.0 follows:

Maximum time step = 10.0


### Technical Discussion¶

This setting is useful for advection dominated simulations, such as FILL, where a Courant-like limit must be set on the value of the time step for optimal performance.

## Minimum Resolved Time Step¶

Minimum Resolved Time Step = <float>


### Description / Usage¶

Its role is to set a lower bound for the time step with respect to the Time step error tolerance. When a converged time step is obtained by GOMA, the difference between the predicted solution and final solution for that time step is compared to the Time step error tolerance. If the difference exceeds this tolerance the step fails and the time step is cut (usually by a factor of 2), UNLESS the time step falls below the Minimum Resolved Time Step size. In this case the step is accepted, even if this error tolerance is not achieved. This provides a mechanism for the modeler to control what phenomena is resolved and what phenomena is ignored.

<float>

Any floating point number in the same units as specified in the delta_t card.

### Examples¶

A sample card that sets the maximum time step to 10.0 follows:

Maximum Resolved Time Step = 10.0


### Technical Discussion¶

See GT-034 for a thorough discussion.

### References¶

GT-034: Tutorial on time step parameter selection for level-set problems in GOMA. April 1, 2006. D. R. Noble

## Courant Number Limit¶

Courant Number Limit = <float>


### Description / Usage¶

This parameter’s roll is to control time step growth based on the well-known Courant number criterion. This card applies only to level-set problems. This card imposes an upper limit on the time step size, irrespective of the variable time integrator already in place.

<float>

Any floating point number to indicate the Courant number limit.

### Examples¶

A sample card that sets the Courant number to 0.2 is:

Courant Number Limit = 0.2


### Technical Discussion¶

See GT-034 for a thorough discussion.

### Theory¶

The time step limit imposed by this limit is computed as

$\mathrm{d}t_{\mathrm{limit}} = C \min_{e} \left| \frac{h_e}{ \lVert \hat{U} \rVert_e} \right|$

Here $$e$$ is the element, $$h_e$$ is the average size of the element, $$C$$ is the specified Courant number, and

$\lVert \hat{U} \rVert_e = \frac{\int_{e}^{} \delta_{\alpha} \left( \phi \right) \underline{v} \cdot \underline{n} \, d \Omega}{\int_{e}^{} \delta_{\alpha} \left( \phi \right) \, d \Omega}$

### References¶

GT-034: Tutorial on time step parameter selection for level-set problems in GOMA. April 1, 2006. D. R. Noble

## Time Step Parameter¶

Time step parameter = <float>


### Description / Usage¶

This card allows the user to vary the time integration scheme. The usual settings are:

 0 Backward Euler method (1st order in time) 0.5 Trapezoid rule (2nd order in time)

### Examples¶

This is a sample card that sets the time integration scheme to Trapezoidal rule:

Time step parameter = 0.5


### Technical Discussion¶

One should usually use the Trapezoid rule. When a large time step $$\Delta t$$ is used the Trapezoid rule can exhibit oscillations. If such a large $$\Delta t$$ is required then the Backward Euler method can be used (it will damp oscillations), albeit at a cost of accuracy.

If we designate the time step parameter as $$\theta$$, the solution at time step $$n$$ as $$y^n$$, and the PDE to be solved as

$\frac{\partial y}{\partial t} = g \left( y \right)$

then the time integration method takes the form

$\frac{y^{n+1} - y^n}{\Delta t} = \frac{2 \theta}{1 + 2 \theta} \dot{y}^n + \frac{1}{1 + 2 \theta} g \left( y^{n+1} \right)$

where

$\dot{y}^{n+1} = \frac{1 + 2 \theta}{\Delta t} \left( y^{n+1} - y^n \right) - 2 \theta \dot{y}^n = g \left( y^{n+1} \right).$

Note that there is no choice of finite $$\theta$$ that will yield a Forward Euler method. See Gartling (1987) for more information.

### FAQs¶

For porous flow problems with mass lumping, you should always choose backward Euler method.

### References¶

SAND86-1816: NACHOS 2: A Finite Element Computer Program for Incompressible Flow Problems - Part 2 - User’s Manual, Gartling, David K. (September, 1987).

## Time Step Error¶

Time step error = <float> <integer_list>


### Description / Usage¶

The time step error controls the adjustable time step size based on the difference between the solution and the predicted solution (L2 norm). The first of the eight arguments is a floating point number that indicates the error in the time step selection.

<float>

the error value, any floating point number.

The smaller this number is, the smaller the time step will tend to be in the automatic time step control. The original implementation of this capability in Goma did not use a normalized value for the norm; to enable this most useful feature, use a negative value of the time step error and a positive, normalized norm will be computed. This way a percentage value of the solution error will be set.

<integer_list>

seven integers, with a value either zero (0) or one (1).

A further degree of control is offered by the seven integers (i1 through i7) that identify which solution variables will contribute to the error norm calculations. Permissible values for each of these seven integers are 0 and 1. The correspondence between the integers and variables is as follows:

 i1 (pseudo) solid displacement i2 fluid velocity i3 temperature i4 concentration, porous liquid pressure, gas pressure, porosity, saturation i5 pressure i6 fluid (polymer) extra stress i7 voltage

A value of 0 for an integer directs Goma to exclude contributions from that variable in the error norm calculation; correspondingly, a value of 1 means that variable should be included.

### Examples¶

A sample time step error card follows:

Time step error = 0.01 0 1 1 1 0 0 0


In this example, the L2 norms for the fluid velocity, temperature, and concentration are summed (and scaled) prior to comparison with the target error value of 0.01. If the norms of the velocity, temperature, and concentration variables is greater than 0.01, the time step is halved and the step repeated. Otherwise, the current step size is compared to other step criteria before continuing to the next step.

If the integer values are omitted, the scaled error norm becomes infinite and the analysis will terminate in the error norm calculation with an arithmetic overflow.

### Examples¶

To use the normalized value of the norm, the following would be specified:

Time step error = -0.01 0 1 1 1 0 0 0


This would set the maximum time step error to be 1%.

### Technical Discussion¶

Note that on porous flow problems the error in step-size is computed as a composite measure of all porous-flow variables, viz. these cannot currently be controlled separately.

## Printing Frequency¶

Printing Frequency = <integer> [float]


### Description / Usage¶

This card sets the printing frequency, the step or time interval, at which Goma will print the solution variables to the Output EXODUS II file and the SOLN file. Definitions of the <integer> options, and the dependent [float] option when <integer> is set to 0, are:

<integer>

Specifies how often the solution will be printed.

 > 0 Interval in time steps between successive printings of the solution, any positive integer value. 0 Controls printing of the solution at regularly spaced (uniform) intervals of time (every [float]), regardless of the number of time steps over that time interval
[float]

Elapsed time (in the same units as specified in the delta_t card) between successive printings of the solution (any positive number).

### Examples¶

Goma will print the solution every five time steps given the following sample card:

Printing Frequency = 5


Goma will print the solution every ten time units given the following sample card:

Printing Frequency = 0 10.


## Fix Frequency¶

Fix Frequency = <integer>


### Description / Usage¶

<integer>

fix frequency relative to number of prints (0 is disabled)

### Examples¶

Following are sample cards:

# Fix every print
Fix Frequency = 1

# Fix every 5 prints
Fix Frequency = 5


## Second Frequency Time¶

Second frequency time = <float1> <float2>


### Description / Usage¶

This card allows the time between successive writings of the solution to change after a specified time and is only used if the <integer> in the Printing Frequency card is set to 0. Definitions of input parameters are as follows:

<float1>

Any number indicating the time at which the printing frequency should shift from that specified in the Printing Frequency card to <float2>.

<float2>

Printing frequency in time units (same units as specified in the delta_t card) for printing the solution at times greater than <float1>.

### Examples¶

The following is a sample card that will change the printing frequency to print every 3 time units after 15 time units:

Second frequency time = 15. 3.


## Initial Time¶

Initial Time = <float>


### Description / Usage¶

This card sets the time at which the calculation starts. The input parameter is defined as

<float>

Any number indicating the initial solution time (in the same units as specified in the delta_t card). An additional feature can be triggered if this float is specified to be negative, which triggers GOMA to look for the nearest restart time in the restart ExodusII database to use as the start time. Note that this option can only be used with Initial Guess options of read_exoII_file or read_exoII.

Normally, the value of <float> will be set to zero unless the problem is a continuation of a previous transient problem.

### Examples¶

The following is a sample card that shows a restart at 45 time units:

Initial Time = 45.0


The following is a sample card that triggers Goma to look for a restart time of 10 time units, or the closest time value to 10 time units, to start from:

Initial Time = -10.0