Adding SpaceTimeData to MPL interfaces
Discussion started in !4198 (comment 112437)
- ND: add value(), dValue(), d2Value(), overloads taking SpaceTimeData.
- ND:
- Maybe it is better to put x and t together into SpaceTime struct, but leave dt out of it. Then SpaceTime could also be used in the Parameters.
- Or we might add MPL::SpaceTime holding x, t, and dt, but also ParameterLib::SpaceTime holding x and t only.
- Or we might have two structures XT and XTDt.
- WW: I prefer to have ParameterLib::SpaceTime.
- TM: In case of doubt, I would always provide fewer data as possible to functions. The solution with 2 dedicated structures with and without dt is fine. The extra complexity in code is justified by a less complicated reasoning for later readers. Without as deep understanding as you have here, the name 'SpaceTime' suggests to me that we are dealing with a fundamental concept here. For fundamental concepts, we must be as precise as possible, even at the costs of (a bit) more code (exceptionally).
- RL:
- In my humble opinion, I would place such spatio-temperal meta data either in ParameterLib or MPL rather than in a specific process since materials usually have spatial-time dependent properties. I am not sure where to place the struct better between ParameterLib and MPL.
- I am wondering if it is costly to hold struct SpaceTime individually in the ParameterLib and MPL because the creation of the struct in times equals to number of integration points * number of elements * number of time steps.