From: Kirk, B. (JSC-EG311) <ben...@na...> - 2010-05-28 23:48:30
|
What you describe is what I am doing. In my case I have a fluid domain and want to extract different variables on the boundary. So when I extract heat flux, for example, I need the interior element values to compute it. -Ben ----- Original Message ----- From: Vijay S. Mahadevan <vi...@gm...> To: Kirk, Benjamin (JSC-EG311) Cc: lib...@li... <lib...@li...> Sent: Fri May 28 18:40:22 2010 Subject: Re: [Libmesh-users] Obtaining interior element of a side. I guess that might work but I'm not entirely sure yet. To give you some background, I'm doing a conjugate transfer problem and have defined the fluid variables on a subdomain which is defined only on the boundary surface. So when iterating over the boundary mesh, I need access to both the current element (side) and the interior element so that I can correctly couple the surface temperature and the fluid temperature. The suggestion you gave will probably involve querying the interior mesh using PointLocator to get the correct interior element corresponding to the side. Is this the methodology you were thinking or am I complicating this ? Looking again at the code, I think the segfault in the debug mode will not occur. My mistake. But it will provide NULL for level-0 elements though. Vijay On Fri, May 28, 2010 at 5:59 PM, Kirk, Benjamin (JSC-EG311) <ben...@na...> wrote: >> I was trying to find if there is a method that can provide the >> reference to the interior element, given a side on the boundary. >> >> I tried using interior_parent but it returns null for a given side. >> Looking at the code, it appears to me that there might be a bug in the >> implementation since for a level-0 element, the higher-dimensional >> interior element is only asserted and never found. So, parent will >> always be null for level-0 calls. This should also trigger a >> segmentation fault in debug mode, although I have not yet tested this. >> >> I might be wrong on this but do let me know if there is any alternate >> way to find the interior element of a side. > > I'll look into the interior_parent() issue, but in my application I > > (1) build a lower dimensional mesh by extracting all the sides on the > boundaries of interest, and then simply call > > (2) interior_elem = boundary_elem->parent() > > Does that work for you? > > |
From: Vijay S. M. <vi...@gm...> - 2010-05-28 23:57:46
|
Ben, I can do it this way but was just trying to avoid using PointLocator if possible, due to the search algorithm involved in finding the right element. Thanks for the suggestion. Vijay On Fri, May 28, 2010 at 6:48 PM, Kirk, Benjamin (JSC-EG311) <ben...@na...> wrote: > What you describe is what I am doing. In my case I have a fluid domain and want to extract different variables on the boundary. So when I extract heat flux, for example, I need the interior element values to compute it. > > -Ben > > > > ----- Original Message ----- > From: Vijay S. Mahadevan <vi...@gm...> > To: Kirk, Benjamin (JSC-EG311) > Cc: lib...@li... <lib...@li...> > Sent: Fri May 28 18:40:22 2010 > Subject: Re: [Libmesh-users] Obtaining interior element of a side. > > I guess that might work but I'm not entirely sure yet. > > To give you some background, I'm doing a conjugate transfer problem > and have defined the fluid variables on a subdomain which is defined > only on the boundary surface. So when iterating over the boundary > mesh, I need access to both the current element (side) and the > interior element so that I can correctly couple the surface > temperature and the fluid temperature. The suggestion you gave will > probably involve querying the interior mesh using PointLocator to get > the correct interior element corresponding to the side. Is this the > methodology you were thinking or am I complicating this ? > > Looking again at the code, I think the segfault in the debug mode will > not occur. My mistake. But it will provide NULL for level-0 elements > though. > > Vijay > > On Fri, May 28, 2010 at 5:59 PM, Kirk, Benjamin (JSC-EG311) > <ben...@na...> wrote: >>> I was trying to find if there is a method that can provide the >>> reference to the interior element, given a side on the boundary. >>> >>> I tried using interior_parent but it returns null for a given side. >>> Looking at the code, it appears to me that there might be a bug in the >>> implementation since for a level-0 element, the higher-dimensional >>> interior element is only asserted and never found. So, parent will >>> always be null for level-0 calls. This should also trigger a >>> segmentation fault in debug mode, although I have not yet tested this. >>> >>> I might be wrong on this but do let me know if there is any alternate >>> way to find the interior element of a side. >> >> I'll look into the interior_parent() issue, but in my application I >> >> (1) build a lower dimensional mesh by extracting all the sides on the >> boundaries of interest, and then simply call >> >> (2) interior_elem = boundary_elem->parent() >> >> Does that work for you? >> >> > |
From: Kirk, B. (JSC-EG311) <ben...@na...> - 2010-05-28 23:59:34
|
> Ben, I can do it this way but was just trying to avoid using > PointLocator if possible, due to the search algorithm involved in > finding the right element. Thanks for the suggestion. Not sure why that is involved? If you extract the boundary mesh the elements on the boundary have their parent set to the higher-dimensional element from whom they came. -Ben |