Removed a clause from the inner termination loop of NonGradient.cpp.

-   while( rtol >= ftol && !( term_crit->terminate() ) )

 became

+   while( !( term_crit->terminate() ) )
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Prevous ETI macro PLGN wasn't working for all use cases
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
MueLu: removed old refactoring scripts
MueLu: added construction of the filtered matrix

This new factory takes "A" and "Graph" as input, and reconstructs the
filtered matrix. The idea is to decrease complexity of the operator,
arising from the increased number of aggregates after filtering in the
CoalescedDrop.
Drawbacks:
 * The drawback is that we need an extra fillComplete.
 * We need extra run of PowerMethod

Not fully tested yet.
Panzer: fixing broken basistobasis unit test for stokhos data types
MueLu: minor. explicitely use std::string as input for Teuchos::ParameterEntry
MueLu: temporarely fix nightly test to calm the buildbot(s)

For some strange reason on coarser levels the Teuchos::broadcast call in Xpetra_EpetraMap.cpp
(line 165) gives wrong results (27026 instead of 0). The input rootIB=indexBase=0 seems
to be correct on ALL processors.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
removed rtol and ftol variables and getTolerance() and setTolerance methods.
Fixing nnz estimate for matrix matrix addtion.

During a code review with Andrey, we noticed that the nnz estimate for
the result of a matrix matrix add was hardwired to 5.  There was a comment
that this was wrong -- which is absolutely true.

TwoMatrixAdd now has an additional boolean parameter that can be set to true
if the caller knows the first matrix has a fixed nnz per row.

I've also added some logic that does the following for C = A+B.  The point is
to create C with static profiling, which is faster and more efficient
than dynamic profiling.

1) If either A or B has at most one nonzero per row, or the caller has indicated
   that A is has a fixed nnz per row, then we know the nonzeros
   per row in C within +-nnzPerRow(A), so C is created with static profiling.

   This is the case for Ptent + Dinv*A*Ptent when Ptent is based on a nullspace

2) Otherwise, an estimate E is created for a fixed nnz per row  in C.
   If E > maxNnzInAnyRow(A) + maxNnzInAnyRow(B), then C can be created
   with static profiling.  Otherwise C is created with dynamic profiling.

I've tested this with 2D Poisson and Elasticity, and it seems to do the right thing.

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=83,notpassed=0 (10.59 min)
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Adding barrier and new timer.

I suspect that reading the XML deck is causing the strange times on Hopper.
All cores hitting the file system at the same time can't be good.

For now, I time this file reading separately, and put a barrier after it to separate
its effects from the Hierarchy setup.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos

Build/Test Cases Summary
Enabled Packages: Tpetra
Disabled Packages: ML,MueLu,FEI
Enabled all Forward Packages
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=544,notpassed=0 (2.66 min)
Other local commits for this build/test group: 0172213, a4bacd0, c7f5fdc
Updated the backlog of CMake/CTest/CDash issues the remain.

I deleted a lot of items that I know are fixed (which is great) and there are
some more that might be fixed but I would have to check.

I deleted the "Done" section since I don't see future value in keeping this.
Git knows the prior versions of this file in case someone wants to see it.
Tpetra: CrsGraph: Added comments to aid future optimizations.

Build/Test Cases Summary
Enabled Packages: Teuchos, Kokkos, Tpetra, Ifpack2, Belos, Xpetra, MueLu, TrilinosCouplings, Intrepid, Pamgen, Epetra
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=470,notpassed=0 (25.26 min)
3) SERIAL_RELEASE_SS => passed: passed=501,notpassed=0 (11.52 min)
4) MPI_RELEASE_SS => passed: passed=470,notpassed=0 (14.45 min)
Adding per-level timing to Hierarchy::Iterate().

This gives finer granularity to the solve.  Here's an example of the timing:

MueLu: Hierarchy: Iterate (level=0)                                                           0.1421 (26)
MueLu: Hierarchy: Iterate (level=1)                                                           0.04173 (26)
MueLu: Hierarchy: Iterate (level=2)                                                           0.03987 (13)
-------------------------------------------------------------------------------------------------------------------------
MueLu: Hierarchy: Iterate (total)                                                             0.225 (13)

The intermediates timers show 2x the calls of the fine and coarsest because they're stopped and restarted
upon recursive calls to Iterate.

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=83,notpassed=0 (9.29 min)
Kokkos,Tpetra: MultiVector: elementWiseMultiply now overwrites NaNs.

Deaglan Halligan (Purdue) found that Tpetra::MultiVector's
elementWiseMultiply() method was allowing NaN values to persist in the
left-hand side of the expression, even when its coefficient is zero.
This does not match the semantics of other MultiVector methods, such
as update() (both variants) and multiply().

This commit fixes Tpetra::MultiVector::elementWiseMultiply to have
overwrite semantics, so that if the coefficient of *this is zero,
the method overwrites the entries of *this, even if some of them are
NaN.  It also documents the overwrite semantics of Kokkos' GEMM() and
Tpetra's multiply().

Build/Test Cases Summary
Enabled Packages: Teuchos, Kokkos, Tpetra, Ifpack2, Belos, 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=286,notpassed=0 (12.29 min)
3) SERIAL_RELEASE_SS => passed: passed=267,notpassed=0 (11.72 min)
4) MPI_RELEASE_SS => passed: passed=286,notpassed=0 (15.45 min)