## Re: [Libmesh-users] Solve on 2D side of 3D domain

 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Derek Gaston - 2014-03-27 22:56:29 ```In my case they need to be coupled to variables defined on the interior as well as variables defined on the manifold. Here's the set up: 1. build_cube() 2. "u" defined on the whole cube 3. "v" defined only on boundary 1 u will have a boundary condition on boundary 1 that needs access to v. v will have "surface integrals" defined on the manifold that is boundary 1 that will need values of u. Derek On Thu, Mar 27, 2014 at 4:51 PM, Kirk, Benjamin (JSC-EG311) < benjamin.kirk@...> wrote: > If find_neighbors is called, and also importantly the DofMap is updated to > find vol/surface coupling (not just vol/vol through a face) I think that'd > be close. > > > On Mar 27, 2014, at 5:43 PM, "Derek Gaston" wrote: > > > > What do you think about THAT plan? > ```

 [Libmesh-users] Solve on 2D side of 3D domain From: Derek Gaston - 2014-03-27 22:06:17 ```I need to do a solve for a different set of variables on the side of a 3D domain. Meaning that I need a variable that only exists on the side of a 3D domain (boundary restricted variable?). Also - I still need the outward facing normal (this "side" is going to be highly irregular). Any ideas here? For now - I'm just going to let the field be zero everywhere else in the domain (since we can't do boundary restricted variables). Is this the place to use BoundaryMesh? Can you get the normals for the elements when you're on a BoundaryMesh? Any guidance would be helpful... Derek ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Roy Stogner - 2014-03-27 22:16:51 ```On Thu, 27 Mar 2014, Derek Gaston wrote: > Is this the place to use BoundaryMesh? That's what we do, yeah. > Can you get the normals for the elements when you're on a > BoundaryMesh? Not directly, but you can get_dxyzdxi()/get_dxyzdeta(), and take the cross product of those two for the normal. You could alternatively get the interior_parent() of the boundary element and get the normals from that. --- Roy ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Derek Gaston - 2014-03-27 22:35:46 ```How about restricting the variable to the boundary - is there any path forward on that? Derek On Thu, Mar 27, 2014 at 4:16 PM, Roy Stogner wrote: > > On Thu, 27 Mar 2014, Derek Gaston wrote: > > Is this the place to use BoundaryMesh? >> > > That's what we do, yeah. > > > Can you get the normals for the elements when you're on a >> BoundaryMesh? >> > > Not directly, but you can get_dxyzdxi()/get_dxyzdeta(), and take the > cross product of those two for the normal. You could alternatively > get the interior_parent() of the boundary element and get the normals > from that. > --- > Roy > ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Kirk, Benjamin (JSC-EG311) - 2014-03-27 22:48:40 ```Hmm, probably not too different from the subdomain restricted codepath, but what do they need to couple to? The other elements on the manifold only, or also the volume elements? A challenge is when you have a side it doesn't know it's neighbors, complicating the sparsity graph. -Ben > On Marnt 27, 2014, at 5:35 PM, "Derek Gaston" wrote: > > How about restricting the variable to the boundary - is there any path > forward on that? > > Derek > > > On Thu, Mar 27, 2014 at 4:16 PM, Roy Stogner wrote: > >> >> On Thu, 27 Mar 2014, Derek Gaston wrote: >> >> Is this the place to use BoundaryMesh? >> >> That's what we do, yeah. >> >> >> Can you get the normals for the elements when you're on a >>> BoundaryMesh? >> >> Not directly, but you can get_dxyzdxi()/get_dxyzdeta(), and take the >> cross product of those two for the normal. You could alternatively >> get the interior_parent() of the boundary element and get the normals >> from that. >> --- >> Roy > ------------------------------------------------------------------------------ > _______________________________________________ > Libmesh-users mailing list > Libmesh-users@... > https://lists.sourceforge.net/lists/listinfo/libmesh-users ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Kirk, Benjamin (JSC-EG311) - 2014-03-27 22:36:49 ```Roy's right, we do this to post process surface data for fluids computations. These values don't need to be coupled to the interior field, or do they? We just usually solve a projection. > On Mar 27, 2014, at 5:16 PM, "Roy Stogner" wrote: > > >> On Thu, 27 Mar 2014, Derek Gaston wrote: >> >> Is this the place to use BoundaryMesh? > > That's what we do, yeah. > >> Can you get the normals for the elements when you're on a >> BoundaryMesh? > > Not directly, but you can get_dxyzdxi()/get_dxyzdeta(), and take the > cross product of those two for the normal. You could alternatively > get the interior_parent() of the boundary element and get the normals > from that. > --- > Roy > > ------------------------------------------------------------------------------ > _______________________________________________ > Libmesh-users mailing list > Libmesh-users@... > https://lists.sourceforge.net/lists/listinfo/libmesh-users ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Derek Gaston - 2014-03-27 22:43:18 ```Yeah - they're fully coupled to interior variables. I can do it with a sub-solve and a projection... but I would rather not. Now that I think about it - BoundaryMesh won't work because it creates a separate Mesh... meaning a separate EquationSystems. What I really need is more like if you ran over the surface and used elem.build_side(side, false) on every element on the surface... and then keep those elements in a vector and compute residuals on them as if they were real geometry.... What do you think about THAT plan? Derek On Thu, Mar 27, 2014 at 4:36 PM, Kirk, Benjamin (JSC-EG311) < benjamin.kirk@...> wrote: > Roy's right, we do this to post process surface data for fluids > computations. These values don't need to be coupled to the interior field, > or do they? We just usually solve a projection. > > > On Mar 27, 2014, at 5:16 PM, "Roy Stogner" > wrote: > > > > > >> On Thu, 27 Mar 2014, Derek Gaston wrote: > >> > >> Is this the place to use BoundaryMesh? > > > > That's what we do, yeah. > > > >> Can you get the normals for the elements when you're on a > >> BoundaryMesh? > > > > Not directly, but you can get_dxyzdxi()/get_dxyzdeta(), and take the > > cross product of those two for the normal. You could alternatively > > get the interior_parent() of the boundary element and get the normals > > from that. > > --- > > Roy > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Libmesh-users mailing list > > Libmesh-users@... > > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Kirk, Benjamin (JSC-EG311) - 2014-03-27 22:51:50 ```If find_neighbors is called, and also importantly the DofMap is updated to find vol/surface coupling (not just vol/vol through a face) I think that'd be close. > On Mar 27, 2014, at 5:43 PM, "Derek Gaston" wrote: > > What do you think about THAT plan? ```
 Re: [Libmesh-users] Solve on 2D side of 3D domain From: Derek Gaston - 2014-03-27 22:56:29 ```In my case they need to be coupled to variables defined on the interior as well as variables defined on the manifold. Here's the set up: 1. build_cube() 2. "u" defined on the whole cube 3. "v" defined only on boundary 1 u will have a boundary condition on boundary 1 that needs access to v. v will have "surface integrals" defined on the manifold that is boundary 1 that will need values of u. Derek On Thu, Mar 27, 2014 at 4:51 PM, Kirk, Benjamin (JSC-EG311) < benjamin.kirk@...> wrote: > If find_neighbors is called, and also importantly the DofMap is updated to > find vol/surface coupling (not just vol/vol through a face) I think that'd > be close. > > > On Mar 27, 2014, at 5:43 PM, "Derek Gaston" wrote: > > > > What do you think about THAT plan? > ```