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:

steady

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.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