<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Dear all,<br>
<br>
We are building out a new finite-element code for wave propagation
and I am currently implementing the boundary conditions. My first
pass will simply have dirichlet boundaries, but eventually we will
have more sophisticated options available.<br>
<br>
I am creating an exodus mesh in Trelis/Cubit, in which I can create
one (or more) "side sets", which are properly read by the exodus
reader. From reading the petsc source (plexexodusii.c), it seems
that these basically create a list of faces, which belong to the
side set.<br>
<br>
A call to DMPlexGetLabelValue(dm,"Face Set",face_id,&value),
allows me to see if "face_id" is on the boundary by checking value
(>=1 for boundary, or -1 for not in set). Additional side sets
get ids = {2,3,etc}. This allows us to have multiple types of
boundary (absorbing, reflecting, etc).<br>
<br>
However, I am unsure how to determine if an element has a particular
face_id in order to determine if one face of the element is on a
boundary (and which value it has {-1,1,2,3, etc}).<br>
<br>
The routine is listed here:<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
PetscErrorCode DMPlexGetLabelValue(DM dm, const char name[],
PetscInt point, PetscInt *value)<br>
<br>
How do I determine the "point" of a face, if I'm iterating through
my elements.<br>
<br>
thanks!<br>
<br>
Max Rietmann <br>
<br>
PS I've also seen the DMPlexAddBoundary method, but I wasn't sure
how to use it in our setting.<br>
</body>
</html>