libROM icon indicating copy to clipboard operation
libROM copied to clipboard

Sample mesh manager wrongly (?) assigns boundary labels to boundary

Open JacobLotz opened this issue 1 year ago • 3 comments

Somehow SampleMeshManager seems to assign a boundary attribute of 1 to element boundaries in the domain. These are not a part of the boundary specified in the mesh. I think these are or 1) the element boundaries of the sample mesh or 2) elements on the boundary between partitions corresponding to MPI groups or 3) a combination of both. I have verified that the boundary attribute is specified correctly in the input mesh and used correctly in the non-sampled (full order model) finite element space.

The result is that the boundary condition I have specified for boundary attribute 1 is applied randomly in the domain. I encountered this problem in a 3D problem and I did not see it in 2D problems (although it might be occurring there as well). Is this a known problem? Ping @dylan-copeland

JacobLotz avatar Feb 22 '24 10:02 JacobLotz

BTW. I think that a work around for me would be to specify boundary attribute 1 to a dummy boundary in the original mesh and not specify a boundary condition to it.

JacobLotz avatar Feb 22 '24 10:02 JacobLotz

Hi @JacobLotz, thanks for raising this issue. Setting boundary attributes on a sample mesh is tricky, because the domain is smaller for the sample mesh than the original mesh. This is a known issue which has not been resolved, because there is no general way to set boundary attributes that will work for all cases. In other words, boundary attributes may need to be defined in a way dependent on the application.

For example, in Laghos, see SetBdryAttrForVelocity and SetBdryAttrForVelocity_Cartesian in https://github.com/CEED/Laghos/blob/rom/rom/laghos_rom.cpp I determine boundary elements and set their attributes based on some geometric definitions.

Since each application may need to define boundary attributes in its own way, I suppose the best we can do is to make it more user-friendly to do that, without automating anything. Maybe SampleMeshManager could take an input parameter for the boundary attribute to be applied to boundary elements in the interior of the original mesh. Those interior boundary elements may need different attributes set in a customized way, but at least marking them as interior may be useful as a first step. A customized post-processing step may still be necessary to change those interior boundary attributes. Would this be helpful for you?

dylan-copeland avatar Feb 22 '24 17:02 dylan-copeland

Hi @dylan-copeland, thanks for your explanation and examples! I will try to find a similar workaround.

I will leave this issue open for reference for others encountering similar issues.

JacobLotz avatar Feb 26 '24 09:02 JacobLotz