Hi all,

I recently wrote a boundary velocity plugin to calculate the left/right boundary velocity (Geometry: Box) for a compressed domain under the condition of a constant background strain rate (bg, manually input parameter). Since I assume that the boundary velocities have only x-component, i.e., the velocity V_y equals to zero. And the simple calculation formula is: V_x = bg \cdot L , where L is the extents of x-axis. The units of V_x obtained according to this formula is m/s.

However, when ‘set Use years in output instead of seconds = true’, the unit of velocity should be m/yr, which means that the unit should be converted from m/s to m/yr. In my opinion, the direct way is to modify the formula mentioned above to: V_x = bg \cdot L \cdot {yrs}, where yrs is year_in_seconds. But strangly, from the result, yrs should not appear in the formula.

Does this mean that when years are used as the unit of time, the velocity value returned through Tensor<1,dim> boundary_velocity(const tpes::boundary_id boundary_indicator, const Point &position) is automatically converted to m/yr ? Is it because of MKS? If so, it is better to document that, and it would be better to provide more examples of how to write boundary velocity plugins, because not all formulas are analytical, as provided in benchmarks, e.g., benchmarks/burstedde.

Best,

Xie