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

    Intrepid::FunctionSpaceTools::integrate<ScalarT>(volumes, ones,
            (this->wda(workset).int_rules[ir_index])->weighted_measure,
            Intrepid::COMP_BLAS);

    for (std::size_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) {

        Intrepid::FunctionSpaceTools::integrate<ScalarT>(tmp, *field,
                (this->wda(workset).int_rules[ir_index])->weighted_measure,
                Intrepid::COMP_BLAS);

        for (std::size_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]);
            }
        }

    }
}