idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.7k stars 1.04k forks source link

Generalized (Blockwise or ExtraIDwise reductions, VPP, spatial UO) distributed conservative transfers #23334

Open GiudGiud opened 1 year ago

GiudGiud commented 1 year ago

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

GiudGiud commented 1 year ago

@jortensi and @sallustius have confirmed this is of interest

GiudGiud commented 10 months ago

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.