Exemple #1
0
Entity & declare_element_side(
  BulkData & mesh ,
  const stk::mesh::EntityId global_side_id ,
  Entity & elem ,
  const unsigned local_side_id ,
  Part * part )
{
  verify_declare_element_side(mesh, elem, local_side_id);

  const CellTopologyData * const elem_top = get_cell_topology_new( elem ).getCellTopologyData();
  
  ThrowErrorMsgIf( elem_top == NULL,
      "Element[" << elem.identifier() << "] has no defined topology");

  const CellTopologyData * const side_top = elem_top->side[ local_side_id ].topology;

  ThrowErrorMsgIf( side_top == NULL,
      "Element[" << elem.identifier() << "], local_side_id = " <<
      local_side_id << ", side has no defined topology" );

  PartVector empty_parts ;

  Entity & side = mesh.declare_entity( side_top->dimension , global_side_id, empty_parts );
  return declare_element_side( elem, side, local_side_id, part);
}
Exemple #2
0
Entity declare_element_side( BulkData & mesh ,
                               Entity elem ,
                               Entity side ,
                               const unsigned local_side_id ,
                               stk::mesh::Part* part)
{
    stk::mesh::PartVector parts;
    if(part!=NULL)
    {
        parts.push_back(part);
    }
    return declare_element_side(mesh, elem, side, local_side_id, parts);
}
Exemple #3
0
Entity declare_element_side(
        BulkData & mesh,
        const stk::mesh::EntityId global_side_id,
        Entity elem,
        const unsigned local_side_id,
        const stk::mesh::PartVector& parts)
{
    verify_declare_element_side(mesh, elem, local_side_id);

    stk::topology elem_top = mesh.bucket(elem).topology();
    stk::topology side_top = elem_top.side_topology(local_side_id);

    PartVector empty_parts;
    Entity side = mesh.get_entity(side_top.rank(), global_side_id);
    if(!mesh.is_valid(side))
    {
        side = mesh.declare_entity(side_top.rank(), global_side_id, empty_parts);
// It seem like declare_element_side should be called even if the side is valid to make sure it is attached to the element.
        declare_element_side(mesh, elem, side, local_side_id, parts);
    }
    return side;
}