# Timestep

Itasca numerical modeling codes are calculation engines that use an explicit solution to Newton’s laws of motion. The explicit solution is the backbone of the program, to which additions or optional permutations (implicit calculations for thermal solutions, dynamic multi-stepping for dynamic calculations, and so on) are added as needed.

The model state is advanced in a forward march of calculation loops called *timesteps* (or simply *steps*). Each loop is composed of a sequence of operations, termed the *cycle sequence*. From code to code, the exact operations forming that sequence varies — as is necessary for the job of that particular code. Each specific sequence is enumerated below. But for all codes, the general pattern of the sequence may be visualized as follows.

A step (or, frequently, “cycle”) is one iteration of the circuit above. While equations of motion are performed, forces are fixed for all elements; while constitutive equations are solved, effects stemming from motion (displacements in PFC; strain rates in FLAC3D) are fixed. This works because the explicit solution scheme assumes that information cannot propagate a distance of more than one element in one timestep. Therefore the length of the timestep depends on the material density, contact or zone stiffnesses and the element sizes.

Starting and Stopping Cycling

Setting this process in motion — cycling — occurs by issuing either a `model cycle`

or `model solve`

command. Cycling continues until one or more *solve limits* are reached. When using the `model cycle`

command, the solve limit is a number of cycles that is specified in the command. Cycling terminates when that number is reached. When using the `model solve`

command, on the other hand, multiple solve limits can be
specified simultaneously. Cycling is terminated when at least one solve limit has been met. A number
of solve limits are built into the program (see the `model solve`

documentation for details). In addition,
one or more FISH functions can be specified as solve limits, allowing for custom cycling
termination criteria.

During the initialization phase, the model data structures are set up, variables used during cycling are reset, and the model state is checked for validity in the sense that cycling can commence. This might occur for a number of reasons (for instance, in PFC, cycling cannot occur if any balls or clumps have 0 mass as the results would be undefined; in FLAC3D cycling cannot occur if there are zones that have not been assigned a constitutive model, and so on). The operations that compose the cycle sequence (see below) are performed during each calculation cycle. After the completion of the calculation cycle, the solve limits are checked and, should one or more be met or exceeded, cycling terminates. If no solve limits are met, additional calculation cycles are performed. During the finalization phase, model elements are created/deleted and data structures requiring validation are updated to ensure that the model state is consistent prior to returning the interactive console to the user for further input.

The user may manually terminate cycling from the toolbar or by pressing the `Shift+Esc`

key combination while cycling. If manual cycling termination is requested, the current calculation cycle is completed and the finalization stage is executed before returning control to the user.

The Cycle Sequence

The sequence of operations executed during each calculation cycle is termed the cycle sequence.
The cycle sequence consists of an ordered set of operations where each operation has a floating
point number assigned to it, termed a *cycle point*. The tables below lists the specific operations
and associated cycle points for each Itasca code.

PFC Cycle Sequence

Cycle Point | Cycle Operation |
---|---|

-10.0 | Validate data structures |

0.0 | Timestep determination |

10.0 | Law of motion (or update thermal bodies) |

15.0 | Body coupling between processes |

20.0 | Advance time |

30.0 | Update spatial searching data structures |

35.0 | Create/delete contacts |

40.0 | Force-displacement law (or thermal contact update) |

42.0 | Accumulate deterministic quantities |

45.0 | Contact coupling between processes |

60.0 | Second pass of equations of motion (not used in PFC) |

70.0 | Thermal calculations (not used in PFC) |

80.0 | Fluid calculations (not used in PFC) |

One Last Title

See Cycling for a step by step description of this cycle sequence in PFC.

Was this helpful? ... | 3DEC © 2019, Itasca | Updated: May 17, 2022 |