%MOVE_InvokeDataCaching%
Data Caching for Move Statements (optional, but recommended)
With the introduction of
ORGANIZE_USER_update_boundary_particles_Version = 3, we compute the rotation matrix \( \mathbf{M}_{rot}^{n+1}\) and the translation vector \( \mathbf{b}_{trans}^{n+1}\) such that the movement from the old to the new position of a geometry node is computed by
\begin{align} \mathbf{x}_i^{n+1} = \mathbf{M}_{rot}^{n+1} \cdot \mathbf{x}_i^{n} + \mathbf{b}_{trans}^{n+1}.\end{align}
See the definition of the individual
MOVE statements on how to incorporate
%MOVE_InvokeDataCaching%.
For any
RIGIDBODY movement, the translation and rotation items are unique, so the matrix and vector have to be computed only once per time step for all geometry points. Thus, it is recommended to also apply the option
%MOVE_InvokeDataCaching% to these move statements in order to avoid unnecessary recomputation of \( \mathbf{M}_{rot}^{n+1}\) and \( \mathbf{b}_{trans}^{n+1}\). This is possible if the movement is not dependent on space variables and only dependent on time.
Note: -
- MESHFREE does not check for space dependence because it would mean to check every node point of the geometry in every time step. This check could be costly depending on the geometry model.
- Ensure that you follow the correct order: %MOVE_InvokeDataCaching% must be the first of the optional arguments. Only exception is %MOVE_TranslationRotation%, where it must be the last optional argument.