CoupledVarThresholdElementSubdomainModifier - moving boundary error #19047
-
Hi, I made sure MOOSE and conda were fully updated before testing and posting this and I could not find this issue posted elsewhere. I am using CoupledVarThresholdElementSubdomainModifier in my input file to modify my active domain. I start with a thin layer and add more layers in the Z direction. The function used to modify the boundary is called 'layerZ' and its value is displayed in exodus. Input file is here:
The bulk of the domain seems to behave correctly, but some unusual behavior appears on the boundary. time = 2 According to the legend it seems like a rounding error. Not a big deal, but the moving boundary labeled 'topLayer' shows some inconsistent behavior. time = 2 At first it matches block 1 almost exactly. But at some point it diverges from block 1 and somehow the moving boundary is comprised of separate z-planes. time = 4 time = 4 I need to use the moving boundary as part of my problem but I do not think it will work like this. I am struggling to figure out why this error occurs. I appreciate your help in figuring this out. Thanks, |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 60 replies
-
Hello Since you have already identified the issue as being a rounding error, just change the value field in LayerZfunc to be offset by some small epsilon like 1e-8 and it will resolve this. Rounding errors can be inconsistent between different computations at different timesteps, there s very little that can done apart from using small offsets Guillaume |
Beta Was this translation helpful? Give feedback.
-
Hi Guillaume, I tried adding an epsilon starting with e-8 up to e-2. I tried it both within the argument of the floor function and outside of it, but the error persists the same way. Would changing the value of |
Beta Was this translation helpful? Give feedback.
-
I can test to see if I can reproduce this. I've already recorded several bugs, if this is also a bug in element subdomain modifier, I'll also add this to my to-do list. But right now I don't have a clear idea of when I can get to them. |
Beta Was this translation helpful? Give feedback.
-
I tried to circumvent this issue by using SideSetsAroundSubdomainGenerator when defining my mesh and blocks initially. I used it to define the boundaries around block 1. But now the problem is that
Is there a way to make the mesh generator update the sidesets when CoupledVarThresholdElementSubdomainModifier makes a change? Thanks, |
Beta Was this translation helpful? Give feedback.
I tried to circumvent this issue by using SideSetsAroundSubdomainGenerator when defining my mesh and blocks initially. I used it to define the boundaries around block 1. But now the problem is that
The top boundary between blocks 1 and 2 works correctly until the subdomain is modified by CoupledVarThresholdElementSubdomainModifier. At that point, the boundary between the subdomains disappears.
The sides of block 1 (everything except z = 0 and the boundary between blocks 1 and 2) stay at their initially defined geometry and do not update with increasing z.
Is there a way to make the mesh generator update the sidesets when CoupledVarThresholdElementSubdomainModifier makes a change?
Th…