code: def _set_data(self, coors, ngroups, conns, mat_ids, descs, nodal_bcs=None):
          
          self.coors = nm.ascontiguousarray(coors)
  
          if ngroups is None:
              self.ngroups = nm.zeros((self.coors.shape[0],), dtype=nm.int32)
  
          else:
              self.ngroups = nm.ascontiguousarray(ngroups)
  
          self.conns = [nm.asarray(conn, dtype=nm.int32) for conn in conns]
          self.mat_ids = [nm.asarray(mat_id, dtype=nm.int32)
                          for mat_id in mat_ids]
          self.descs = descs
          self.nodal_bcs = get_default(nodal_bcs, {})
docs: Set mesh data.
  
          Parameters
          ----------
          coors : array
              Coordinates of mesh nodes.
          ngroups : array
              Node groups.
          conns : list of arrays
              The array of mesh elements (connectivities) for each element group.
          mat_ids : list of arrays
              The array of material ids for each element group.
          descs: list of strings
              The element type for each element group.
          nodal_bcs : dict of arrays, optional
              The nodes defining regions for boundary conditions referred
              to by the dict keys in problem description files.