def set_elements(self, elabels = None, <EOL>types = None, <EOL>stypes = "<STR_LIT>", <EOL>conn = None, <EOL>esets = {}, <EOL>surfaces = {}, <EOL>materials = "<STR_LIT>",<EOL>**kwargs):
<EOL>if elabels is None:<EOL><INDENT>warnings.warn(<EOL>"<STR_LIT>", <EOL>Warning)<EOL>self.elements = None<EOL><DEDENT>else:   <EOL><INDENT>columns = pd.MultiIndex.from_tuples([("<STR_LIT:type>", "<STR_LIT>", "<STR_LIT>")])<EOL>self.elements = pd.DataFrame(data = types,<EOL>columns = columns,<EOL>index = elabels)<EOL>self.elements.index.name = "<STR_LIT>"<EOL>self.elements.loc[:, ("<STR_LIT:type>", "<STR_LIT>", "<STR_LIT>")] = stypes<EOL>c = pd.DataFrame(conn, index = elabels)<EOL>c.fillna(<NUM_LIT:0>, inplace = True)<EOL>c[:] = c.values.astype(np.int32)<EOL>c.columns = pd.MultiIndex.from_product([["<STR_LIT>"], <EOL>["<STR_LIT>".format(n) for <EOL>n in np.arange(c.shape[<NUM_LIT:1>])], <EOL>["<STR_LIT>"]])<EOL>self.elements = self.elements.join(c)<EOL>for k, v in esets.items(): self.elements[("<STR_LIT>", k, "<STR_LIT>")] = v<EOL>self.elements["<STR_LIT>", "<STR_LIT:all>", "<STR_LIT>"] = True  <EOL>for k, v in surfaces.items():<EOL><INDENT>for fk, vv in v.items():<EOL><INDENT>self.elements[("<STR_LIT>", k, "<STR_LIT>".format(fk))] = vv<EOL><DEDENT><DEDENT>self.elements[("<STR_LIT>", "<STR_LIT>", "<STR_LIT>") ] = materials<EOL>self.elements.sort_index(axis = <NUM_LIT:1>, inplace = True)<EOL><DEDENT>
Sets the element data.

:arg elabels: element labels. Items be strictly positive and int typed 
              in 1D array-like with shape :math:`(N_e)`.
:type elabels: 1D uint typed array-like
:arg types: element types chosen among argiope specific element types. 
:type types: str typed array-like 
:arg stypes: element types chosen in solver (depends on the chosen solver) specific element types. 
:type stypes: str typed array-like 
:arg conn: connectivity table. In order to deal with non rectangular tables, :math:`0` can be used to fill missing data. 
:type conn: uint typed array-like
:arg esets: element sets. Contains boolean array-like of shape :math:`(N_e)`.
:type esets: dict  
:arg surfaces: surfaces. Contains boolean array-like of shape :math:`(N_e, N_s )` with :math:`N_s` being the maximum number of faces on a single element. 
:type surfaces: dict   
:arg materials: material keys. Any number a of materials can be used.
:type materials: str typed array-like