Trilinos: more tweaks to scripts for eleanor

argh
Ifpack2: Chebyshev: Added caching of offsets of diagonal entries.

Now, if the conditions listed below are met, Chebyshev will cache
offsets of the diagonal entries of the input sparse matrix.  Caching
diagonal offsets speeds up extracting the diagonal's values, when the
structure of the matrix doesn't change between but its values do.

1. The user did not provide a Tpetra::Vector of inverse diagonal
   entries through the input ParameterList (the "chebyshev: operator
   inv diagonal" parameter).

2. The user did not set the "chebyshev: assume matrix does not change"
   Boolean parameter to true.  (Setting this parameter makes caching
   offsets of diagonal entries unnecessary, as compute() then only
   needs to extract the diagonal once.  It is faster and takes less
   memory not to cache diagonal offsets in that case.)

3. The matrix is a Tpetra::CrsMatrix with default fifth template
   parameter.  (We do a dynamic cast on the input Tpetra::RowMatrix to
   figure this out.)

4. The matrix has a constant graph (isStaticGraph() = true).  In that
   case, we assume that the user intends to fix the graph structure of
   the matrix, but change its values before future compute() calls.

All of these conditions but #2 match those of Ifpack2::Relaxation,
which also caches diagonal offsets.

This optimization should help speed up MueLu setup in case MueLu
reuses the structure of the matrices at various levels, but not their
values.  This is not currently a common case, due to how MueLu does
aggregation.  However, it should at least speed up MueLu setup for the
finest (original) level, in the common case of constant structure and
changing values in the matrix.  It will also speed up use of Chebyshev
as a general preconditioner or iterative solver.

Build/Test Cases Summary
Enabled Packages: Tpetra, Belos, Ifpack2, Xpetra, MueLu
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_SS => passed: passed=172,notpassed=0 (8.49 min)
3) SERIAL_RELEASE_SS => passed: passed=156,notpassed=0 (6.02 min)
4) MPI_RELEASE_SS => passed: passed=172,notpassed=0 (9.66 min)
Zoltan2 MJ: migration code + check + reduceAll Count decision + nonrectelinear partitiong
Merge branch 'master' of software:/space/git/Trilinos
Zoltan2: MJ compilation error fix.
Tpetra: DistObject,MultiVector: Added new method to report #packets/LID.

I added the protected method constantNumberOfPackets() to DistObject.
It is meant to be called only by DistObject's doTransfer() method.  If
a subclass' implementation returns nonzero, then the instance of that
subclass promises that for the duration of the doTransfer() call, the
number of packets is the same for all LIDs, and that the return value
is this number of packets per LID.

The method has a default implementation that returns zero.  An
implementation could return zero, but still have a constant number of
packets per LID.  The default implementation preserves the current
behavior of doTransfer().  If a nondefault implementation returns
nonzero, doTransfer() will use this information to avoid unnecessary
allocation and / or resizing of arrays.

MultiVector implements this method to return the number of columns in
the MultiVector instance.  This means that doTransfer() need not
allocate or resize DistObject's num{Ex,Im}portPacketsPerLID_ arrays
for a MultiVector.  This, along with a check for correct size of the
arrays in MultiVector's packAndPrepare() implementation, means that an
Import or Export of a MultiVector should only need to allocate buffers
once per instance, even for repeated Import or Export operations.

Build/Test Cases Summary
Enabled Packages: Tpetra, Belos, Ifpack2, Xpetra, MueLu
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_SS => passed: passed=172,notpassed=0 (5.89 min)
3) SERIAL_RELEASE_SS => passed: passed=156,notpassed=0 (1.83 min)
4) MPI_RELEASE_SS => passed: passed=172,notpassed=0 (15.67 min)
KokkosArray: fix build errors when compiling usecases without cuda
Fixed warnings
Merge branch 'master' of software:/space/git/Trilinos
Removed dir which is auto-genned when we run configureTrilinos
Resurrect a file in the SIERRA directory

The current configure logic always updates the Trilinos_version.h file for
Sierra and the recent removal of that dir will make it so any configure will be
adding a new file potentially causing the checkin test script to complain of
modified files that aren't committed. This just readds the files that are
configured every time in the SIERRA directory.

at some point in the near future the version file in SIERRA should only be
updated when doing a configure for Sierra, but this is a decent workaround for
the short term.
MueLu: complation fixes for 'long long'
MueLu: Zoltan2Interface: fixed missing var definition
Epetra: Add support for MM and SM functions in MKL.

If MKL TPL is enabled, Epetra_ENABLE_MKL_SPARSE is defined, and
Epetra_DISABLE_MKL_SPARSE_MM is not defined, then use MKL's
MM and SM functions to do matrix-multivector multiplication
and solves.
MueLu: minor

Changed message from amalgamated to thresholded, cause that's what it is.
Fixed compiler warning.
MueLu: Updating writing utilities.

Added utility to write map to file.  Should work for E/Tpetra.
Added options to CoordinatesTransferFactory to write coordinates to file:

    <Parameter name="write start"                         type="int" value="1"/>
    <Parameter name="write end"                           type="int" value="2"/>

For each level in this range, the coordinate vector and its map is written to file.

Build/Test Cases Summary
Enabled Packages: MueLu
Disabled Packages: MOOCHO
Enabled all Forward Packages
0) MPI_DEBUG => Skipped configure, build, test due to no enabled packages! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Skipped configure, build, test due to no enabled packages! => Does not affect push readiness! (-1.00 min)
2) MPI_SS_DEBUG => passed: passed=86,notpassed=0 (12.06 min)
Other local commits for this build/test group: d62dcc3
Tpetra: Added merge2 methods to Tpetra_Util.hpp.

Two of the Matrix Market tests were using a utility method called
merge2, which merges a sequence of values using their indices.  The
tests included a unit test for merge2.  merge2 looks useful enough to
belong in Tpetra's utilities, so I moved it there and separated out
its unit test.  The unit test passes.

There are two versions of merge2.  The first combines values by adding
them, and the second combines them with a user-provided binary
function.

Build/Test Cases Summary
Enabled Packages: Tpetra, Belos, Ifpack2, Xpetra, MueLu
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_SS => passed: passed=172,notpassed=0 (4.54 min)
3) SERIAL_RELEASE_SS => passed: passed=157,notpassed=0 (0.47 min)
4) MPI_RELEASE_SS => passed: passed=172,notpassed=0 (3.04 min)
MueLu: minor cleanup
Added ostream include.  This is necessary for proper compilation of
the tpetra branch of the Albany code.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos