Solution step maintain the reference to correspoding Engineering model class instance. It maintain also its "intrinsic time" and corresponding time increment. The meaning of these values is dependent on current Engineering model used. The time may represent either current time, load increment number or load case number. See corresponding Engng model reference for details.
Some components (typically integration points real stresses or integration points nonlocal values) are computationally wery demanding. Because in typical code, there are number of requests for same value during the computation process, it may be efficient to store these values and compute them only once. The principal problem is to recognize, when is necessary to re-compute these stored values to reflect newly reached state. This cannot be determined form solution step "time", because solution step may represent for example load increment, inside which typically many iterations are needed to reach convergence. For this purpose, a concept of solution state counters is provided. Whenever the solution state changes, the engineering model updates the solution state counter. The solution state counter is guaranteed to grow up smoothly (it newer decreases) during solution process. Other components of program (integration points) can then store their computationally expensive values but have to store also corresponding solution state counter value valid when these were computed. Then their can easily check for difference between freezed solution state counter for their value with current solution state requested from solution step and recompute the values if necessary.
Borek Patzak 2018-01-02