docs: def _read_elem_elements(self, fid):
          """Read all FE elements from the file stream. Elements are stored in
          the self.element_data dict. The keys refer to the element types:
  
           *  3: Triangular grid (three nodes)
           *  8: Quadrangular grid (four nodes)
           * 11: Mixed boundary element
           * 12: Neumann (no-flow) boundary element
  
          """
          elements = {}
  
          # read elements
          for element_type in range(0, self.header['nr_element_types']):
              element_list = []
              for element_coordinates in range(
                      0, self.header['element_infos'][element_type, 1]):
                  element_coordinates_line = fid.readline().lstrip()
                  tmp_element = self.element()
                  tmp_element.nodes = np.fromstring(element_coordinates_line,
                                                    dtype=int, sep=' ')
                  tmp_element.xcoords = self.nodes['presort'][tmp_element.nodes -
                                                              1, 1]
                  tmp_element.zcoords = self.nodes['presort'][tmp_element.nodes -
                                                              1, 2]
                  element_list.append(tmp_element)
              element_type_number = self.header['element_infos'][element_type, 0]
              elements[element_type_number] = element_list
          self.element_data = elements