Open GiudGiud opened 1 year ago
@jortensi and @sallustius have confirmed this is of interest
This can be tackled in four parts:
I ll do the first three for sure. If there's more interest, please ping me and I ll do part 4.
I can see @aprilnovak being interested in this for Cardinal so I'll tag you if you don't mind.
Reason
In a meeting with a client, feature was requested for conserving energy in transfer between a global calculation and individual distributed subscale calculations. The quantity, related to the transfered field, should be conserved on a local per-app basis rather than simply on a global basis (as the system currently allows with PPs only)
Local per-app basis can be done currently using the NearestPointAverage user objects. This is a special case in the code that could be generalized to user objects
Design
A VPP on global app (main app most likely) for the quantities of interest in each block/id-ed region OR a spatial UO on the global app
A postprocessor with the same name in each distributed subapp OR a VPP on the subapp tied to block/extraIDs
The ratios between the VPP-indexed / spatial values and the PP for each subapp should be used to renormalize the transfer. The renormalization should be local
EDIT: we can currently do this two ways:
Impact
More fine grained energy conservation Better convergence of multiphysics as a result
Tagging @friedmud @permcody @vincentlaboure who attended said meeting