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

MultiAppMeshFunctionTransfer and MultiAppNearestNodeTransfer do not work properly with CONSTANT MONOMIAL #12245

Closed vincentlaboure closed 5 years ago

vincentlaboure commented 5 years ago

Rationale

Two defects are being reported in this issue. It looks like: 1) MultiAppMeshFunctionTransfer does not work appropriately with CONSTANT MONOMIAL if the master mesh is more refined than the subapp mesh (even if the latter is strictly included in the former). More specifically, it seems that the transfer is not conservative which is surprising since the projection should be pretty straightforward.

2) MultiAppNearestNodeTransfer does not work appropriately with CONSTANT MONOMIAL (regardless of the refinement). In that case, the transferred field is zero everywhere... Yet, the source code seems to cover the !is_nodal case.

Description

To reproduce the errors:

1) Go here and run the master file (may need to change MultiApps/sub_app/app_type). The subapp postprocessor pwr_density_avg returns 4.75 while it should be 5 (not conservative). If Mesh/uniform_refine is set to 1, the expected value is obtained.

2) Run the same input files as before but change Transfers/to_sub_power_density/type to MultiAppNearestNodeTransfer. Both subapp postprocessors (power_density_max and pwr_density_avg) return zero. The same result is obtained regarless of Mesh/uniform_refine.

Impact

Both of these are problematic because some multiphysics applications require to transfer CONSTANT MONOMIAL variables.

friedmud commented 5 years ago
  1. Is not a bug. This transfer is not at all meant to be conservative. It is a sampling transfer. It samples the source domain at the destination domain's nodes / elements (depending on if you're transferring to an elemental or nodal field).

On Wed, Oct 3, 2018 at 5:07 PM vincentlaboure notifications@github.com wrote:

Rationale

Two defects are being reported in this issue. It looks like:

1.

MultiAppMeshFunctionTransfer does not work appropriately with CONSTANT MONOMIAL if the master mesh is more refined than the subapp mesh (even if the latter is strictly included in the former). More specifically, it seems that the transfer is not conservative which is surprising since the projection should be pretty straightforward. 2.

MultiAppNearestNodeTransfer does not work appropriately with CONSTANT MONOMIAL (regardless of the refinement). In that case, the transferred field is zero everywhere... Yet, the source code seems to cover the !is_nodal case.

Description

To reproduce the errors:

1.

Go here https://github.com/vincentlaboure/moose/tree/multiapp_transfer_problems/test/tests/transfers/transfer_pb and run the master file (may need to change MultiApps/sub_app/app_type). The subapp postprocessor pwr_density_avg returns 4.75 while it should be 5 (not conservative). If Mesh/uniform_refine is set to 1, the expected value is obtained. 2.

Run the same input files as before but change Transfers/to_sub_power_density/type to MultiAppNearestNodeTransfer. Both subapp postprocessors (power_density_max and pwr_density_avg) return zero. The same result is obtained regarless of Mesh/uniform_refine.

Impact

Both of these are problematic because some multiphysics applications require to transfer CONSTANT MONOMIAL variables.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/idaholab/moose/issues/12245, or mute the thread https://github.com/notifications/unsubscribe-auth/AA1JMUhQf21B32az024NWyBEwtilPg3Uks5uhTULgaJpZM4XHCDd .

vincentlaboure commented 5 years ago

Oh I see, thank you for the clarification! Would there be some documentation available to see what each transfer is designed to do? In particular, I need a conservative transfer working with CONSTANT MONOMIAL but I am not really sure what to use.

permcody commented 5 years ago

No documentation. We are working to generate it. It takes a lot of time and we are all so busy. It will be coming.

On Thu, Oct 4, 2018 at 9:09 AM vincentlaboure notifications@github.com wrote:

Oh I see, thank you for the clarification! Would there be some documentation available to see what each transfer is designed to do? In particular, I need a conservative transfer working with CONSTANT MONOMIAL but I am not really sure what to use.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/idaholab/moose/issues/12245#issuecomment-427055865, or mute the thread https://github.com/notifications/unsubscribe-auth/AC5XIO85O7clfgfks1AwP7fH2CCiEbDWks5uhiS5gaJpZM4XHCDd .

permcody commented 5 years ago

Confirmed that an elemental variable cannot be used for the source regardless of the destination.