<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>