Trilinos issueshttps://gitlab.osti.gov/jmwille/Trilinos/-/issues2018-10-10T05:23:13Zhttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/2692PyTrilinos: build fails when Epetra, NOX enabled, but not Ifpack2018-10-10T05:23:13ZJames WillenbringPyTrilinos: build fails when Epetra, NOX enabled, but not Ifpack*Created by: wfspotz*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that an...*Created by: wfspotz*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/pytrilinos
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Expectations
<!---
Tell us what you think should happen, how you think things should work, what
you would like to see in the documentation, etc.
-->
When PyTrilinos, Epetra, and NOX are enabled, but Ifpack is not, PyTrilinos should build without error. The `NOX.Epetra` module should NOT be enabled, consistent with NOX.
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
The build fails because NOX does not enable `NOX::Epetra`, but PyTrilinos tries to wrap these interfaces.
## Motivation and Context
<!---
How has this expectation failure affected you? What are you trying to
accomplish? Why do we need to address this? What does it have to do with
anything? Providing context helps us come up with a solution that is most
useful in the real world.
-->
A user tried to build with this combination and ran into the failed build. PyTrilinos should be checking the `NOX_ENABLE_ABSTRACT_IMPLEMENTATION_EPETRA` Cmake variable.
## Definition of Done
<!---
Tell us what needs to happen. If necessary, give us a task list along the
lines of:
- [ ] First do this.
- [ ] Then do that.
- [ ] Also this other thing.
-->
- [x] Rework the PyTrilinos configuration logic to check `NOX_ENABLE_ABSTRACT_IMPLEMENTATION_EPETRA`
- [x] Test that the above-mentioned combination of packages builds cleanly
- [x] Test that the `NOX.Epetra` module is not enabled
- [x] Test that enabled PyTrilinos tests pass
- [x] Test that when proper packages ARE enabled, that `NOX.Epetra` does get enabled and that tests pass
N.B. Both AztecOO and Amesos have to be enabled for the last step to work.
<!--- ## Possible Solution
Not obligatory, but suggest a fix for the bug or documentation, or suggest
ideas on how to implement the addition or change.
-->
## Steps to Reproduce
<!---
Provide a link to a live example, or an unambiguous set of steps to reproduce
this issue. Include code to reproduce, if relevant.
-->
1. Write a cmake script that disables all packages except PyTrilinos, Epetra, and NOX
1. Verify build failure
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/401Epetra_IntSerialDense_test_MPI_1 Fails on POWER8 using GCC 5.3.0 (OpenMP/Seri...2016-07-20T14:50:44ZJames WillenbringEpetra_IntSerialDense_test_MPI_1 Fails on POWER8 using GCC 5.3.0 (OpenMP/Serial Backend Only, No CUDA)*Created by: nmhamster*
```
$ ctest -V -R Epetra_IntSerialDense_test_MPI_1
UpdateCTestConfiguration from :/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/DartConfiguration.tcl
Parse Config file:/home/sdhammo/git/trilino...*Created by: nmhamster*
```
$ ctest -V -R Epetra_IntSerialDense_test_MPI_1
UpdateCTestConfiguration from :/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/DartConfiguration.tcl
Parse Config file:/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/DartConfiguration.tcl
Add coverage exclude regular expressions.
SetCTestConfiguration:CMakeCommand:/home/projects/pwr8-rhel72/cmake/3.4.3/bin/cmake
UpdateCTestConfiguration from :/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/DartConfiguration.tcl
Parse Config file:/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/DartConfiguration.tcl
Test project /home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 145
Start 145: Epetra_IntSerialDense_test_MPI_1
145: Test command: /home/projects/pwr8-rhel72/openmpi/1.10.2/gcc/5.3.0/cuda/8.0.21/bin/mpiexec "-np" "1" "/home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe" "-v"
145: Test timeout computed to be: 1500
145: Epetra in Trilinos 12.7 (Dev)
145:
145:
145: ==================================================================
145: Testing vector error-reporting.
145: Expect error messages if EPETRA_NO_ERROR_REPORTS is not defined.
145: ==================================================================
145: Checking Epetra_IntSerialDenseVector(-1)Checked OK.
145:
145: Checking Epetra_IntSerialDenseVector(Copy, int*, -3)Checked OK.
145:
145: Checking Epetra_IntSerialDenseVector(Copy, 0, 5)Checked OK.
145:
145: Checking Size(-2)
145: Checked OK.
145:
145: Checking Resize(-4)
145: Checked OK.
145: [white20:80587] *** Process received signal ***
145: [white20:80587] Signal: Segmentation fault (11)
145: [white20:80587] Signal code: Address not mapped (1)
145: [white20:80587] Failing at address: 0x40
145: [white20:80587] [ 0] [0x3fff814f0478]
145: [white20:80587] [ 1] /home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(_Z16vectorExceptionsbb+0x764)[0x1006c604]
145: [white20:80587] [ 2] /home/sdhammo/git/trilinos-github-repo/build-power8-gcc-no-cuda/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(main+0x94)[0x100674f4]
145: [white20:80587] [ 3] /lib64/power8/libc.so.6(+0x24580)[0x3fff80b74580]
145: [white20:80587] [ 4] /lib64/power8/libc.so.6(__libc_start_main+0xc4)[0x3fff80b74774]
145: [white20:80587] *** End of error message ***
145: --------------------------------------------------------------------------
145: mpiexec noticed that process rank 0 with PID 80587 on node white20 exited on signal 11 (Segmentation fault).
145: --------------------------------------------------------------------------
1/1 Test #145: Epetra_IntSerialDense_test_MPI_1 ...***Failed 1.06 sec
0% tests passed, 1 tests failed out of 1
Label Time Summary:
Epetra = 1.06 sec (1 test)
Total Test time (real) = 1.52 sec
The following tests FAILED:
145 - Epetra_IntSerialDense_test_MPI_1 (Failed)
Errors while running CTest
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/9Epetra, MOOCHO: ../thyra/doc/Doxyfile not found2016-03-03T17:49:55ZJames WillenbringEpetra, MOOCHO: ../thyra/doc/Doxyfile not found*Created by: nschloe*
Both Epetra and MOOCHO documentations refer to a nonexisting `../thyra/doc/Doxyfile`:
```
$ grep "../thyra/doc/Doxyfile" * -r
packages/epetra/doc/build_docs:doxygen ../thyra/doc/Doxyfile
packages/moocho/doc/build_...*Created by: nschloe*
Both Epetra and MOOCHO documentations refer to a nonexisting `../thyra/doc/Doxyfile`:
```
$ grep "../thyra/doc/Doxyfile" * -r
packages/epetra/doc/build_docs:doxygen ../thyra/doc/Doxyfile
packages/moocho/doc/build_docs_guts:doxygen ../thyra/doc/Doxyfile
```
Perhaps some `../` missing?
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/79importAndFillComplete (and analogous Epetra constructor) for CrsGraph2018-02-21T01:03:07ZJames WillenbringimportAndFillComplete (and analogous Epetra constructor) for CrsGraph*Created by: kddevin*
@trilinos/tpetra
Chris Siefert directed my attention to the new importAndFillComplete utility in Tpetra::CrsMatrix, and an analogous constructor for Epetra_CrsMatrix.
It would be nice (but not urgent) to have ana...*Created by: kddevin*
@trilinos/tpetra
Chris Siefert directed my attention to the new importAndFillComplete utility in Tpetra::CrsMatrix, and an analogous constructor for Epetra_CrsMatrix.
It would be nice (but not urgent) to have analogous capability for CrsGraph.
Tpetra-backloghttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/132Tpetra: Port Andrey's getLocalRowView benchmark from MueLu to Tpetra2016-02-05T14:29:36ZJames WillenbringTpetra: Port Andrey's getLocalRowView benchmark from MueLu to Tpetra*Created by: mhoemmen*
@trilinos/tpetra
@aprokop wrote a benchmark in MueLu that compares performance of getting local row views with Xpetra::CrsMatrix, Epetra_CrsMatrix, Tpetra::CrsMatrix, and KokkosSparse::CrsMatrix. See Issue #118 ...*Created by: mhoemmen*
@trilinos/tpetra
@aprokop wrote a benchmark in MueLu that compares performance of getting local row views with Xpetra::CrsMatrix, Epetra_CrsMatrix, Tpetra::CrsMatrix, and KokkosSparse::CrsMatrix. See Issue #118 for discussion. The problem is that the benchmark lives in MueLu, and requires enabling experimental build options which are off by default (see Issue #128, now closed, thanks Andrey!). This motivates me to port the benchmark to Tpetra. The main point of the benchmark will be to compare Tpetra vs. Epetra vs. "raw" Kokkos performance, so I will leave Xpetra out.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/248Epetra: Add equivalent of Tpetra::Distributor::createFromSendsAndRecvs to Epe...2016-11-02T20:56:23ZJames WillenbringEpetra: Add equivalent of Tpetra::Distributor::createFromSendsAndRecvs to Epetra's Distributor*Created by: mhoemmen*
@trilinos/tpetra
@csiefer2
This corresponds to the MPI 3 sparse all-to-all constructor as well.
*Created by: mhoemmen*
@trilinos/tpetra
@csiefer2
This corresponds to the MPI 3 sparse all-to-all constructor as well.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/256Epetra_IntSerialDense_test_MPI_1 Test Failure on POWER8 GCC+CUDA7.5 Build2016-04-01T00:02:13ZJames WillenbringEpetra_IntSerialDense_test_MPI_1 Test Failure on POWER8 GCC+CUDA7.5 Build*Created by: nmhamster*
I am continuing to work through the configuration, build and test of Trilinos on POWER8. When using GCC 4.9 with CUDA 7.5 on the `white` Sandia machine I get the following failure in the `Epetra_IntSerialDense_te...*Created by: nmhamster*
I am continuing to work through the configuration, build and test of Trilinos on POWER8. When using GCC 4.9 with CUDA 7.5 on the `white` Sandia machine I get the following failure in the `Epetra_IntSerialDense_test_MPI_1` test.
```
$ ctest -VV -R Epetra_IntSerialDense_test_MPI_1
UpdateCTestConfiguration from :/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Parse Config file:/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Add coverage exclude regular expressions.
SetCTestConfiguration:CMakeCommand:/home/projects/pwr8-rhel72/cmake/3.4.3/bin/cmake
UpdateCTestConfiguration from :/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Parse Config file:/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Test project /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 146
Start 146: Epetra_IntSerialDense_test_MPI_1
146: Test command: /ascldap/users/projects/pwr8-rhel72/openmpi/1.10.2/gcc/4.9.2/cuda/7.5.7/bin/mpiexec "-np" "1" "/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe" "-v"
146: Test timeout computed to be: 1500
146: Epetra in Trilinos 12.7 (Dev)
146:
146:
146: ==================================================================
146: Testing vector error-reporting.
146: Expect error messages if EPETRA_NO_ERROR_REPORTS is not defined.
146: ==================================================================
146: Checking Epetra_IntSerialDenseVector(-1)Checked OK.
146:
146: Checking Epetra_IntSerialDenseVector(Copy, int*, -3)Checked OK.
146:
146: Checking Epetra_IntSerialDenseVector(Copy, 0, 5)Checked OK.
146:
146: Checking Size(-2)
146: Checked OK.
146:
146: Checking Resize(-4)
146: Checked OK.
146: [white26:48861] *** Process received signal ***
146: [white26:48861] Signal: Segmentation fault (11)
146: [white26:48861] Signal code: Address not mapped (1)
146: [white26:48861] Failing at address: (nil)
146: [white26:48861] [ 0] [0x3fff8e9d0478]
146: [white26:48861] [ 1] /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(_Z16vectorExceptionsbb+0x9b8)[0x10073158]
146: [white26:48861] [ 2] /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(main+0x90)[0x1006b9d0]
146: [white26:48861] [ 3] /lib64/power8/libc.so.6(+0x24580)[0x3fff855c4580]
146: [white26:48861] [ 4] /lib64/power8/libc.so.6(__libc_start_main+0xc4)[0x3fff855c4774]
146: [white26:48861] *** End of error message ***
146: --------------------------------------------------------------------------
146: mpiexec noticed that process rank 0 with PID 48861 on node white26 exited on signal 11 (Segmentation fault).
146: --------------------------------------------------------------------------
1/1 Test #146: Epetra_IntSerialDense_test_MPI_1 ...***Failed 11.07 sec
0% tests passed, 1 tests failed out of 1
Label Time Summary:
Epetra = 11.07 sec (1 test)
Total Test time (real) = 11.52 sec
The following tests FAILED:
146 - Epetra_IntSerialDense_test_MPI_1 (Failed)
Errors while running CTest
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/320Shylu Core not compiling with Cuda enabled2016-04-29T19:40:27ZJames WillenbringShylu Core not compiling with Cuda enabled*Created by: crtrott*
The following set of errors occur when compiling Shylu with Cuda enabled:
```
[ 37%] Building CXX object packages/shylu/core/src/CMakeFiles/shylu.dir/epetra/shylu_local_schur_operator.cpp.o
/home/crtrott/Trilinos...*Created by: crtrott*
The following set of errors occur when compiling Shylu with Cuda enabled:
```
[ 37%] Building CXX object packages/shylu/core/src/CMakeFiles/shylu.dir/epetra/shylu_local_schur_operator.cpp.o
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(572): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(float)"
function "std::isinf(float)"
argument types are: (const float)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(578): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(float)"
function "std::isnan(float)"
argument types are: (const float)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(842): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(double)"
function "std::isinf(double)"
argument types are: (const double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(848): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(double)"
function "std::isnan(double)"
argument types are: (const double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(978): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(long double)"
function "std::isinf(long double)"
argument types are: (const long double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(984): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(long double)"
function "std::isnan(long double)"
argument types are: (const long double)
```
Typically this type of error comes from including both <math.h> and <cmath>, with the latter being the proper C++ include, while the former actually includes the C header file. Most compilers seem to have ways around including both files, but when dealing with nvcc you have two compilers and including both of those math headers often fails. Doing a very cursory search on where those includes might come from it looks like it is from Epetra:
```
$ grep "cmath" ~/Trilinos/packages/epetra/src/*
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <cmath>
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <cmath>
$ grep "math.h" ~/Trilinos/packages/epetra/src/*
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <math.h>
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/431Interfacing librsb into Epetra2016-07-25T17:06:52ZJames WillenbringInterfacing librsb into Epetra*Created by: michelemartone*
[rsb.hpp.txt](https://github.com/trilinos/Trilinos/files/309141/rsb.hpp.txt)
[Epetra_CrsMatrix.h.txt](https://github.com/trilinos/Trilinos/files/309139/Epetra_CrsMatrix.h.txt)
[Epetra_CrsMatrix.cpp.txt](http...*Created by: michelemartone*
[rsb.hpp.txt](https://github.com/trilinos/Trilinos/files/309141/rsb.hpp.txt)
[Epetra_CrsMatrix.h.txt](https://github.com/trilinos/Trilinos/files/309139/Epetra_CrsMatrix.h.txt)
[Epetra_CrsMatrix.cpp.txt](https://github.com/trilinos/Trilinos/files/309140/Epetra_CrsMatrix.cpp.txt)
@mhoemmen @maherou
Hi. After my talk at EUROTUG'16 on Apr. 18-20 2016 near Munich [ https://www.mhpc.mw.tum.de/index.php?id=38 ] and subsequent discussion with Michael and Mark I've been encouraged to propose an incremental integration of the sparse matrix type RSB (provided by librsb [ http://librsb.sourceforge.net/ ]) into Epetra.
So following such a minimalist approach I have modified a few lines in Epetra_CrsMatrix (from trilinos-12.6.1) to use librsb for: MV/MTV/SV/SM, in code delimited by the HAVE_EPETRA_RSB
preprocessor symbol; and constructs in Epetra_CrsMatrix::FillComplete and in the copy constructor.
So the prototype I am providing creates an RSB copy of the matrix just for the purposes of using it in the operations above.
I am also working on a proper "Epetra_RsbMatrix" class, but let's first see if this one here is able to sustain some tests for the above operations.
The way I suggest to build this is:
- # get my / michele martone's GPG key
gpg --search EF1258B8
- # download librsb from
https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz/download
# download its signature from
https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz.asc/download
# verify signature
gpg --verify librsb-1.2.0-rc3.tar.gz.asc
# build librsb
tar xzf librsb-1.2.0-rc3.tar.gz
cd librsb-1.2.0-rc3
./configure CFLAGS="-O3 -fPIC" FCFLAGS="-O3 -fPIC" --prefix=/opt/librsb
make
# quick check
make qtests
# long check (I recommend to skip it)
make tests
make install
- use attached version of Epetra_CrsMatrix.cpp and Epetra_CrsMatrix.h
and put attached rsb.hpp (the Epetra-agnostic C++ wrapper to librsb)
into e.g. /opt/librsb/include/
- build Epetra including e.g. `/opt/librsb/bin/librsb-config --I_opts`
- link with e.g. `/opt/librsb/bin/librsb-config --ldflags` -fopenmp -lm -lz
I attach the source files I have used, with ".txt" appended to the filename.
The rsb.hpp file is meant to become part of a future release of librsb.
I am new here, so if there is a more practical approach to follow to provide this proof-of-concept test, please suggest it to me.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/459Epetra has no debug-mode macro2016-06-27T20:59:39ZJames WillenbringEpetra has no debug-mode macro*Created by: mhoemmen*
@tawiesn
Epetra lacks a debug-mode macro comparable to HAVE_TPETRA_DEBUG or KOKKOS_HAVE_DEBUG.
*Created by: mhoemmen*
@tawiesn
Epetra lacks a debug-mode macro comparable to HAVE_TPETRA_DEBUG or KOKKOS_HAVE_DEBUG.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/480Update dggsvd support in Epetra2017-08-01T20:53:17ZJames WillenbringUpdate dggsvd support in Epetra*Created by: jwillenbring*
CC: @bartlettroscoe @maherou
dggsvd was deprecated in LAPACK 3.6.0. In the same version, dggsvd3 was added, which has one fewer argument but is similar otherwise.
ftp://ftp.icm.edu.pl/packages/netlib/lapack...*Created by: jwillenbring*
CC: @bartlettroscoe @maherou
dggsvd was deprecated in LAPACK 3.6.0. In the same version, dggsvd3 was added, which has one fewer argument but is similar otherwise.
ftp://ftp.icm.edu.pl/packages/netlib/lapack/lapack-3.6.0.txt
http://www.netlib.org/lapack/explore-html/d6/db3/dggsvd3_8f.html
http://www.netlib.org/lapack/explore-html/dd/db4/dggsvd_8f.html
@bartlettroscoe suggested that a configure-time check would be appropriate here to probe LAPACK and see which routine is available. There are examples of this sort of thing in Teuchos (see Trilinos/packages/teuchos/CMakelists.txt).
@krcb is this something @MicheldeMessieres or you could take a look at?
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/613Tpetra::Map/Epetra_BlockMap: preserve indexBase in ReplaceCommWithSubset2016-09-16T17:21:27ZJames WillenbringTpetra::Map/Epetra_BlockMap: preserve indexBase in ReplaceCommWithSubset*Created by: mhoemmen*
@trilinos/xpetra @trilinos/tpetra @tawiesn @csiefer2
The index base is redundant; users can get this information from the min or min overall global index. Furthermore, it's confusing that Epetra requires the in...*Created by: mhoemmen*
@trilinos/xpetra @trilinos/tpetra @tawiesn @csiefer2
The index base is redundant; users can get this information from the min or min overall global index. Furthermore, it's confusing that Epetra requires the index base to equal the min overall global index. This causes problems with implementing subset and strided Maps.
Changing this requirement on the index base might break backwards compatibility. The easiest way to work around for now would be for SameAs to ignore the index base.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/614Epetra_DistObject: Get rid of DistributedGlobal_ field2016-09-16T17:22:02ZJames WillenbringEpetra_DistObject: Get rid of DistributedGlobal_ field*Created by: mhoemmen*
@trilinos/xpetra @trilinos/tpetra @tawiesn @csiefer2
Get rid of Epetra_DistObject::DistributedGlobal_. That field is redundant with its Map's field. This causes confusion when implementing ReplaceMap, e.g., in...*Created by: mhoemmen*
@trilinos/xpetra @trilinos/tpetra @tawiesn @csiefer2
Get rid of Epetra_DistObject::DistributedGlobal_. That field is redundant with its Map's field. This causes confusion when implementing ReplaceMap, e.g., in Epetra_MultiVector.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/574Epetra_VbrMatrix::ExtractGlobalRowCopy has not been implemented yet.2016-08-23T13:37:36ZJames WillenbringEpetra_VbrMatrix::ExtractGlobalRowCopy has not been implemented yet.*Created by: RATATATO*
When I used Epetra_VbrMatrix::ExtractGlobalRowCopy in my source, my program outputted "Must implement....". and no elements were copied to an array.
Here is an example.
https://gist.github.com/RATATATO/5aaae9ed13...*Created by: RATATATO*
When I used Epetra_VbrMatrix::ExtractGlobalRowCopy in my source, my program outputted "Must implement....". and no elements were copied to an array.
Here is an example.
https://gist.github.com/RATATATO/5aaae9ed130d9bed87cb779531b25a84
Output is as follow
```
Must implement...
ExtractGlobalRowCopy: -1 -1
ExtractMyRowCopy: 1 4
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/622Set to Epetra_FEVector with Epetra_BlockMap2016-09-24T13:44:09ZJames WillenbringSet to Epetra_FEVector with Epetra_BlockMap*Created by: RATATATO*
It seems not to work Epetra_FEVector::ReplaceGlobalValues on Epetra_FEVector with Epetra_BlockMap.
Epetra_FEVector::ReplaceGlobalValues (and Epetra_FEVector::SumIntoGlobalValues)
sets only the head of a block.
1....*Created by: RATATATO*
It seems not to work Epetra_FEVector::ReplaceGlobalValues on Epetra_FEVector with Epetra_BlockMap.
Epetra_FEVector::ReplaceGlobalValues (and Epetra_FEVector::SumIntoGlobalValues)
sets only the head of a block.
1. It is a bug? or
2. It is correct, so we should not use Epetra_BlockMap to Epetra_FEVector?
An example is here:
https://gist.github.com/RATATATO/457f25c1e5960632378e7559cfeb0225
The output is as the follow:
```
ReplaceGlobalValues: 1 0 0 2 0 0
ReplaceGlobalValue: 1 2 4 8 16 32
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/729Epetra: test/BasicPerfTest/cxx_main.cpp not compiled with -fPIC2016-10-24T16:09:10ZJames WillenbringEpetra: test/BasicPerfTest/cxx_main.cpp not compiled with -fPIC*Created by: nschloe*
On GCC 6.*, I'm getting the link error
```
/usr/bin/ld: CMakeFiles/Epetra_BasicPerfTest_test.dir/cxx_main.cpp.o:
relocation R_X86_64_PC32 against symbol `_ZNK14Epetra_MpiComm5PrintERSo'
can not be used when making...*Created by: nschloe*
On GCC 6.*, I'm getting the link error
```
/usr/bin/ld: CMakeFiles/Epetra_BasicPerfTest_test.dir/cxx_main.cpp.o:
relocation R_X86_64_PC32 against symbol `_ZNK14Epetra_MpiComm5PrintERSo'
can not be used when making a shared object; recompile with -fPIC
```
when configuring with tests. This is because `packages/epetra/test/BasicPerfTest/cxx_main.cpp` is _not_ compiled with the `-fPIC` flag, as opposed to all other files.
Full details [here](https://launchpadlibrarian.net/290615615/buildlog_ubuntu-yakkety-amd64.trilinos_12.9~20161024092356-8a69e617-1yakkety1_BUILDING.txt.gz).
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/818a few issues from static code analyzer PVS2016-11-11T17:33:59ZJames Willenbringa few issues from static code analyzer PVS*Created by: davydden*
```
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/Epetra_FECrsGraph.h 65 warn V690 The '=' operator is declared as private in the 'Epetra_...*Created by: davydden*
```
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/Epetra_FECrsGraph.h 65 warn V690 The '=' operator is declared as private in the 'Epetra_FECrsGraph' class, but the default copy constructor will still be generated by compiler. It is dangerous to use such a class.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AztecOO.h 84 warn V690 The 'AztecOO' class implements a copy constructor, but lacks the '=' operator. It is dangerous to use such a class.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/Teuchos_CompObject.hpp 65 warn V690 The 'CompObject' class implements a copy constructor, but lacks the '=' operator. It is dangerous to use such a class.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/Teuchos_SerialDenseMatrix.hpp 464 warn V560 A part of conditional expression is always false: ScalarTraits < ScalarType >::isComplex.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziSolverUtils.hpp 655 err V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziSolverUtils.hpp 671 err V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziMatOrthoManager.hpp 425 err V547 Expression is always false. Unsigned type value is never < 0.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziMatOrthoManager.hpp 457 err V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziSVQBOrthoManager.hpp 310 err V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziSVQBOrthoManager.hpp 454 warn V560 A part of conditional expression is always false: qr != xr.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziBasicOrthoManager.hpp 335 err V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/AnasaziLOBPCGSolMgr.hpp 664 warn V747 An odd expression inside parenthesis. It is possible that a function name is missing.
/home/davydden/spack/opt/spack/linux-ubuntu16-x86_64/gcc-5.4.0/trilinos-12.8.1-fwmxwfpiqrrolya5mboyv6jvbz6imq4s/include/Teuchos_CommandLineProcessor.hpp 464 warn V730 Not all members of a class are initialized inside the constructor. Consider inspecting: opt_name, opt_name_false, documentation.
```
to do a proper analysis, you can get a one week trial license for Linux from PVS, see http://www.viva64.com/en/b/0441/ .
A quick usage example for deal.II is [in this issue](https://github.com/dealii/dealii/issues/3342#issuecomment-258896333). In that thread there is also a script to create Github issue for each analysis, if you would like to cover them and track progress.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/943Epetra installs test files into bin/2016-12-20T18:13:04ZJames WillenbringEpetra installs test files into bin/*Created by: nschloe*
With
```
cmake \
-DCMAKE_SHARED_LINKER_FLAGS="$CMAKE_SHARED_LINKER_FLAGS -Wl,--no-undefined" \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/trilinos/launchpad/ \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mp...*Created by: nschloe*
With
```
cmake \
-DCMAKE_SHARED_LINKER_FLAGS="$CMAKE_SHARED_LINKER_FLAGS -Wl,--no-undefined" \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/trilinos/launchpad/ \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_Fortran_COMPILER=mpif90 \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
-DTrilinos_INSTALL_INCLUDE_DIR:PATH=include/trilinos/ \
-DTrilinos_INSTALL_TriBITS:BOOL=OFF \
-DTrilinos_LIBRARY_NAME_PREFIX:STRING="trilinos_" \
-DTrilinos_USE_GNUINSTALLDIRS:BOOL=ON \
-DTrilinos_ENABLE_DEVELOPMENT_MODE:BOOL=OFF \
-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-DTrilinos_ENABLE_SECONDARY_TESTED_CODE:BOOL=ON \
-DTrilinos_ASSERT_MISSING_PACKAGES:BOOL=OFF \
-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON \
-DTrilinos_ENABLE_FEI:BOOL=OFF \
-DTrilinos_ENABLE_Gtest:BOOL=OFF \
-DTrilinos_ENABLE_Intrepid2:BOOL=OFF \
-DTrilinos_ENABLE_Panzer:BOOL=OFF \
-DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \
-DTrilinos_ENABLE_SEACAS:BOOL=OFF \
-DTrilinos_ENABLE_STK:BOOL=OFF \
-DTrilinos_ENABLE_STKClassic:BOOL=OFF \
-DTrilinos_ENABLE_STKDoc_tests:BOOL=OFF \
-DTrilinos_ENABLE_STKSearch:BOOL=OFF \
-DTrilinos_ENABLE_STKUnit_tests:BOOL=OFF \
-DTrilinos_ENABLE_ThreadPool:BOOL=OFF \
-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF \
-DTrilinos_ENABLE_TESTS:BOOL=ON \
-DZoltan_ENABLE_TESTS:BOOL=ON \
-DTPL_ENABLE_BinUtils:BOOL=OFF \
-DTPL_ENABLE_Boost:BOOL=ON \
-DTPL_ENABLE_HDF5:BOOL=OFF \
-DHDF5_INCLUDE_DIRS:PATH=/usr/include/hdf5/openmpi/ \
-DHDF5_LIBRARY_DIRS:PATH=/usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/openmpi/ \
-DTPL_ENABLE_Matio:BOOL=OFF \
-DTPL_ENABLE_MATLAB:BOOL=OFF \
-DTPL_ENABLE_MPI:BOOL=ON \
-DTPL_ENABLE_MUMPS:BOOL=ON \
-DTPL_ENABLE_Netcdf:BOOL=OFF \
-DTPL_ENABLE_ParMETIS:BOOL=OFF \
-DTPL_ENABLE_Scotch:BOOL=OFF \
-DTPL_ENABLE_SuperLU:BOOL=OFF \
-DTPL_ENABLE_TBB:BOOL=ON \
-DTPL_ENABLE_X11:BOOL=OFF \
-DTPL_ENABLE_Zlib:BOOL=ON \
../../source-upstream/
```
(perhaps some of the lines can be dropped), `make install` will install test files into `$PREFIX/bin/`, namely
```
Epetra_BasicPerfTest_test.exe
Epetra_BasicPerfTest_test_LL.exe
```https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1033Galeri install error when built without Epetra2017-02-02T04:08:53ZJames WillenbringGaleri install error when built without Epetra*Created by: tjfulle*
The file `Galeri_XpetraUtils.hpp` includes `Galeri_Exception.h`. `Galeri_Exception.h` lives in `packages/galeri/src-epetra/`. If Galeri is built and installed without Epetra (but with Tpetra/Xpetra), `Galeri_Exce...*Created by: tjfulle*
The file `Galeri_XpetraUtils.hpp` includes `Galeri_Exception.h`. `Galeri_Exception.h` lives in `packages/galeri/src-epetra/`. If Galeri is built and installed without Epetra (but with Tpetra/Xpetra), `Galeri_Exception.h` is not copied to the `<install prefix>/include` directory. The missing file results in compile errors in applications using Galeri/Xpetra.
@trilinos/xpetra
@trilinos/galeri https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1040doxygen 1.8.13 incompatibility2017-10-05T22:43:50ZJames Willenbringdoxygen 1.8.13 incompatibility*Created by: ilovezfs*
I'm having to set `-DPyTrilinos_DOCSTRINGS:BOOL=OFF` due to an incompatibility with doxygen 1.8.13, which ultimately leads to
```
[ 91%] Built target PanzerDiscFE_SacadoExample
[ 92%] Built target pytrilinos
[...*Created by: ilovezfs*
I'm having to set `-DPyTrilinos_DOCSTRINGS:BOOL=OFF` due to an incompatibility with doxygen 1.8.13, which ultimately leads to
```
[ 91%] Built target PanzerDiscFE_SacadoExample
[ 92%] Built target pytrilinos
[ 92%] Swig source /tmp/trilinos-20170129-37787-ninfii/Trilinos-trilinos-release-12-10-1/packages/PyTrilinos/src/LOCA.Epetra.Interface.i
/tmp/trilinos-20170129-37787-ninfii/Trilinos-trilinos-release-12-10-1/packages/PyTrilinos/src/LOCA.Epetra.Interface.i:147: Error: Unable to find 'LOCA_dox.i'
/tmp/trilinos-20170129-37787-ninfii/Trilinos-trilinos-release-12-10-1/packages/PyTrilinos/src/Epetra.i:260: Error: Unable to find 'Epetra_dox.i'
make[2]: *** [packages/PyTrilinos/src/LOCA.Epetra.InterfacePYTHON_wrap.cpp] Error 1
make[1]: *** [packages/PyTrilinos/src/CMakeFiles/PyTrilinos_LOCA_Epetra_Interface.dir/all] Error 2
make: *** [all] Error 2
```
Looking back in the log, there are errors in the initial cmake configuration: https://gist.github.com/ilovezfs/a5f72851bbeecded8d4b87a996b1b3ad
This does not occur if I use doxygen 1.8.12 or 1.8.11.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1126[Question] Epetra symmetric matrix fill.2017-03-21T23:24:34ZJames Willenbring[Question] Epetra symmetric matrix fill.*Created by: kyungjoo-kim*
could you help me figure out what the most efficient way to fill crs matrix with symmetry ?
The filled matrix is already upper triangular and Trillions object does not support a symmetry flag as a storage ...*Created by: kyungjoo-kim*
could you help me figure out what the most efficient way to fill crs matrix with symmetry ?
The filled matrix is already upper triangular and Trillions object does not support a symmetry flag as a storage (in my opinion, if wrong, please correct me). How can fill the other part easily ? https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1210Epetra: Fortran string ABI binding needs new option for OpenBLAS on POWER2017-04-05T15:16:34ZJames WillenbringEpetra: Fortran string ABI binding needs new option for OpenBLAS on POWER*Created by: mhoemmen*
See #1208 for analogous discussion. `Epetra_fcd` and `CHAR_MACRO` also exist in Epetra.*Created by: mhoemmen*
See #1208 for analogous discussion. `Epetra_fcd` and `CHAR_MACRO` also exist in Epetra.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1261EpetraExt::RowMatrix_Transpose returns non-filled matrix2017-05-18T14:04:20ZJames WillenbringEpetraExt::RowMatrix_Transpose returns non-filled matrix*Created by: xamhn*
When computing the explicit transpose of an Epetra_RowMatrix with EpetraExt::RowMatrix_Transpose the returned matrix is *not filled*, i.e. filled()=false, in case that 2 or more MPI processes are used. In my particul...*Created by: xamhn*
When computing the explicit transpose of an Epetra_RowMatrix with EpetraExt::RowMatrix_Transpose the returned matrix is *not filled*, i.e. filled()=false, in case that 2 or more MPI processes are used. In my particular case the matrix is rectangular.
Problem occurred with Release 12.10. In release 12.8 the returned matrix is filled.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1431./doc/build_docs for Epetra2017-06-16T21:37:10ZJames Willenbring./doc/build_docs for Epetra*Created by: nschloe*
The most common way for a Trilinos package to build its docs is to call `./doc/build_docs`. Unfortunately, Epetra doesn't have that, meaning that the Debian package, for example, doesn't contain Epetra docs. [We've...*Created by: nschloe*
The most common way for a Trilinos package to build its docs is to call `./doc/build_docs`. Unfortunately, Epetra doesn't have that, meaning that the Debian package, for example, doesn't contain Epetra docs. [We've recently had a user point that out](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864779), so I thought I mention it here, hoping for someone to put a `./doc/build_docs` in Epetra.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1419#include <Epetra_Version.h> causes error2017-06-15T15:23:57ZJames Willenbring#include <Epetra_Version.h> causes error*Created by: jwuttke*
This piece of code (taken from Epetra tutorial #2)
```
#include <Epetra_config.h>
#ifdef HAVE_MPI
# include <mpi.h>
# include <Epetra_MpiComm.h>
#else
# include <Epetra_SerialComm.h>
#endif // HAVE_MPI...*Created by: jwuttke*
This piece of code (taken from Epetra tutorial #2)
```
#include <Epetra_config.h>
#ifdef HAVE_MPI
# include <mpi.h>
# include <Epetra_MpiComm.h>
#else
# include <Epetra_SerialComm.h>
#endif // HAVE_MPI
#include <Epetra_Map.h>
#include <Epetra_Vector.h>
#include <Epetra_Version.h>
```
causes the following error:
```
$ mpic++ -I/usr/include/trilinos -ltrilinos_epetra epetra02-2.cpp
In file included from epetra02-2.cpp:10:0:
/usr/include/trilinos/Epetra_Version.h: In function ‘std::__cxx11::string Epetra_Version()’:
/usr/include/trilinos/Epetra_Version.h:49:34: error: expected ‘)’ before numeric constant
# define TRILINOS_VERSION_STRING 12S
^
/usr/include/trilinos/Epetra_Version.h:57:32: note: in expansion of macro ‘TRILINOS_VERSION_STRING’
return("Epetra in Trilinos " TRILINOS_VERSION_STRING);
```
Versions (from Debian/stretch):
* mpic++ from libopenmpi-dev 2.0.2-2
* libtrilinos-epetra-dev 12.10.1-3
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1420enum Epetra_DataAccess pollutes global namespace2017-06-14T18:29:17ZJames Willenbringenum Epetra_DataAccess pollutes global namespace*Created by: jwuttke*
a library shouldn't define global constants like "Copy" or "View".*Created by: jwuttke*
a library shouldn't define global constants like "Copy" or "View".https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1718Undefined LAPACK symbols on OS X 10.12 Sierra2018-07-25T08:02:34ZJames WillenbringUndefined LAPACK symbols on OS X 10.12 Sierra*Created by: plindsa*
I'm a new user trying to build Albany on a MacBook Pro running OS X Sierra. When building Albany (and Trilinos with tests enabled, oddly enough), I get the following error:
Undefined symbols for architecture x86...*Created by: plindsa*
I'm a new user trying to build Albany on a MacBook Pro running OS X Sierra. When building Albany (and Trilinos with tests enabled, oddly enough), I get the following error:
Undefined symbols for architecture x86_64:
"dggsvd", referenced from:
Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, double*, int, double*, int, double*, double*, double*, int, double*, int, double*, int, double*, int*, int*) const in libepetra.a(Epetra_LAPACK.cpp.o)
"sggsvd", referenced from:
Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, float*, int, float*, int, float*, float*, float*, int, float*, int, float*, int, float*, int*, int*) const in libepetra.a(Epetra_LAPACK.cpp.o)
I’ve tried a few things based on solutions other people having similar problems. The closest one I found was another user trying to build Albany on a mac (https://trilinos.org/pipermail/trilinos-users/2016-March/005397.html). Evidently, the work-around there was to use
-D BUILD_SHARED_LIBS:BOOL=OFF
but I tried that myself and it didn’t work for me. I also tried using g++ and clang++ vs. gcc when compiling, which I did using export CXX, but that didn't help either. Finally, I tried pointing to my Lapack install directory using
-D LAPACK_LIBRARY_DIRS:PATH="${LAPACK_ROOT}"
but that also was no good. Any help or advice on how to proceed would be appreciated.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1909Testing gap exists for Epetra642019-01-16T00:30:49ZJames WillenbringTesting gap exists for Epetra64*Created by: rhoope*
I don't think there is any automated testing for builds based on Epetra64.*Created by: rhoope*
I don't think there is any automated testing for builds based on Epetra64.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1941Thyra::get_Epetra_MultiVector hangs in debug build if some (not all) procs ha...2017-11-02T19:34:53ZJames WillenbringThyra::get_Epetra_MultiVector hangs in debug build if some (not all) procs have 0 rows*Created by: mhoemmen*
@trilinos/thyra @trilinos/epetra
We constructed a test that runs on 4 MPI processes. It builds an `Epetra_Map` such that Processes 0 and 2 each have zero local rows, and Processes 1 and 3 each have 1 local ro...*Created by: mhoemmen*
@trilinos/thyra @trilinos/epetra
We constructed a test that runs on 4 MPI processes. It builds an `Epetra_Map` such that Processes 0 and 2 each have zero local rows, and Processes 1 and 3 each have 1 local row. The code invokes the following function on that Map:
```
Teuchos::RCP<const Epetra_MultiVector>
Thyra::get_Epetra_MultiVector(
const Epetra_Map &map,
const MultiVectorBase<double> &mv
);
```
(definition in thyra/adapters/epetra/src/Thyra_EpetraThyraWrappers.cpp). In that function, the processes with a nonzero number of rows return a new `Epetra_MultiVector`. The other processes call an overload of `Thyra::get_Epetra_MultiVector` in the same file, that takes a `const Epetra_Map&` and an `RCP<const MultiVectorBase<double> >`. That function has a `TEUCHOS_DEBUG` bit of code that creates a Thyra vector space and checks it.
The problem is that `Thyra::create_VectorSpace` creates a `Teuchos::Comm`, which does a collective (at least in a debug build -- hopefully _ONLY_ in a debug build, else Thyra is not being as efficient as it could be). (If I insert a barrier after the Comm creation, the code hangs.)
The right fix would be to change the first `get_Epetra_MultiVector` overload so that it does not defer to the second overload. Each of these functions should only ever be called collectively on all processes in the input Map's communicator.
We already have a test that demonstrates this. I will add it to Thyra, along with the fix.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/1942Thyra: Backport #1941 patch to release branch2017-11-02T18:21:14ZJames WillenbringThyra: Backport #1941 patch to release branch*Created by: mhoemmen*
@trilinos/thyra @trilinos/epetra See #1941.*Created by: mhoemmen*
@trilinos/thyra @trilinos/epetra See #1941.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2046Error linking ThyraEpetraAdapters_TestThyraDebugHang.exe2018-12-20T18:56:42ZJames WillenbringError linking ThyraEpetraAdapters_TestThyraDebugHang.exe*Created by: ndaman*
<!--- Provide a general summary of the issue in the Title above. -->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Prev...*Created by: ndaman*
<!--- Provide a general summary of the issue in the Title above. -->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@mhoemmen
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Expectations
<!---
Tell us what you think should happen, how you think things should work, what
you would like to see in the documentation, etc.
-->
I am trying to build Trilinos with the options listed [here](https://peridigm.sandia.gov/content/trilinos) on a Fedora Linux VM (gcc 7.2.1).
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
While linking ThyraEpetraAdapters_TestThyraDebugHang.exe I get the following error:
```
[ 86%] Linking CXX executable ThyraEpetraAdapters_TestThyraDebugHang.exe
CMakeFiles/ThyraEpetraAdapters_TestThyraDebugHang.dir/TestThyraDebugHang.cpp.o: In function `ThyraEpetraMultiVector_HangingInParallelDebug_UnitTest::runUnitTestImpl(Teuchos::basic_FancyOStream<char, std::char_traits<char> >&, bool&) const':
TestThyraDebugHang.cpp:(.text+0xad3): undefined reference to `Thyra::DefaultSpmdVectorSpace<double>::initialize(Teuchos::RCP<Teuchos::Comm<long> const> const&, long, long, bool)'
collect2: error: ld returned 1 exit status
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2356Blocked Thyra to Epetra Conversion2018-04-06T15:12:59ZJames WillenbringBlocked Thyra to Epetra Conversion*Created by: jmgate*
@trilinos/epetra, @trilinos/thyra
## Scenario
I have a matrix, A, and vector, x. A is a 2x2 `Thyra::BlockedLinearOpBase`, where A00 is a `Thyra::LinearOpBase` and the other blocks are `Thyra::MultiVectorBase`s....*Created by: jmgate*
@trilinos/epetra, @trilinos/thyra
## Scenario
I have a matrix, A, and vector, x. A is a 2x2 `Thyra::BlockedLinearOpBase`, where A00 is a `Thyra::LinearOpBase` and the other blocks are `Thyra::MultiVectorBase`s. Likewise, x is a `Thyra::ProductVectorBase` with two sub-vectors. I'm in a situation where I need to make A an `Epetra_CrsMatrix` and x an `Epetra_Vector`, but I'm at a bit of a loss to do just that. I see Thyra has a `get_Epetra_Vector()` routine, but that requires passing in an `Epetra_Map`. I see there's also a `get_Epetra_Map()` routine, which takes a `Thyra::VectorSpaceBase`, but if you give it a `DefaultProductVectorSpace` instead, it doesn't seem to work (I'm seeing `MPI_Abort` being called).
## Questions
* Is there a way to convert the objects that I have to the ones that I need directly?
* Is there a way to cram a `BlockedLinearOpBase` into a single `MultiVectorBase` and a `ProductVectorBase` into a single `VectorBase`, such that these Epetra/Thyra wrappers work?
* If I'm able to convert the various pieces of my blocked objects into their Epetra counterparts, is there some way to cram four `Epetra_CrsMatrix`es into one, and two `Epetra_Vector`s into one?
## Motivation and Context
In Charon I've got a `ModelEvaluator` decorator that takes the original physics `ModelEvaluator` and augments it with blocks corresponding to constraints/parameters. Solving the blocked system via a Teko blocked preconditioner is proving to be more finicky than we'd like in certain situations, so we're investigating collapsing the blocked system and throwing a standard solver at it to see what happens.
## Additional Information
@mhoemmen, this seems like the kind of thing you'd chime in on.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2448CEpetra_LAPACK: "no matching function for call to Epetra_LAPACK::GGSVD" with ...2018-03-31T15:59:25ZJames WillenbringCEpetra_LAPACK: "no matching function for call to Epetra_LAPACK::GGSVD" with HAVE_EPETRA_LAPACK_GSSVD3*Created by: edmondac*
I'm trying to build Trilinos but get the following error:
```
<PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp: In function ‘void Epetra_LAPACK_GGSVD_double(CT_Epetra_LAPACK_ID_...*Created by: edmondac*
I'm trying to build Trilinos but get the following error:
```
<PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp: In function ‘void Epetra_LAPACK_GGSVD_double(CT_Epetra_LAPACK_ID_t, char, char, char, i nt, int, int, int*, int*, double*, int, double*, int, double*, double*, double*, int, double*, int, double*, int, double*, int*, int*)’:
<PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp:612:76: error: no matching function for call to ‘Epetra_LAPACK::GGSVD(const char&, const char&, const char&, const int&, const int&, const int&, int*&, int*&, double*&, const int&, double*&, const int&, double*&, double*&, double*&, const int&, double*&, const int&, double*&, const int&, double*&, int*&, int*&) const’
LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO);
^
In file included from <PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK_Cpp.hpp:52:0,
from <PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp:50:
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:279:8: note: candidate: void Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, double *, int, double*, int, double*, double*, double*, int, double*, int, double*, int, double*, int, int*, int*) const
void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L, double* A, const int LDA, double* B, const int LDB,
^~~~~
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:279:8: note: candidate expects 24 arguments, 23 provided
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:286:8: note: candidate: void Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, float* , int, float*, int, float*, float*, float*, int, float*, int, float*, int, float*, int, int*, int*) const
void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L, float* A, const int LDA, float* B, const int LDB,
^~~~~
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:286:8: note: candidate expects 24 arguments, 23 provided
<PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp: In function ‘void Epetra_LAPACK_GGSVD_float(CT_Epetra_LAPACK_ID_t, char, char, char, in t, int, int, int*, int*, float*, int, float*, int, float*, float*, float*, int, float*, int, float*, int, float*, int*, int*)’:
<PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp:624:76: error: no matching function for call to ‘Epetra_LAPACK::GGSVD(const char&, const char&, const char&, const int&, const int&, const int&, int*&, int*&, float*&, const int&, float*&, const int&, float*&, float*&, float*&, const int&, float*&, const int&, float*&, const int&, float*&, int*&, int*&) const’
LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO);
^
In file included from <PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK_Cpp.hpp:52:0,
from <PATH>/trilinos-12.12.1-Source/packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp:50:
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:279:8: note: candidate: void Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, double *, int, double*, int, double*, double*, double*, int, double*, int, double*, int, double*, int, int*, int*) const
void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L, double* A, const int LDA, double* B, const int LDB,
^~~~~
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:279:8: note: candidate expects 24 arguments, 23 provided
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:286:8: note: candidate: void Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, float* , int, float*, int, float*, float*, float*, int, float*, int, float*, int, float*, int, int*, int*) const
void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L, float* A, const int LDA, float* B, const int LDB,
^~~~~
<PATH>/trilinos-12.12.1-Source/packages/epetra/src/Epetra_LAPACK.h:286:8: note: candidate expects 24 arguments, 23 provided
```
The problem seems to stem from packages/epetra/src/Epetra_LAPACK.cpp having been changed to add an extra argument for GSSVD3 but packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp not so:
packages/CTrilinos/src/epetra/CEpetra_LAPACK.cpp:
```
603 void Epetra_LAPACK_GGSVD_double (
604 CT_Epetra_LAPACK_ID_t selfID, const char JOBU, const char JOBV,
605 const char JOBQ, const int M, const int N, const int P, int * K,
606 int * L, double * A, const int LDA, double * B, const int LDB,
607 double * ALPHA, double * BETA, double * U, const int LDU,
608 double * V, const int LDV, double * Q, const int LDQ,
609 double * WORK, int * IWORK, int * INFO )
610 {
611 CEpetra::getConstLAPACK(selfID)->GGSVD(JOBU, JOBV, JOBQ, M, N, P, K, L, A,
612 LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO);
613 }
614
615 void Epetra_LAPACK_GGSVD_float (
616 CT_Epetra_LAPACK_ID_t selfID, const char JOBU, const char JOBV,
617 const char JOBQ, const int M, const int N, const int P, int * K,
618 int * L, float * A, const int LDA, float * B, const int LDB,
619 float * ALPHA, float * BETA, float * U, const int LDU, float * V,
620 const int LDV, float * Q, const int LDQ, float * WORK,
621 int * IWORK, int * INFO )
622 {
623 CEpetra::getConstLAPACK(selfID)->GGSVD(JOBU, JOBV, JOBQ, M, N, P, K, L, A,
624 LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO);
625 }
```
packages/epetra/src/Epetra_LAPACK.cpp
```
363 //=============================================================================
364 void Epetra_LAPACK::GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L,
365 double* A, const int LDA, double* B, const int LDB,
366 double* ALPHA, double* BETA, double* U, const int LDU, double* V, const int LDV, double* Q, const int LDQ, double* WORK,
367 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
368 const int LWORK,
369 #endif
370 int* IWORK, int* INFO) const {
371 DGGSVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBV), CHAR_MACRO(JOBQ), &M, &N, &P, K, L, A, &LDA, B, &LDB,
372 ALPHA, BETA, U, &LDU, V, &LDV, Q, &LDQ, WORK,
373 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
374 &LWORK,
375 #endif
376 IWORK, INFO);
377 }
378
379 //=============================================================================
380 void Epetra_LAPACK::GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L,
381 float* A, const int LDA, float* B, const int LDB,
382 float* ALPHA, float* BETA, float* U, const int LDU, float* V, const int LDV, float* Q, const int LDQ, float* WORK,
383 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
384 const int LWORK,
385 #endif
386 int* IWORK, int* INFO) const {
387 SGGSVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBV), CHAR_MACRO(JOBQ), &M, &N, &P, K, L, A, &LDA, B, &LDB,
388 ALPHA, BETA, U, &LDU, V, &LDV, Q, &LDQ, WORK,
389 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
390 &LWORK,
391 #endif
392 IWORK, INFO);
393 }
```
I've got a patch that builds on my system, but it wouldn't work in the opposite situation as the header doesn't use an ifdef.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2522Xpetra::CrsMatrix::doImport() fails with Negative count into MPI_Send2018-04-24T22:39:06ZJames WillenbringXpetra::CrsMatrix::doImport() fails with Negative count into MPI_Send*Created by: SG38*
The MPI_Send() has a Negative count when importing big data set of a matrix ; same issue with MultiVector and CrsMatrix. When distributing the matrix with an import of the SerialMatrix rows:
_RCP<Xpetra::Import<SOL...*Created by: SG38*
The MPI_Send() has a Negative count when importing big data set of a matrix ; same issue with MultiVector and CrsMatrix. When distributing the matrix with an import of the SerialMatrix rows:
_RCP<Xpetra::Import<SOL_LO, SOL_GO, SOL_EPETRA_TYPE> > importer = Xpetra::ImportFactory<SOL_LO, SOL_GO, SOL_EPETRA_TYPE>::Build(SerialMap, DistributedMap);_
_DistributedMatrix->doImport(*SerialMatrix, *importer, Xpetra::INSERT);_
It throws:
> Fatal error in MPI_Send: Invalid count, error stack:
> MPI_Send(201): MPI_Send(buf=0x7ffb33824100, count=-2131745804, MPI_CHAR, dest=1, tag=1, MPI_COMM_WORLD) failed
> MPI_Send(117): Negative count, value is -2131745804
Configuration is:
(1) Trilinos 12.12.1
Linux 64 bits
(2) CMakeCache:
- Tpetra_INST_INT_LONG_LONG:BOOL=ON
- HAVE_TEUCHOS_LONG_LONG_INT:INTERNAL=ON
- HAVE_TEUCHOS___INT64:INTERNAL=1
(3) program:
- Xpetra::UseTpetra
- Xpetra::CrsMatrix<int, signed long long, KokkosClassic::DefaultNode::DefaultNodeType>
- Teuchos::Comm< int > comm;
@trilinos/Teuchos
To be honest, I do not understand the source code of the Teuchos communicator. More precisely, i do not find any source code where the _send_ counter would be a long long. Is there a way to distribute big matrices?
Thank you in advance,
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2590Epetra: adding IntMultiVector to mirror the IntVector object2018-05-15T16:30:29ZJames WillenbringEpetra: adding IntMultiVector to mirror the IntVector object*Created by: lucbv*
@trilinos/epetra
@csiefer2 @mhoemmen
## Expectations
Implementation of a `IntMultiVector` class that allows for the storage of multiple indices in the same object instead of using arrays of `IntVector` which i...*Created by: lucbv*
@trilinos/epetra
@csiefer2 @mhoemmen
## Expectations
Implementation of a `IntMultiVector` class that allows for the storage of multiple indices in the same object instead of using arrays of `IntVector` which is a more sketchy...
## Current Behavior
Currently such object does not exist and that leads to funny code with multiple `IntVectors` stored in Arrays or `std::vector`. Also this would use significantly less storage than the equivalent `MultiVector` in the case of `int` data
## Motivation and Context
The implementation of overlapping aggregates in MueLu requires to store multiple indices per node and it was done in the case of non-overlapping aggregates done with IntVector.
## Definition of Done
The implementation of an `IntMultiVector` class that mirrors the capabilities of the `IntVector` class.
## Possible Solution
see above
## Related Issues
* Blocks #2577
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2743Epetra: Epetra_IntMultiVectorDistributed_test failing in nightly clean build2018-05-15T14:40:20ZJames WillenbringEpetra: Epetra_IntMultiVectorDistributed_test failing in nightly clean build*Created by: william76*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
@trilinos/epetra
...*Created by: william76*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
@trilinos/epetra
The test [Epetra_IntMultiVectorDistributed](https://testing-vm.sandia.gov/cdash/testDetails.php?test=46495883&build=3509186) is failing on nightly Clean testing.
### Test output
```
Epetra in Trilinos 12.13 (Dev)
Processor 0 of 1 is alive.
Non zero error code 1, file: /scratch/trilinos/workspace/trilinos-folder/Trilinos_generic_nightly@2/SERIAL_Release_gcc_4.9.3__DEV/Trilinos/packages/epetra/test/IntMultiVectorDistributed/cxx_main.cpp, line: 168
Non zero error code 1, file: /scratch/trilinos/workspace/trilinos-folder/Trilinos_generic_nightly@2/SERIAL_Release_gcc_4.9.3__DEV/Trilinos/packages/epetra/test/IntMultiVectorDistributed/cxx_main.cpp, line: 170
Non zero error code 1, file: /scratch/trilinos/workspace/trilinos-folder/Trilinos_generic_nightly@2/SERIAL_Release_gcc_4.9.3__DEV/Trilinos/packages/epetra/test/IntMultiVectorDistributed/cxx_main.cpp, line: 172
```
@lucbv had the most recent commit to [epetra/test/IntMultiVectorDistributed/cxx_main.cpp](https://github.com/trilinos/Trilinos/blob/develop/packages/epetra/test/IntMultiVectorDistributed/cxx_main.cpp). https://gitlab.osti.gov/jmwille/Trilinos/-/issues/2795Epetra requires C++11 now; update documentation2018-05-22T20:13:48ZJames WillenbringEpetra requires C++11 now; update documentation*Created by: mhoemmen*
I merged the following pull request that fixes GLIBCXX debug checking for deal.II's tests:
https://github.com/trilinos/Trilinos/pull/2783
This pull request introduces a modest C++11 requirement into Epetra. ...*Created by: mhoemmen*
I merged the following pull request that fixes GLIBCXX debug checking for deal.II's tests:
https://github.com/trilinos/Trilinos/pull/2783
This pull request introduces a modest C++11 requirement into Epetra. Please see discussion there for rationale. In particular, no one could come up with a current use case demanding that Epetra be built with a C++98 compiler. Even the Epetra-only MueLu build for Windows requires Teuchos, which in turn requires C++11. More importantly, we have no idea if Epetra builds with a C++98 compiler, since we have not tested this use case for a long time.
@trilinos/epetra @trilinos/framework @trilinos/muelu @maherou @trilinos/tpetra
If y'all have a problem with that, now might be a good time to say something. Otherwise, I hereby declare that Epetra now requires C++11. Next step is to update Epetra's documentation to make this clear.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3041Xpetra/Epetra Undefined Reference when Compiling MueLu Test2019-04-03T13:29:08ZJames WillenbringXpetra/Epetra Undefined Reference when Compiling MueLu Test*Created by: nmhamster*
@trilinos/muelu @trilinos/xpetra
Compiling Trilinos (with tests) for KNL on Argonne Theta. I am using the Master branch.
Using:
* Cray MPI
* Intel 18.2 Compiler
* OpenMP enabled
```
[100%] Built ...*Created by: nmhamster*
@trilinos/muelu @trilinos/xpetra
Compiling Trilinos (with tests) for KNL on Argonne Theta. I am using the Master branch.
Using:
* Cray MPI
* Intel 18.2 Compiler
* OpenMP enabled
```
[100%] Built target MueLu_Viz
[100%] Built target MueLu_Convergence
[100%] Linking CXX executable MueLu_Driver.exe
Warning:
Headers and libraries from cray-libsci/18.04.1 will be ignored because they conflict with -mkl.
../../../kokkos/core/src/libkokkoscore.a(Kokkos_Profiling_Interface.cpp.o): In function `Kokkos::Profiling::initialize()':
../../../kokkos/core/src/libkokkoscore.a(Kokkos_Profiling_Interface.cpp.o): In function `Kokkos::Profiling::initialize()':
Kokkos_Profiling_Interface.cpp:(.text+0x5c5): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
CMakeFiles/MueLu_Driver.dir/Driver.cpp.o: In function `int main_<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >(Teuchos::CommandLineProcessor&, Xpetra::UnderlyingLib&, int, char**)':
Driver.cpp:(.text._Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6SerialENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc[_Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6SerialENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc]+0x31ca): undefined reference to `Epetra_MultiVector& Xpetra::toEpetra<long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >(Xpetra::MultiVector<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >&)'
Driver.cpp:(.text._Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6SerialENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc[_Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6SerialENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc]+0x3213): undefined reference to `Epetra_MultiVector& Xpetra::toEpetra<long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >(Xpetra::MultiVector<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >&)'
CMakeFiles/MueLu_Driver.dir/Driver.cpp.o: In function `int main_<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >(Teuchos::CommandLineProcessor&, Xpetra::UnderlyingLib&, int, char**)':
Driver.cpp:(.text._Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6OpenMPENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc[_Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6OpenMPENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc]+0x31ca): undefined reference to `Epetra_MultiVector& Xpetra::toEpetra<long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >(Xpetra::MultiVector<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >&)'
Driver.cpp:(.text._Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6OpenMPENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc[_Z5main_IdilN6Kokkos6Compat23KokkosDeviceWrapperNodeINS0_6OpenMPENS0_9HostSpaceEEEEiRN7Teuchos20CommandLineProcessorERN6Xpetra13UnderlyingLibEiPPc]+0x3213): undefined reference to `Epetra_MultiVector& Xpetra::toEpetra<long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >(Xpetra::MultiVector<double, int, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >&)'
```https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3192Epetra64: Epetra_CrsMatrix throws if given a Map with a 64-bit (long long) nu...2018-07-28T18:22:29ZJames WillenbringEpetra64: Epetra_CrsMatrix throws if given a Map with a 64-bit (long long) number of rows; 32-bit (int) number of rows is OK*Created by: mhoemmen*
I was working on #3139, in particular on an Ifpack2 BlockRelaxation test that @brian-kelley wrote, that compares Ifpack2 and ML performance. My first pass of changes used a 64-bit (`long long`) value for the glob...*Created by: mhoemmen*
I was working on #3139, in particular on an Ifpack2 BlockRelaxation test that @brian-kelley wrote, that compares Ifpack2 and ML performance. My first pass of changes used a 64-bit (`long long`) value for the global number of rows, when building both an Epetra and a Tpetra Map. The test threw in that case. However, when I gave `Epetra_Map`'s constructor the global number of rows as a 32-bit (`int`) value, the test passed.
@trilinos/epetra @trilinos/tpetra @trilinos/ifpack2 @kddevin
## Expectations
`Epetra_CrsMatrix` should behave the same, whether its row Map was created with a 64-bit or 32-bit global number of indices.
## Current Behavior
```c++
using GO = long long;
const GO localRows = 5000;
#ifdef EPETRA_MPI
Epetra_MpiComm ecomm(MPI_COMM_WORLD);
#else
Epetra_SerialComm ecomm;
#endif
// If I cast localRows to int, this code doesn't throw.
// Otherwise, something after the Epetra_Map constructor will throw.
Epetra_Map rowmap(localRows, 0, ecomm);
Teuchos::RCP<Epetra_CrsMatrix> crsmatrix =
Teuchos::rcp(new Epetra_CrsMatrix(Epetra_DataAccess::Copy, rowmap, 3));
int numRows = rowmap.NumGlobalElements();
double tile[3] = {-2, 4, -2};
int firstCols[] = {0, 1};
crsmatrix->InsertGlobalValues(0, 2, tile + 1, firstCols);
for(int row = 1; row < numRows - 1; row++)
{
int cols[] = {row - 1, row, row + 1};
crsmatrix->InsertGlobalValues(row, 3, tile, cols);
}
int lastCols[] = {numRows - 2, numRows - 1};
crsmatrix->InsertGlobalValues(numRows - 1, 2, tile, lastCols);
crsmatrix->FillComplete();
```
I see now that the code passes 32-bit global column indices into `InsertGlobalValues`. Is it wrong to do that after creating a row Map with a 64-bit global number of rows? That's very easy to do when writing Epetra vs. Tpetra comparisons.
## Motivation and Context
This hindered #3139. Also, we're generally interested in Epetra vs. Tpetra performance comparisons.
## Related Issues
* Related to #3139
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3207Epetra: What's the point of BlockMap?2018-08-01T16:13:05ZJames WillenbringEpetra: What's the point of BlockMap?*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that an...*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/Epetra
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Motivation and Context
<!---
How has this expectation failure affected you? What are you trying to
accomplish? Why do we need to address this? What does it have to do with
anything? Providing context helps us come up with a solution that is most
useful in the real world.
-->
This is more of a big picture view, but its consequences have sometimes bit me when implementing functions that take `Epetra_Map&` as input. As I see it, `Epetra_Map` is just a 'special case' of `Epetra_BlockMap`, when all blocks have size one. It is useful to enforce this constraint at compile time, rather than check inside every constructor if that's the case. On the other hand, this code does not compile:
```
void f(const Epetra_Map& m) {...}
void g(const Epetra_Vector&v) { f(v.Map()); }
```
since the `Map()` method returns a reference to `Epetra_BlockMap`, and you would have to cast `Epetra_BlockMap` down to `Epetra_Map` before calling `f`. Yes, this is possible, since `Epetra_Map` does not store any additional attribute compared to `Epetra_BlockMap`, but it is...ugly!
However, it appears to me that _all_ Epetra classes use only `Epetra_Map&`. All the matrices only accept and return `Epetra_Map`. Even the vector and multivector, which formally take a `Epetra_BlockMap` as input at construction, allocate enough space for `Map().NumMyPoints()` doubles (per vector), which means they would be _wrong_ if the element size is larger than one.
Or perhaps I am completely misunderstanding what `Epetra_BlockMap` is intended to do.
Could someone shed some light on this? Or, if my impression is right, why shouldn't we completely remove the `Epetra_BlockMap` (perhaps with a typedef for backward compatibility)?https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3220teuchos can not find Epetra_ConfigDefs.h2018-08-03T16:13:13ZJames Willenbringteuchos can not find Epetra_ConfigDefs.h*Created by: VictorEijkhout*
That file is in `epetra/src`, but that directory is not listed as include path.
```
[ 98%] Building CXX object packages/PyTrilinos/src/CMakeFiles/pytrilinos.dir/PyTrilinos_DAP.cpp.o
cd /tmp/trilinos-bui...*Created by: VictorEijkhout*
That file is in `epetra/src`, but that directory is not listed as include path.
```
[ 98%] Building CXX object packages/PyTrilinos/src/CMakeFiles/pytrilinos.dir/PyTrilinos_DAP.cpp.o
cd /tmp/trilinos-build/packages/PyTrilinos/src && /opt/apps/intel18/cray_mpich/7.7.0/bin/mpicxx -Dpytrilinos_EXPORTS -I/tmp/trilinos-build -I/tmp/trilinos-build/packages/PyTrilinos/src -I/admin/
rpms/BUILD/trilinos-git/packages/PyTrilinos/src -I/opt/apps/intel18/python2/2.7.15/include/python2.7 -I/opt/apps/intel18/python2/2.7.15/lib/python2.7/site-packages/numpy-1.14.3-py2.7-linux-x86_64
.egg/numpy/core/include -I/opt/apps/intel18/cray_mpich_7_7/python2/2.7.15/lib/python2.7/site-packages/mpi4py/include -I/admin/rpms/BUILD/trilinos-git/packages/galeri/src-xpetra -I/tmp/trilinos-bu
ild/packages/galeri/src-xpetra -I/admin/rpms/BUILD/trilinos-git/packages/galeri/src-xpetra/../src-epetra -I/tmp/trilinos-build/packages/galeri/src-xpetra/../src-epetra -I/admin/rpms/BUILD/trilino
s-git/packages/galeri/src-xpetra/../src/Utils -I/admin/rpms/BUILD/trilinos-git/packages/galeri/src-xpetra/../src/Headers -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/sup/Matrix -I/admin/rpms/
BUILD/trilinos-git/packages/xpetra/sup/StridedMap -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/sup/Cloner -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/sup/Utils -I/tmp/trilinos-build/pack
ages/xpetra/sup -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/CrsGraph -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/CrsMatrix -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/B
lockedCrsMatrix -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/DistObject -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Export -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/He
aders -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Import -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Map -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/BlockedMap -I/admin
/rpms/BUILD/trilinos-git/packages/xpetra/src/MultiVector -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/BlockedMultiVector -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/BlockedVector
-I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Operator -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Platform -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/RowGraph -I/admin
/rpms/BUILD/trilinos-git/packages/xpetra/src/RowMatrix -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Utils -I/admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Utils/ForwardDeclaration -I/
admin/rpms/BUILD/trilinos-git/packages/xpetra/src/Vector -I/tmp/trilinos-build/packages/xpetra/src -I/admin/rpms/BUILD/trilinos-git/packages/thyra/adapters/tpetra/src -I/admin/rpms/BUILD/trilinos
-git/packages/thyra/core/src -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/operator_vector/fundamental -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/op
erator_vector/extended -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/support/operator_vector/client_support -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/support/operator_ve
ctor/adapter_support -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/operator_solve/fundamental -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/operator_so
lve/extended -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/support/operator_solve/client_support -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/nonlinear/model_eva
luator/fundamental -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/support/nonlinear/model_evaluator/client_support -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/interfaces/no
nlinear/solvers/fundamental -I/admin/rpms/BUILD/trilinos-git/packages/thyra/core/src/support/nonlinear/solvers/client_support -I/tmp/trilinos-build/packages/thyra/core/src -I/admin/rpms/BUILD/tri
linos-git/packages/thyra/core/example/operator_vector -I/admin/rpms/BUILD/trilinos-git/packages/rtop/src -I/admin/rpms/BUILD/trilinos-git/packages/rtop/src/interfaces -I/admin/rpms/BUILD/trilinos
-git/packages/rtop/src/support -I/admin/rpms/BUILD/trilinos-git/packages/rtop/src/ops_lib -I/admin/rpms/BUILD/trilinos-git/packages/rtop/src/lapack -I/tmp/trilinos-build/packages/rtop/src -I/admi
n/rpms/BUILD/trilinos-git/packages/teuchos/numerics/src -I/admin/rpms/BUILD/trilinos-git/packages/teuchos/comm/src -I/admin/rpms/BUILD/trilinos-git/packages/teuchos/parameterlist/src -I/admin/rpm
s/BUILD/trilinos-git/packages/teuchos/parser/src -I/tmp/trilinos-build/packages/teuchos/core/src -I/admin/rpms/BUILD/trilinos-git/packages/teuchos/core/src -I/tmp/trilinos-build/packages/kokkos/c
ore/src -I/admin/rpms/BUILD/trilinos-git/packages/kokkos/core/src -I/opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/include -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/core/ext -I/tm
p/trilinos-build/packages/tpetra/core/ext -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/core/inout -I/tmp/trilinos-build/packages/tpetra/core/inout -I/admin/rpms/BUILD/trilinos-git/packages/tp
etra/core/src -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/core/src/kokkos_refactor -I/tmp/trilinos-build/packages/tpetra/core/src -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/tsqr/src -I
/tmp/trilinos-build/packages/tpetra/tsqr/src -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/classic/LinAlg -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/classic/NodeAPI -I/tmp/trilinos-build
/packages/tpetra/classic/NodeAPI -I/tmp/trilinos-build/packages/tpetra/classic/src -I/admin/rpms/BUILD/trilinos-git/packages/tpetra/classic/src -I/tmp/trilinos-build/packages/teuchos/kokkoscomm/s
rc -I/admin/rpms/BUILD/trilinos-git/packages/teuchos/kokkoscomm/src -I/tmp/trilinos-build/packages/teuchos/kokkoscompat/src -I/admin/rpms/BUILD/trilinos-git/packages/teuchos/kokkoscompat/src -I/a
dmin/rpms/BUILD/trilinos-git/packages/teuchos/remainder/src -I/tmp/trilinos-build/packages/teuchos/remainder/src -I/tmp/trilinos-build/packages/kokkos-kernels/src -I/admin/rpms/BUILD/trilinos-git
/packages/kokkos-kernels/src -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/impl -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/impl/tpls -I/admin/rpms/BUILD/trilinos-
git/packages/kokkos-kernels/src/blas -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/blas/impl -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/sparse -I/admin/rpms/BUILD
/trilinos-git/packages/kokkos-kernels/src/sparse/impl -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/graph -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/graph/impl -I
/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/batched -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kernels/src/batched/impl -I/admin/rpms/BUILD/trilinos-git/packages/kokkos-kerne
ls/src/common -I/tmp/trilinos-build/packages/kokkos/algorithms/src -I/admin/rpms/BUILD/trilinos-git/packages/kokkos/algorithms/src -I/tmp/trilinos-build/packages/kokkos/containers/src -I/admin/rp
ms/BUILD/trilinos-git/packages/kokkos/containers/src -I/tmp/trilinos-build/packages/domi/src -I/admin/rpms/BUILD/trilinos-git/packages/domi/src -g -xhost -O2 -mkl -DMPICH_SKIP_MPICXX -DHAVE_AMES
OS_SUPERLU5_API -DHAVE_AMESOS2_SUPERLU5_API -DHAVE_IFPACK2_SUPERLU5_API -std=c++11 -O3 -DNDEBUG -fPIC -o CMakeFiles/pytrilinos.dir/PyTrilinos_DAP.cpp.o -c /admin/rpms/BUILD/trilinos-git/package
s/PyTrilinos/src/PyTrilinos_DAP.cpp
In file included from /admin/rpms/BUILD/trilinos-git/packages/PyTrilinos/src/PyTrilinos_Galeri_Headers.hpp(53),
from /tmp/trilinos-build/packages/PyTrilinos/src/Teuchos.RCPPYTHON_wrap.cpp(3209):
/admin/rpms/BUILD/trilinos-git/packages/galeri/src-xpetra/../src-epetra/Galeri_Maps.h(47): catastrophic error: cannot open source file "Epetra_ConfigDefs.h"
#include "Epetra_ConfigDefs.h"
^
compilation aborted for /tmp/trilinos-build/packages/PyTrilinos/src/Teuchos.RCPPYTHON_wrap.cpp (code 4)
make[2]: *** [packages/PyTrilinos/src/CMakeFiles/PyTrilinos_Teuchos_RCP.dir/Teuchos.RCPPYTHON_wrap.cpp.o] Error 4
make[2]: Leaving directory `/tmp/trilinos-build'
make[1]: *** [packages/PyTrilinos/src/CMakeFiles/PyTrilinos_Teuchos_RCP.dir/all] Error 2
```https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3235Belos: BLAS error in GMRES - matrix with no entries on a rank2018-08-10T18:33:17ZJames WillenbringBelos: BLAS error in GMRES - matrix with no entries on a rank*Created by: chochmuth*
Hello,
I'm encountering a problem using Belos GMRES (Flexible GMRES too) with a matrix, that has an empty row, or several.
cblas_dgemm BLAS routine throws the following error:
`lda must be >= MAX(K,1): lda=0...*Created by: chochmuth*
Hello,
I'm encountering a problem using Belos GMRES (Flexible GMRES too) with a matrix, that has an empty row, or several.
cblas_dgemm BLAS routine throws the following error:
`lda must be >= MAX(K,1): lda=0 K=0ldb must be >= MAX(K,1): ldb=0 K=0BLAS error: Parameter number 9 passed to cblas_dgemm had an invalid value`
With parameter number 9(lda) standing for the number of rows.
Is this a desired/necessary behaviour?
You can find an example for a matrix with entries on the first mpi-rank only below.
It runs fine if executed on one mpi-rank but with more than one mpi-rank i get the above error.
```
#include <mpi.h>
#include <Teuchos_XMLParameterListCoreHelpers.hpp>
#include <Xpetra_Operator.hpp>
#include <Xpetra_Matrix_fwd.hpp>
#include <Xpetra_MatrixMatrix.hpp>
#include "Xpetra_MapFactory.hpp"
#include "Xpetra_MultiVectorFactory.hpp"
#include "Xpetra_MatrixFactory.hpp"
#include <BelosOperatorT.hpp>
#include <BelosXpetraAdapter.hpp>
#include <BelosSolverFactory.hpp>
#include <Xpetra_Export.hpp>
typedef unsigned UN;
typedef double SC;
typedef int LO;
typedef int GO;
typedef KokkosClassic::DefaultNode::DefaultNodeType EpetraNode;
typedef EpetraNode NO;
using namespace std;
using namespace Teuchos;
using namespace Xpetra;
using namespace Belos;
int main(int argc, char *argv[]) {
MPI_Init(&argc,&argv);
{
RCP<const Teuchos::Comm<int> > TeuchosComm = rcp(new MpiComm<int> (MPI_COMM_WORLD));
RCP<Map<LO,GO,NO> > UniqueMap;
RCP<Matrix<SC,LO,GO,NO> > K;
int NumMyElements = 0;
if (TeuchosComm->getRank()==0) {
NumMyElements = 10;
}
Array<GO> uniqueMapArray(NumMyElements);
for (LO i=0; i<uniqueMapArray.size(); i++) {
uniqueMapArray[i] = i;
}
UniqueMap = MapFactory<LO,GO,NO>::Build(UseTpetra,-1,uniqueMapArray(),0,TeuchosComm);
K = MatrixFactory<SC,LO,GO,NO>::Build(UniqueMap,1);
for (LO i=0; i<UniqueMap->getNodeNumElements(); i++) {
LO numEntries = 10-i;
Array<GO> indicesArray(numEntries);
Array<SC> valuesArray(numEntries);
for (LO k=0; k<numEntries; k++) {
indicesArray[k] = k+i;
valuesArray[k] = 1;
}
K->insertGlobalValues(UniqueMap->getGlobalElement(i),indicesArray(),valuesArray());
}
K->fillComplete();
//Solve with GMRES
RCP<MultiVector<SC,LO,GO,NO> > xSolution = MultiVectorFactory<SC,LO,GO,NO>::Build(UniqueMap,1);
RCP<MultiVector<SC,LO,GO,NO> > xRightHandSide = MultiVectorFactory<SC,LO,GO,NO>::Build(UniqueMap,1);
xSolution->putScalar(0.0);
xRightHandSide->putScalar(1.0);
RCP<OperatorT<MultiVector<SC,LO,GO,NO> > > OpK = rcp(new XpetraOp<SC, LO, GO, NO>(K));
RCP<LinearProblem<SC,MultiVector<SC,LO,GO,NO>,OperatorT<MultiVector<SC,LO,GO,NO> > > > belosLinearProblem(new LinearProblem<SC,MultiVector<SC,LO,GO,NO>,OperatorT<MultiVector<SC,LO,GO,NO> > >(OpK,xSolution,xRightHandSide));
SolverFactory<SC,MultiVector<SC,LO,GO,NO>,OperatorT<MultiVector<SC,LO,GO,NO> > > belosFactory;
RCP<ParameterList> solverParameterList = rcp(new ParameterList());
solverParameterList->set("Convergence Tolerance",1.e-12);
solverParameterList->set("Verbosity",47);
solverParameterList->set("Output Frequency",1);
solverParameterList->set("Output Style",1);
RCP<SolverManager<SC,MultiVector<SC,LO,GO,NO>,OperatorT<MultiVector<SC,LO,GO,NO> > > > belosSoverManager = belosFactory.create("GMRES",solverParameterList);
belosSoverManager->setProblem(belosLinearProblem);
belosLinearProblem->setProblem(xSolution,xRightHandSide);
belosSoverManager->solve();
}
MPI_Finalize();
return(EXIT_SUCCESS);
}
```
@trilinos/belos Belos
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3322Epetra_CrsMatrix: InsertMyValues() is not working correctly2018-08-20T04:47:15ZJames WillenbringEpetra_CrsMatrix: InsertMyValues() is not working correctly*Created by: freaklovesmango*
I am using the InsertMyValues() method of Epetra_CrsMatrix. However, it does not set the Col Index' correctly and I do not know why. If I change the visibility of the method InsertValues() which is called b...*Created by: freaklovesmango*
I am using the InsertMyValues() method of Epetra_CrsMatrix. However, it does not set the Col Index' correctly and I do not know why. If I change the visibility of the method InsertValues() which is called by InsertMyValues() from protected/private to public and use this instead of the other, the column IDs are set correctly.
Basically, what my code does is similar to this short version:
```
double c = 0.9;
for (int r = 0; r < 6; ++r ){
crsMatrix.InsertMyValues(r, 1, &c, &r);
}
std::cout << "The Matrix with InsertMyValues(): \n " << crsMatrix << std::endl;
```
where crsMatrix is a Epetra_CrsMatrix with a serial communicator.
The output is this:
```
The Matrix with InsertMyValues():
Epetra::CrsMatrix
Number of Global Rows = 6
Number of Global Cols = 6
Number of Global Diagonals = 0
Number of Global Nonzeros = 0
Global Maximum Num Entries = 0
** Matrix is Lower Triangular **
** Matrix is Upper Triangular **
** Matrix has no diagonal **
Number of My Rows = 6
Number of My Cols = 6
Number of My Diagonals = 0
Number of My Nonzeros = 0
My Maximum Num Entries = 1
Processor Row Index Col Index Value
0 0 -1 0.9
0 1 -1 0.9
0 2 -1 0.9
0 3 -1 0.9
0 4 -1 0.9
0 5 -1 0.9
```
wheras with InsertValues() the output is correct like this:
```
The Matrix with InsertValues():
Epetra::CrsMatrix
Number of Global Rows = 6
Number of Global Cols = 6
Number of Global Diagonals = 0
Number of Global Nonzeros = 0
Global Maximum Num Entries = 0
** Matrix is Lower Triangular **
** Matrix is Upper Triangular **
** Matrix has no diagonal **
Number of My Rows = 6
Number of My Cols = 6
Number of My Diagonals = 0
Number of My Nonzeros = 0
My Maximum Num Entries = 1
Processor Row Index Col Index Value
0 0 0 0.9
0 1 1 0.9
0 2 2 0.9
0 3 3 0.9
0 4 4 0.9
0 5 5 0.9
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3494Epetra lessons don't show code2018-09-27T18:05:14ZJames WillenbringEpetra lessons don't show code*Created by: davydden*
PackageName: Epetra
HTML pages for Epetra Lessons (i.e. https://trilinos.org/docs/dev/packages/epetra/doc/html/Epetra_Lesson02.html) do not render the code. This works as expected for TPetra (i.e. https://trili...*Created by: davydden*
PackageName: Epetra
HTML pages for Epetra Lessons (i.e. https://trilinos.org/docs/dev/packages/epetra/doc/html/Epetra_Lesson02.html) do not render the code. This works as expected for TPetra (i.e. https://trilinos.org/docs/dev/packages/tpetra/doc/html/Tpetra_Lesson01.html)
@trilinos/epetra
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/3589Epetra: NumGlobalElements in Epetra_Map without MPI2018-11-08T17:55:06ZJames WillenbringEpetra: NumGlobalElements in Epetra_Map without MPI*Created by: freaklovesmango*
If I create a Epetra_CrsMatrix and let's say this matrix is 10x10 big and has 50 non-zero values. If I want to create this without MPI, what is the right number for the NumGlobalElements for the Epetra_Map?...*Created by: freaklovesmango*
If I create a Epetra_CrsMatrix and let's say this matrix is 10x10 big and has 50 non-zero values. If I want to create this without MPI, what is the right number for the NumGlobalElements for the Epetra_Map? I mean how should I think this? Is it all non-zero values, hence 50? Or maybe the entries per row?
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4038Xpetra/Epetra: link error in panzer test for intel debug static2019-04-26T16:35:24ZJames WillenbringXpetra/Epetra: link error in panzer test for intel debug static*Created by: bathmatt*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
When I try to link p...*Created by: bathmatt*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
When I try to link packages/panzer/adapters-stk/test/solver/PanzerAdaptersSTK_solver.exe I get a missing tpetra symbol for intel debug static, but intel opt static works.. No idea why. This is with a RHEL7 machine using all sems and Ross' new build scripts.
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
Here is the error message I see, no idea why the xpetra epetra map is looking for something tpetra??
```
packages/xpetra/src/libxpetra.a(Xpetra_EpetraMap.cpp.o): In function `Tpetra::Details::LocalMap<int, long, Kokkos::Device<Kokkos::OpenMP, Kokkos::HostSpace> >::LocalMap()':
```
Here is my link line
```
: && /projects/sems/install/rhel7-x86_64/sems/compiler/intel/17.0.1/openmpi/1.10.1/bin/mpicxx --std=c++11 -g -fopenmp -g packages/panzer/adapters-stk/test/solver/CMakeFiles/PanzerAdaptersSTK_solver.dir/solver.cpp.o packages/panzer/adapters-stk/test/solver/CMakeFiles/PanzerAdaptersSTK_solver.dir/__/__/__/__/phalanx/test/Utilities/Phalanx_UnitTestMain.cpp.o -o packages/panzer/adapters-stk/test/solver/PanzerAdaptersSTK_solver.exe packages/panzer/adapters-stk/src/libpanzer-stk.a packages/muelu/adapters/libmuelu-adapters.a packages/muelu/src/Interface/libmuelu-interface.a packages/muelu/src/libmuelu.a packages/teko/src/libteko.a packages/ifpack2/adapters/libifpack2-adapters.a packages/ifpack2/src/libifpack2.a packages/seacas/libraries/ioss/src/main/libio_info_lib.a packages/seacas/libraries/ioss/src/init/libIonit.a packages/seacas/libraries/ioss/src/transform/libIotr.a packages/seacas/libraries/ioss/src/heartbeat/libIohb.a packages/seacas/libraries/ioss/src/gen_struc/libIogs.a packages/seacas/libraries/ioss/src/generated/libIogn.a packages/seacas/libraries/ioss/src/visualization/libIovs.a packages/seacas/libraries/ioss/src/pamgen/libIopg.a packages/seacas/libraries/ioss/src/exo_fac/libIoexo_fac.a packages/seacas/libraries/ioss/src/exo_fpp/libIofx.a packages/seacas/libraries/ioss/src/exodus/libIoex.a packages/seacas/libraries/ioss/src/libIoss.a packages/seacas/libraries/exodus/libexodus.a packages/panzer/disc-fe/src/libpanzer-disc-fe.a packages/panzer/dof-mgr/src/libpanzer-dof-mgr.a packages/phalanx/src/libphalanx.a packages/panzer/core/src/libpanzer-core.a packages/piro/src/libpiro.a packages/muelu/adapters/libmuelu-adapters.a packages/muelu/src/Interface/libmuelu-interface.a packages/muelu/src/libmuelu.a packages/intrepid2/src/libintrepid2.a packages/sacado/src/libsacado.a packages/tempus/src/libtempus.a packages/rythmos/src/librythmos.a packages/nox/src-loca/src-thyra/liblocathyra.a packages/nox/src-loca/src-epetra/liblocaepetra.a packages/nox/src-loca/src-lapack/liblocalapack.a packages/nox/src-loca/src/libloca.a packages/nox/src-epetra/libnoxepetra.a packages/nox/src-lapack/libnoxlapack.a packages/nox/src/libnox.a packages/teko/src/libteko.a packages/ifpack2/adapters/libifpack2-adapters.a packages/ifpack2/src/libifpack2.a packages/zoltan2/src/libzoltan2.a packages/anasazi/tpetra/src/libanasazitpetra.a packages/anasazi/epetra/util/ModeLaplace/libModeLaplace.a packages/anasazi/epetra/src/libanasaziepetra.a packages/anasazi/src/libanasazi.a packages/stk/stk_io/stk_io/util/libstk_io_util.a packages/stk/stk_io/stk_io/libstk_io.a packages/seacas/libraries/ioss/src/main/libio_info_lib.a packages/seacas/libraries/ioss/src/init/libIonit.a packages/seacas/libraries/ioss/src/transform/libIotr.a packages/seacas/libraries/ioss/src/heartbeat/libIohb.a packages/seacas/libraries/ioss/src/gen_struc/libIogs.a packages/seacas/libraries/ioss/src/generated/libIogn.a packages/seacas/libraries/ioss/src/visualization/libIovs.a packages/seacas/libraries/ioss/src/pamgen/libIopg.a packages/seacas/libraries/ioss/src/exo_fac/libIoexo_fac.a packages/seacas/libraries/ioss/src/exo_fpp/libIofx.a packages/seacas/libraries/ioss/src/exodus/libIoex.a packages/seacas/libraries/ioss/src/libIoss.a packages/pamgen/src/libpamgen_extras.a packages/pamgen/src/libpamgen.a packages/stk/stk_mesh/stk_mesh/base/libstk_mesh_base.a packages/shards/src/libshards.a packages/stk/stk_topology/stk_topology/libstk_topology.a packages/stk/stk_util/stk_util/use_cases/libstk_util_use_cases.a packages/stk/stk_util/stk_util/registry/libstk_util_registry.a packages/stk/stk_util/stk_util/diag/libstk_util_diag.a packages/stk/stk_util/stk_util/environment/libstk_util_env.a packages/stk/stk_util/stk_util/parallel/libstk_util_parallel.a packages/stk/stk_util/stk_util/util/libstk_util_util.a /projects/sems/install/rhel7-x86_64/sems/tpl/boost/1.59.0/intel/17.0.1/base/lib/libboost_program_options.so /projects/sems/install/rhel7-x86_64/sems/tpl/boost/1.59.0/intel/17.0.1/base/lib/libboost_system.so packages/seacas/libraries/aprepro_lib/libaprepro_lib.a packages/seacas/libraries/exodus/libexodus.a -L/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.8.12/intel/17.0.1/openmpi/1.10.1/parallel/lib -L/projects/sems/install/rhel7-x86_64/sems/tpl/boost/1.59.0/intel/17.0.1/base/lib -L/projects/sems/install/rhel7-x86_64/sems/tpl/netcdf/4.4.1/intel/17.0.1/openmpi/1.10.1/exo_parallel/lib -L/lib -lboost_program_options -lboost_system -lnetcdf -lpnetcdf -lhdf5 -lcurl -lhdf5_hl -lz packages/stratimikos/src/libstratimikos.a packages/stratimikos/adapters/belos/src/libstratimikosbelos.a packages/stratimikos/adapters/amesos2/src/libstratimikosamesos2.a packages/stratimikos/adapters/aztecoo/src/libstratimikosaztecoo.a packages/stratimikos/adapters/amesos/src/libstratimikosamesos.a packages/stratimikos/adapters/ml/src/libstratimikosml.a packages/stratimikos/adapters/ifpack/src/libstratimikosifpack.a packages/amesos2/src/libamesos2.a packages/ml/src/libml.a packages/galeri/src-xpetra/libgaleri-xpetra.a packages/galeri/src-epetra/libgaleri-epetra.a packages/ifpack/src/libifpack.a packages/amesos/src/libamesos.a packages/common/auxiliarySoftware/SuiteSparse/src/libtrilinosss.a packages/belos/xpetra/src/libbelosxpetra.a packages/belos/tpetra/src/libbelostpetra.a packages/belos/epetra/src/libbelosepetra.a packages/belos/src/libbelos.a packages/xpetra/sup/libxpetra-sup.a packages/xpetra/src/libxpetra.a packages/thyra/adapters/tpetra/src/libthyratpetra.a packages/thyra/adapters/epetraext/src/libthyraepetraext.a packages/epetraext/src/libepetraext.a packages/thyra/adapters/epetra/src/libthyraepetra.a packages/thyra/core/src/libthyracore.a packages/rtop/src/librtop.a packages/tpetra/core/ext/libtpetraext.a packages/tpetra/core/inout/libtpetrainout.a packages/tpetra/core/src/libtpetra.a packages/kokkos-kernels/src/libkokkoskernels.a packages/kokkos/algorithms/src/libkokkosalgorithms.a packages/kokkos/containers/src/libkokkoscontainers.a packages/tpetra/classic/LinAlg/libtpetraclassiclinalg.a packages/tpetra/classic/NodeAPI/libtpetraclassicnodeapi.a packages/tpetra/classic/src/libtpetraclassic.a packages/aztecoo/src/libaztecoo.a packages/triutils/src/libtriutils.a packages/epetra/src/libepetra.a packages/teuchos/kokkoscomm/src/libteuchoskokkoscomm.a packages/teuchos/kokkoscompat/src/libteuchoskokkoscompat.a packages/teuchos/remainder/src/libteuchosremainder.a packages/teuchos/numerics/src/libteuchosnumerics.a packages/teuchos/comm/src/libteuchoscomm.a packages/teuchos/parameterlist/src/libteuchosparameterlist.a packages/teuchos/parser/src/libteuchosparser.a -mkl packages/teuchos/core/src/libteuchoscore.a packages/kokkos/core/src/libkokkoscore.a -ldl packages/zoltan/src/libzoltan.a -lm && :
```
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/<teamName>
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Expectations
<!---
Tell us what you think should happen, how you think things should work, what
you would like to see in the documentation, etc.
-->
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
## Motivation and Context
<!---
How has this expectation failure affected you? What are you trying to
accomplish? Why do we need to address this? What does it have to do with
anything? Providing context helps us come up with a solution that is most
useful in the real world.
-->
## Definition of Done
<!---
Tell us what needs to happen. If necessary, give us a task list along the
lines of:
- [ ] First do this.
- [ ] Then do that.
- [ ] Also this other thing.
-->
## Possible Solution
<!---
Not obligatory, but suggest a fix for the bug or documentation, or suggest
ideas on how to implement the addition or change.
-->
## Steps to Reproduce
<!---
Provide a link to a live example, or an unambiguous set of steps to reproduce
this issue. Include code to reproduce, if relevant.
1. Do this.
1. Do that.
1. Shake fist angrily at computer.
-->
## Your Environment
<!---
Include relevant details about your environment such that we can replicate this
issue.
-->
- **Relevant repo SHA1s:**
- **Relevant configure flags or configure script:**
- **Operating system and version:**
- **Compiler and TPL versions:**
## Related Issues
<!---
If applicable, let us know how this bug is related to any other open issues:
-->
* Blocks
* Is blocked by
* Follows
* Precedes
* Related to
* Part of
* Composed of
## Additional Information
<!---
Anything else that might be helpful for us to know in addressing this issue:
* Configure log file:
* Build log file:
* Test log file:
* When was the last time everything worked (date/time; SHA1s; etc.)?
* What did you do that made the bug rear its ugly head?
* Have you tried turning it off and on again?
-->
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4103Epetra: Closing old PR #503 "Updated minimal example Epetra_CrsMatrix.h ..." 2018-12-23T19:01:27ZJames WillenbringEpetra: Closing old PR #503 "Updated minimal example Epetra_CrsMatrix.h ..." *Created by: william76*
@trilinos/epetra
Pull Request #503 "WIP: Updated minimal example Epetra_CrsMatrix.h and Epetra_CrsMatrix.cpp…" is really old and appears to be stale and/or abandoned. I'm closing that PR and creating this is...*Created by: william76*
@trilinos/epetra
Pull Request #503 "WIP: Updated minimal example Epetra_CrsMatrix.h and Epetra_CrsMatrix.cpp…" is really old and appears to be stale and/or abandoned. I'm closing that PR and creating this issue to link to it.
I'm doing this because we need to close out some of the old PR's due to some GitHub limitations on the number of checks/hour that are allowed. The pull request autotester uses a polling model to check existing pull requests' status flags, etc. and we have occasionally hit that limit, which causes GitHub to reject the queries and can cause the Autotester to fail on a PR. If this PR needs to be brought back to life it can easily be reopened on the pull request page.
FYI: @michelemartone @mhoemmen https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4105Closing old PR #1019 "Misleading indentation (whitespace only)" 2018-12-20T18:57:01ZJames WillenbringClosing old PR #1019 "Misleading indentation (whitespace only)" *Created by: william76*
Pull Request #1019 "Misleading indentation (whitespace only)" is really old and appears to be stale and/or abandoned. I'm closing that PR and creating this issue to link to it.
I'm doing this because we need...*Created by: william76*
Pull Request #1019 "Misleading indentation (whitespace only)" is really old and appears to be stale and/or abandoned. I'm closing that PR and creating this issue to link to it.
I'm doing this because we need to close out some of the old PR's due to some GitHub limitations on the number of checks/hour that are allowed. The pull request autotester uses a polling model to check existing pull requests' status flags, etc. and we have occasionally hit that limit, which causes GitHub to reject the queries and can cause the Autotester to fail on a PR. If this PR needs to be brought back to life it can easily be reopened on the pull request page.
If this PR is truly dead, please close out this issue ticket.
FYI: @nschloe @egboman
PR #1019 touches files in these packages:
@trilinos/epetra
@trilinos/aztecoo
@trilinos/epetraext
@trilinos/isorropia
@trilinos/ml
@trilinos/pamgen https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4468Epetra: Remove build warnings2019-03-15T03:39:45ZJames WillenbringEpetra: Remove build warnings*Created by: ZUUL42*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Replace <team...*Created by: ZUUL42*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/epetra
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Labels: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Expectations
<!---
Tell us what you think should happen, how you think things should work, what
you would like to see in the documentation, etc.
-->
Epetra builds should not emit any warnings that will be promoted to errors once Werror is set in the GCC 7.2.0 automated build.
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
Currently Epetra has a number of warnings that need to be handled before we can set Werror for all packages.
A recent test build was performed with -Werror set for Epetra. The CDash report can be found [here](https://testing-vm.sandia.gov/cdash/viewBuildError.php?buildid=4584123).
## Motivation, Context and Related Issues
<!---
How has this expectation failure affected you? What are you trying to
accomplish? Why do we need to address this? What does it have to do with
anything? Providing context helps us come up with a solution that is most
useful in the real world.
-->
Issue #3178 is working toward turning Warnings as Errors on for all packages.https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4651Piro: Epetra classes to check for int type before calling NumGlobalElements2019-03-19T15:50:51ZJames WillenbringPiro: Epetra classes to check for int type before calling NumGlobalElements*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that an...*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/piro
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Expectations
<!---
Tell us what you think should happen, how you think things should work, what
you would like to see in the documentation, etc.
-->
One should be able to use Epetra maps with long long global indices, and still use Piro.
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
If the Epetra maps are built with long long global indices, piro epetra classes to not work, due to calls to `NumGlobalElements` rather than `NumGlobalElements64`.
## Motivation and Context
<!---
How has this expectation failure affected you? What are you trying to
accomplish? Why do we need to address this? What does it have to do with
anything? Providing context helps us come up with a solution that is most
useful in the real world.
-->
Albany needs to use 64bits global ordinals. Therefore, the epetra maps store long long global ordinals. However, the method `NumGlobalElements` in `Epetra_BlockMap` returns an int. One should use `NumGlobalElements64` to get a 64bits integer return value. Even more: the former method throws if the map actually stores 64bits integers.
## Definition of Done
<!---
Tell us what needs to happen. If necessary, give us a task list along the
lines of:
- [ ] First do this.
- [ ] Then do that.
- [ ] Also this other thing.
-->
The epetra classes in piro (e.g., Piro::Epetra::NOXSolver) should work with both 32 and 64 bits integers.
## Possible Solution
<!---
Not obligatory, but suggest a fix for the bug or documentation, or suggest
ideas on how to implement the addition or change.
-->
Before each call to NumGlobalElements, check for the type of indices. If they are int (32bits), use `NumGlobalElements`, while if they are long long (64bits), use `NumGlobalElements64`.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/4663Epetra_CrsMatrix::Multiply with locally replicated range map question2019-03-20T17:46:08ZJames WillenbringEpetra_CrsMatrix::Multiply with locally replicated range map question*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that an...*Created by: bartgol*
<!---
Provide a general summary of the issue in the Title above. If this issue
pertains to a particular package in Trilinos, it's worthwhile to start the
title with "PackageName: ".
-->
<!---
Note that anything between these delimiters is a comment that will not appear
in the issue description once created. Click on the Preview tab to see what
everything will look like when you submit.
-->
<!---
Feel free to delete anything from this template that is not applicable to the
issue you are submitting.
-->
<!---
Replace <teamName> below with the appropriate Trilinos package/team name.
-->
@trilinos/epetra
<!---
Assignees: If you know anyone who should likely tackle this issue, select them
from the Assignees drop-down on the right.
-->
<!---
Lables: Choose any applicable package names from the Labels drop-down on the
right. Additionally, choose a label to indicate the type of issue, for
instance, bug, build, documentation, enhancement, etc.
-->
## Current Behavior
<!---
Tell us how the current behavior fails to meet your expectations in some way.
-->
Currently, if the range map is locally replicated, the result of `A.Apply(X,Y)` is not what I expected. In particular, Epetra does a final call `Y.Reduce()`, which ends up giving a Y vector that is numProc times larger than what I expected. Why is Epetra doing this? I.e., why are we reducing the output vector, in case of a locally replicated range map? Isn't the result (before the Reduce() call) already what one most likely wants? The user can always call `Y.Reduce()` if he is interested in that.
## Possible Solution
<!---
Not obligatory, but suggest a fix for the bug or documentation, or suggest
ideas on how to implement the addition or change.
-->
Assuming my concern is correct, simply remove line 3212 (and the likes in other branches of if statements) in Epetra_CrsMatrix.cpp