//**********************************************************************
PHX_EVALUATE_FIELDS(GlobalStatistics,workset)
{ 
  if (workset.num_cells == 0)
    return;

  Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>::integrate(volumes.get_view(),
                                                                         ones.get_view(), 
                                                                         (this->wda(workset).int_rules[ir_index])->weighted_measure.get_view());

  for (index_t cell = 0; cell < workset.num_cells; ++cell)
    total_volume += volumes(cell);

  typename std::vector<PHX::MDField<ScalarT,Cell,IP> >::size_type field_index = 0;
  for (typename std::vector<PHX::MDField<ScalarT,Cell,IP> >::iterator field = field_values.begin();
       field != field_values.end(); ++field,++field_index) {
    
    Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>::integrate(tmp.get_view(),
                                                                           field->get_view(), 
                                                                           (this->wda(workset).int_rules[ir_index])->weighted_measure.get_view());
    
    for (index_t cell = 0; cell < workset.num_cells; ++cell) {
      averages[field_index] += tmp(cell);

      for (typename PHX::MDField<ScalarT,Cell,IP>::size_type ip = 0; ip < (field->dimension(1)); ++ip) {
        maxs[field_index] = std::max( (*field)(cell,ip), maxs[field_index]);
        mins[field_index] = std::min( (*field)(cell,ip), mins[field_index]);
      }
    }
    
  }
}