typename boost::enable_if< md::neighbor::meta::is_simple_neighbor< typename DataSequence::value_type >, void>::type update( DataSequence& data, Length& buffer_length, Length const cutoff_length, Length const search_length, SquaredLength const squared_search_length, Particles const& particles, Time const time_step) { data.clear(); md::neighbor::inexclusive_cells_neighbor_list_detail::update_impl( data, squared_search_length, particles ); buffer_length = md::neighbor::inexclusive_cells_neighbor_list_detail ::get_buffer_length( cutoff_length, search_length, particles, time_step ); }
typename boost::enable_if< boost::mpl::and_< typename boost::mpl::not_< typename md::neighbor::meta::is_simple_neighbor< typename DataSequence::value_type >::type >::type, typename MD_IS_CONVERTIBLE< typename std::iterator_traits< typename DataSequence::iterator >::iterator_category, std::random_access_iterator_tag >::type >, void>::type update( DataSequence& data, Length& buffer_length, Length const cutoff_length, Length const search_length, SquaredLength const squared_search_length, Particles1 const& particles1, Particles2 const& particles2, Time const time_step) { DataSequence const old_data(data); data.clear(); md::neighbor::inexclusive_cells_neighbor_list_detail::update_impl( data, squared_search_length, particles1, particles2 ); md::neighbor::inexclusive_cells_neighbor_list_detail::modify_data( data, old_data ); buffer_length = md::neighbor::inexclusive_cells_neighbor_list_detail ::get_buffer_length( cutoff_length, search_length, particles1, particles2, time_step ); }