Extend `unique_node_execute` for boundaries
Opened this issue · 0 comments
maxnezdyur commented
Bug Description
unique_node_execute
does not do anything for boundaries. MWE below shows that for a postprocessor, a single boundary is needed to be created to get the correct Nodal Sum. This is because there is double counting of nodes that exist in two boundaries.
Same problem exists for NodalValueSampler
Steps to Reproduce
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 1
ny = 1
[]
[sideset]
type = SideSetsAroundSubdomainGenerator
input = gmg
block = 0
new_boundary = all
[]
[]
[AuxVariables]
[ones]
initial_condition = 1
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Postprocessors]
[sep_bc]
type = NodalSum
variable = ones
boundary = 'left right top bottom'
unique_node_execute = true
[]
[all_bc]
type = NodalSum
variable = ones
boundary = 'all'
unique_node_execute = true
[]
[]
Postprocessor Values:
+----------------+----------------+----------------+
| time | all_bc | sep_bc |
+----------------+----------------+----------------+
| 0.000000e+00 | 0.000000e+00 | 0.000000e+00 |
| 1.000000e+00 | 4.000000e+00 | 8.000000e+00 |
+----------------+----------------+----------------+
Impact
Wrong answers and wasted time debugging.
[Optional] Diagnostics
No response