functionspace.bt_masks: 'topological' vs 'geometric'
Dear firedrake, While bringing my code up-to-date with the latest changes in firedrake/PyOP2, I’m trying to understand the changes to functionspace.bt_masks. In the past I just used fs.bt_masks[0] and fs.bt_masks[1] to get the top/bottom boundary nodes of a function space. With commits a2c1add18f00eca24789f209632411f30fffba4b ba340ceb92dc1a156a73eb2ef8e60427a67fa0e7 the tuples seems to have been replaced by a dictionary, i.e. there are now ‘toplogical’ and ‘geometric’ boundary nodes. What’s the difference between the two? In my code, I replaced fs.bt_masks[i] -> fs.bt_masks[’topological'][i], but I want to make sure that I’m doing the right thing. Thanks, Eike
Hello Eike, I don't know how you use them, but here's what topological and geometric mean for boundary conditions: Topological boundary conditions set those degrees of freedom, which topologically lie on the facet (more precisely, on the closure of the facet). Geometric boundary conditions set those DoFs, which don't vanish on the boundary. In the DGn, n >= 1 case they are the DoFs which are geometrically on the boundary, hence the name. A few examples: - For CG, they mean the same thing. - For DG, all nodes are topologically associated with the cell interior, so topological does nothing. Geometric sets the nodes geometrically on the facet, except for DG0, which sets the only node (which happens to be in the cell centre). - For semi-continuous function spaces, they mean different things. For example, for RT, a topological BC sets the normal component on the facet (or the tagential component in case of an H(curl) conforming space, accordingly). Geometric BCs will set many of the nodes to make sure to fix all components of the value on the boundary. (I'm not sure if you want to do that.) I hope this helps. Topological is the only option that was supported on extruded until now, so that must have been the one you were using. Regards, Miklos ________________________________________ From: firedrake-bounces@imperial.ac.uk [firedrake-bounces@imperial.ac.uk] on behalf of Eike Mueller [E.Mueller@bath.ac.uk] Sent: 18 October 2015 11:36 To: firedrake Subject: [firedrake] functionspace.bt_masks: 'topological' vs 'geometric' Dear firedrake, While bringing my code up-to-date with the latest changes in firedrake/PyOP2, I’m trying to understand the changes to functionspace.bt_masks. In the past I just used fs.bt_masks[0] and fs.bt_masks[1] to get the top/bottom boundary nodes of a function space. With commits a2c1add18f00eca24789f209632411f30fffba4b ba340ceb92dc1a156a73eb2ef8e60427a67fa0e7 the tuples seems to have been replaced by a dictionary, i.e. there are now ‘toplogical’ and ‘geometric’ boundary nodes. What’s the difference between the two? In my code, I replaced fs.bt_masks[i] -> fs.bt_masks[’topological'][i], but I want to make sure that I’m doing the right thing. Thanks, Eike _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
Hi Miklos, thanks a lot for the detailled explanation, I’m much more confident that I’m doing the correct thing now. Cheers, Eike
On 18 Oct 2015, at 15:16, Homolya, Miklós <m.homolya14@imperial.ac.uk> wrote:
Hello Eike,
I don't know how you use them, but here's what topological and geometric mean for boundary conditions:
Topological boundary conditions set those degrees of freedom, which topologically lie on the facet (more precisely, on the closure of the facet). Geometric boundary conditions set those DoFs, which don't vanish on the boundary. In the DGn, n >= 1 case they are the DoFs which are geometrically on the boundary, hence the name.
A few examples: - For CG, they mean the same thing. - For DG, all nodes are topologically associated with the cell interior, so topological does nothing. Geometric sets the nodes geometrically on the facet, except for DG0, which sets the only node (which happens to be in the cell centre). - For semi-continuous function spaces, they mean different things. For example, for RT, a topological BC sets the normal component on the facet (or the tagential component in case of an H(curl) conforming space, accordingly). Geometric BCs will set many of the nodes to make sure to fix all components of the value on the boundary. (I'm not sure if you want to do that.)
I hope this helps. Topological is the only option that was supported on extruded until now, so that must have been the one you were using.
Regards, Miklos
________________________________________ From: firedrake-bounces@imperial.ac.uk [firedrake-bounces@imperial.ac.uk] on behalf of Eike Mueller [E.Mueller@bath.ac.uk] Sent: 18 October 2015 11:36 To: firedrake Subject: [firedrake] functionspace.bt_masks: 'topological' vs 'geometric'
Dear firedrake,
While bringing my code up-to-date with the latest changes in firedrake/PyOP2, I’m trying to understand the changes to functionspace.bt_masks. In the past I just used
fs.bt_masks[0] and fs.bt_masks[1] to get the top/bottom boundary nodes of a function space. With commits
a2c1add18f00eca24789f209632411f30fffba4b
ba340ceb92dc1a156a73eb2ef8e60427a67fa0e7
the tuples seems to have been replaced by a dictionary, i.e. there are now ‘toplogical’ and ‘geometric’ boundary nodes. What’s the difference between the two?
In my code, I replaced fs.bt_masks[i] -> fs.bt_masks[’topological'][i], but I want to make sure that I’m doing the right thing.
Thanks,
Eike
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
participants (2)
-
Eike Mueller
-
Homolya, Miklós