def process(self, collect_dynamic = False, order = <NUM_LIT>):
<EOL>self._som.train(self._data, <NUM_LIT:100>);<EOL>weights = list();<EOL>self._som_osc_table.clear();        <EOL>for i in range(self._som.size):<EOL><INDENT>if (self._som.awards[i] > <NUM_LIT:0>):<EOL><INDENT>weights.append(self._som.weights[i]);<EOL>self._som_osc_table.append(i);<EOL><DEDENT><DEDENT>self._sync = self.__create_sync_layer(weights);<EOL>self._analyser = self._sync.process(order, collect_dynamic = collect_dynamic);<EOL>return (self._analyser.time, self._analyser.output)<EOL>
!
        @brief Performs simulation of the oscillatory network.

        @param[in] collect_dynamic (bool): If True - returns whole dynamic of oscillatory network, otherwise returns only last values of dynamics.
        @param[in] order (double): Order of process synchronization that should be considered as end of clustering, destributed 0..1.

        @return (tuple) Dynamic of oscillatory network. If argument 'collect_dynamic' = True, than return dynamic for the whole simulation time,
                otherwise returns only last values (last step of simulation) of dynamic.

        @see get_som_clusters()
        @see get_clusters()