From d13d6671660547a8e1f6fef7b643baba9ec3b569 Mon Sep 17 00:00:00 2001 From: Stefano Zampini Date: Wed, 12 Apr 2023 13:17:18 +0300 Subject: [PATCH] All get_mpi_communicator methods now return MPI_Comm by value --- .../changes/incompatibilities/20230412Zampini | 4 + .../deal.II/base/communication_pattern_base.h | 4 +- include/deal.II/base/mpi.h | 2 +- .../base/mpi_noncontiguous_partitioner.h | 4 +- include/deal.II/base/partitioner.h | 6 +- include/deal.II/lac/la_parallel_vector.h | 7 +- .../deal.II/lac/petsc_block_sparse_matrix.h | 5 +- include/deal.II/lac/petsc_block_vector.h | 14 +- .../deal.II/lac/petsc_communication_pattern.h | 4 +- include/deal.II/lac/petsc_matrix_base.h | 13 +- include/deal.II/lac/petsc_precondition.h | 4 +- include/deal.II/lac/petsc_vector_base.h | 13 +- .../lac/trilinos_block_sparse_matrix.h | 2 +- .../trilinos_epetra_communication_pattern.h | 2 +- include/deal.II/lac/trilinos_epetra_vector.h | 2 +- include/deal.II/lac/trilinos_precondition.h | 2 +- include/deal.II/lac/trilinos_sparse_matrix.h | 2 +- .../deal.II/lac/trilinos_sparsity_pattern.h | 3 +- .../trilinos_tpetra_communication_pattern.h | 2 +- include/deal.II/lac/trilinos_tpetra_vector.h | 2 +- include/deal.II/lac/trilinos_vector.h | 15 +- .../matrix_free/vector_data_exchange.h | 2 +- include/deal.II/multigrid/multigrid.h | 2 +- source/base/mpi_noncontiguous_partitioner.cc | 2 +- source/lac/petsc_communication_pattern.cc | 7 +- .../lac/petsc_parallel_block_sparse_matrix.cc | 9 +- source/lac/petsc_precondition.cc | 8 +- .../trilinos_epetra_communication_pattern.cc | 2 +- .../trilinos_tpetra_communication_pattern.cc | 2 +- source/matrix_free/vector_data_exchange.cc | 2 +- tests/sundials/n_vector.cc | 10 +- ...n=1.with_trilinos=off.with_petsc=on.output | 133 ++++++++++++++++++ ...n=1.with_trilinos=on.with_petsc=off.output | 133 ++++++++++++++++++ 33 files changed, 335 insertions(+), 89 deletions(-) create mode 100644 doc/news/changes/incompatibilities/20230412Zampini create mode 100644 tests/sundials/n_vector.mpirun=1.with_trilinos=off.with_petsc=on.output create mode 100644 tests/sundials/n_vector.mpirun=1.with_trilinos=on.with_petsc=off.output diff --git a/doc/news/changes/incompatibilities/20230412Zampini b/doc/news/changes/incompatibilities/20230412Zampini new file mode 100644 index 0000000000..be73f52e6b --- /dev/null +++ b/doc/news/changes/incompatibilities/20230412Zampini @@ -0,0 +1,4 @@ +Changed: The get_mpi_communicator() methods no longer return references to MPI_Comm. +They all now return the MPI_Comm by value. +
+(Stefano Zampini, 2023/04/12) diff --git a/include/deal.II/base/communication_pattern_base.h b/include/deal.II/base/communication_pattern_base.h index fb3c24c8f3..e1f7866618 100644 --- a/include/deal.II/base/communication_pattern_base.h +++ b/include/deal.II/base/communication_pattern_base.h @@ -91,9 +91,9 @@ namespace Utilities const MPI_Comm &communicator) = 0; /** - * Return a constant reference to the underlying MPI communicator. + * Return the underlying MPI communicator. */ - virtual const MPI_Comm & + virtual MPI_Comm get_mpi_communicator() const = 0; }; diff --git a/include/deal.II/base/mpi.h b/include/deal.II/base/mpi.h index 17198a215d..7582cf1f69 100644 --- a/include/deal.II/base/mpi.h +++ b/include/deal.II/base/mpi.h @@ -277,7 +277,7 @@ namespace Utilities /** * Access the stored communicator. */ - const MPI_Comm & + MPI_Comm operator*() const { return comm; diff --git a/include/deal.II/base/mpi_noncontiguous_partitioner.h b/include/deal.II/base/mpi_noncontiguous_partitioner.h index e0927bbf00..8b62a5f9b3 100644 --- a/include/deal.II/base/mpi_noncontiguous_partitioner.h +++ b/include/deal.II/base/mpi_noncontiguous_partitioner.h @@ -189,9 +189,9 @@ namespace Utilities memory_consumption(); /** - * Return the underlying communicator. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const override; void diff --git a/include/deal.II/base/partitioner.h b/include/deal.II/base/partitioner.h index 479e29134c..e5bb2703e7 100644 --- a/include/deal.II/base/partitioner.h +++ b/include/deal.II/base/partitioner.h @@ -474,9 +474,9 @@ namespace Utilities n_mpi_processes() const; /** - * Return the MPI communicator underlying the partitioner object. + * Return the underlying MPI communicator. */ - virtual const MPI_Comm & + virtual MPI_Comm get_mpi_communicator() const override; /** @@ -985,7 +985,7 @@ namespace Utilities - inline const MPI_Comm & + inline MPI_Comm Partitioner::get_mpi_communicator() const { return communicator; diff --git a/include/deal.II/lac/la_parallel_vector.h b/include/deal.II/lac/la_parallel_vector.h index afd9a24bcd..da5f4ef398 100644 --- a/include/deal.II/lac/la_parallel_vector.h +++ b/include/deal.II/lac/la_parallel_vector.h @@ -1158,10 +1158,9 @@ namespace LinearAlgebra /** @{ */ /** - * Return a reference to the MPI communicator object in use with this - * vector. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; /** @@ -1722,7 +1721,7 @@ namespace LinearAlgebra template - inline const MPI_Comm & + inline MPI_Comm Vector::get_mpi_communicator() const { return partitioner->get_mpi_communicator(); diff --git a/include/deal.II/lac/petsc_block_sparse_matrix.h b/include/deal.II/lac/petsc_block_sparse_matrix.h index 7b9a67ff95..c78b412fb1 100644 --- a/include/deal.II/lac/petsc_block_sparse_matrix.h +++ b/include/deal.II/lac/petsc_block_sparse_matrix.h @@ -284,10 +284,9 @@ namespace PETScWrappers n_nonzero_elements() const; /** - * Return a reference to the MPI communicator object in use with this - * matrix. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; /** diff --git a/include/deal.II/lac/petsc_block_vector.h b/include/deal.II/lac/petsc_block_vector.h index ed85850912..3935a0f2c7 100644 --- a/include/deal.II/lac/petsc_block_vector.h +++ b/include/deal.II/lac/petsc_block_vector.h @@ -265,10 +265,9 @@ namespace PETScWrappers has_ghost_elements() const; /** - * Return a reference to the MPI communicator object in use with this - * vector. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; /** @@ -516,15 +515,10 @@ namespace PETScWrappers - inline const MPI_Comm & + inline MPI_Comm BlockVector::get_mpi_communicator() const { - static MPI_Comm comm = PETSC_COMM_SELF; - MPI_Comm pcomm = - PetscObjectComm(reinterpret_cast(petsc_nest_vector)); - if (pcomm != MPI_COMM_NULL) - comm = pcomm; - return comm; + return PetscObjectComm(reinterpret_cast(petsc_nest_vector)); } inline bool diff --git a/include/deal.II/lac/petsc_communication_pattern.h b/include/deal.II/lac/petsc_communication_pattern.h index eabadfb448..be5eab800d 100644 --- a/include/deal.II/lac/petsc_communication_pattern.h +++ b/include/deal.II/lac/petsc_communication_pattern.h @@ -171,7 +171,7 @@ namespace PETScWrappers /** * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const override; /** @@ -354,7 +354,7 @@ namespace PETScWrappers /** * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const override; protected: diff --git a/include/deal.II/lac/petsc_matrix_base.h b/include/deal.II/lac/petsc_matrix_base.h index 148cc48944..ba025c4d6c 100644 --- a/include/deal.II/lac/petsc_matrix_base.h +++ b/include/deal.II/lac/petsc_matrix_base.h @@ -697,10 +697,9 @@ namespace PETScWrappers local_domain() const; /** - * Return a reference to the MPI communicator object in use with this - * matrix. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; /** @@ -1665,14 +1664,10 @@ namespace PETScWrappers prepare_action(VectorOperation::insert); } - inline const MPI_Comm & + inline MPI_Comm MatrixBase::get_mpi_communicator() const { - static MPI_Comm comm = PETSC_COMM_SELF; - MPI_Comm pcomm = PetscObjectComm(reinterpret_cast(matrix)); - if (pcomm != MPI_COMM_NULL) - comm = pcomm; - return comm; + return PetscObjectComm(reinterpret_cast(matrix)); } # endif // DOXYGEN diff --git a/include/deal.II/lac/petsc_precondition.h b/include/deal.II/lac/petsc_precondition.h index c0b2f6189e..a6b590b971 100644 --- a/include/deal.II/lac/petsc_precondition.h +++ b/include/deal.II/lac/petsc_precondition.h @@ -109,9 +109,9 @@ namespace PETScWrappers get_pc() const; /** - * Return the MPI communicator object used by this preconditioner. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; protected: diff --git a/include/deal.II/lac/petsc_vector_base.h b/include/deal.II/lac/petsc_vector_base.h index a5ccbd0d46..61e24a45cb 100644 --- a/include/deal.II/lac/petsc_vector_base.h +++ b/include/deal.II/lac/petsc_vector_base.h @@ -803,10 +803,9 @@ namespace PETScWrappers memory_consumption() const; /** - * Return a reference to the MPI communicator object in use with this - * object. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; protected: @@ -1178,14 +1177,10 @@ namespace PETScWrappers return operator()(index); } - inline const MPI_Comm & + inline MPI_Comm VectorBase::get_mpi_communicator() const { - static MPI_Comm comm = PETSC_COMM_SELF; - MPI_Comm pcomm = PetscObjectComm(reinterpret_cast(vector)); - if (pcomm != MPI_COMM_NULL) - comm = pcomm; - return comm; + return PetscObjectComm(reinterpret_cast(vector)); } inline void diff --git a/include/deal.II/lac/trilinos_block_sparse_matrix.h b/include/deal.II/lac/trilinos_block_sparse_matrix.h index 8bb38cbb9b..26dc8eb32e 100644 --- a/include/deal.II/lac/trilinos_block_sparse_matrix.h +++ b/include/deal.II/lac/trilinos_block_sparse_matrix.h @@ -223,7 +223,7 @@ namespace TrilinosWrappers n_nonzero_elements() const; /** - * Return the MPI communicator object in use with this matrix. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/include/deal.II/lac/trilinos_epetra_communication_pattern.h b/include/deal.II/lac/trilinos_epetra_communication_pattern.h index 2168c0af61..b6e8a47068 100644 --- a/include/deal.II/lac/trilinos_epetra_communication_pattern.h +++ b/include/deal.II/lac/trilinos_epetra_communication_pattern.h @@ -63,7 +63,7 @@ namespace LinearAlgebra /** * Return the underlying MPI communicator. */ - virtual const MPI_Comm & + virtual MPI_Comm get_mpi_communicator() const override; /** diff --git a/include/deal.II/lac/trilinos_epetra_vector.h b/include/deal.II/lac/trilinos_epetra_vector.h index 10abb5ce7b..8be058b6a6 100644 --- a/include/deal.II/lac/trilinos_epetra_vector.h +++ b/include/deal.II/lac/trilinos_epetra_vector.h @@ -291,7 +291,7 @@ namespace LinearAlgebra locally_owned_size() const; /** - * Return the MPI communicator object in use with this object. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/include/deal.II/lac/trilinos_precondition.h b/include/deal.II/lac/trilinos_precondition.h index d1f6a213a1..95a8654a2f 100644 --- a/include/deal.II/lac/trilinos_precondition.h +++ b/include/deal.II/lac/trilinos_precondition.h @@ -114,7 +114,7 @@ namespace TrilinosWrappers clear(); /** - * Return the MPI communicator object in use with this matrix. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/include/deal.II/lac/trilinos_sparse_matrix.h b/include/deal.II/lac/trilinos_sparse_matrix.h index daab898a2f..b28d0b9d25 100644 --- a/include/deal.II/lac/trilinos_sparse_matrix.h +++ b/include/deal.II/lac/trilinos_sparse_matrix.h @@ -973,7 +973,7 @@ namespace TrilinosWrappers memory_consumption() const; /** - * Return the MPI communicator object in use with this matrix. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/include/deal.II/lac/trilinos_sparsity_pattern.h b/include/deal.II/lac/trilinos_sparsity_pattern.h index 0f918eea89..86af299349 100644 --- a/include/deal.II/lac/trilinos_sparsity_pattern.h +++ b/include/deal.II/lac/trilinos_sparsity_pattern.h @@ -812,10 +812,11 @@ namespace TrilinosWrappers range_partitioner() const; /** - * Return the MPI communicator object in use with this matrix. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; + /** @} */ /** diff --git a/include/deal.II/lac/trilinos_tpetra_communication_pattern.h b/include/deal.II/lac/trilinos_tpetra_communication_pattern.h index 927c935370..8dd027b754 100644 --- a/include/deal.II/lac/trilinos_tpetra_communication_pattern.h +++ b/include/deal.II/lac/trilinos_tpetra_communication_pattern.h @@ -62,7 +62,7 @@ namespace LinearAlgebra /** * Return the underlying MPI communicator. */ - virtual const MPI_Comm & + virtual MPI_Comm get_mpi_communicator() const override; /** diff --git a/include/deal.II/lac/trilinos_tpetra_vector.h b/include/deal.II/lac/trilinos_tpetra_vector.h index 3a53c80694..bb2094485d 100644 --- a/include/deal.II/lac/trilinos_tpetra_vector.h +++ b/include/deal.II/lac/trilinos_tpetra_vector.h @@ -347,7 +347,7 @@ namespace LinearAlgebra locally_owned_size() const; /** - * Return the MPI communicator object in use with this object. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/include/deal.II/lac/trilinos_vector.h b/include/deal.II/lac/trilinos_vector.h index 0a88440e15..45a8f37448 100644 --- a/include/deal.II/lac/trilinos_vector.h +++ b/include/deal.II/lac/trilinos_vector.h @@ -1265,10 +1265,9 @@ namespace TrilinosWrappers memory_consumption() const; /** - * Return a reference to the MPI communicator object in use with this - * object. + * Return the underlying MPI communicator. */ - const MPI_Comm & + MPI_Comm get_mpi_communicator() const; /** @} */ @@ -2175,18 +2174,16 @@ namespace TrilinosWrappers - inline const MPI_Comm & + inline MPI_Comm Vector::get_mpi_communicator() const { - static MPI_Comm comm; - const Epetra_MpiComm *mpi_comm = dynamic_cast(&vector->Map().Comm()); - comm = mpi_comm->Comm(); - - return comm; + return mpi_comm->Comm(); } + + template Vector::Vector(const IndexSet & parallel_partitioner, const dealii::Vector &v, diff --git a/include/deal.II/matrix_free/vector_data_exchange.h b/include/deal.II/matrix_free/vector_data_exchange.h index e3f285edb7..9c2f9cc040 100644 --- a/include/deal.II/matrix_free/vector_data_exchange.h +++ b/include/deal.II/matrix_free/vector_data_exchange.h @@ -281,7 +281,7 @@ namespace internal virtual types::global_dof_index size() const override; - const MPI_Comm & + MPI_Comm get_sm_mpi_communicator() const; void diff --git a/include/deal.II/multigrid/multigrid.h b/include/deal.II/multigrid/multigrid.h index ed844ba369..d704bc048b 100644 --- a/include/deal.II/multigrid/multigrid.h +++ b/include/deal.II/multigrid/multigrid.h @@ -578,7 +578,7 @@ public: locally_owned_domain_indices(const unsigned int block = 0) const; /** - * Return the MPI communicator object in use with this preconditioner. + * Return the underlying MPI communicator. */ MPI_Comm get_mpi_communicator() const; diff --git a/source/base/mpi_noncontiguous_partitioner.cc b/source/base/mpi_noncontiguous_partitioner.cc index ac842e2ff1..9920482537 100644 --- a/source/base/mpi_noncontiguous_partitioner.cc +++ b/source/base/mpi_noncontiguous_partitioner.cc @@ -80,7 +80,7 @@ namespace Utilities - const MPI_Comm & + MPI_Comm NoncontiguousPartitioner::get_mpi_communicator() const { return communicator; diff --git a/source/lac/petsc_communication_pattern.cc b/source/lac/petsc_communication_pattern.cc index f89f9a93c3..884019eefa 100644 --- a/source/lac/petsc_communication_pattern.cc +++ b/source/lac/petsc_communication_pattern.cc @@ -249,11 +249,10 @@ namespace PETScWrappers AssertPETSc(PetscSFDestroy(&sf)); } - const MPI_Comm & + MPI_Comm CommunicationPattern::get_mpi_communicator() const { - static MPI_Comm comm = PetscObjectComm(reinterpret_cast(sf)); - return comm; + return PetscObjectComm(reinterpret_cast(sf)); } template @@ -392,7 +391,7 @@ namespace PETScWrappers n_ghost_indices_larger = larger_ghost_indices.n_elements(); } - const MPI_Comm & + MPI_Comm Partitioner::get_mpi_communicator() const { return ghost.get_mpi_communicator(); diff --git a/source/lac/petsc_parallel_block_sparse_matrix.cc b/source/lac/petsc_parallel_block_sparse_matrix.cc index fdaa00f15f..b643610107 100644 --- a/source/lac/petsc_parallel_block_sparse_matrix.cc +++ b/source/lac/petsc_parallel_block_sparse_matrix.cc @@ -280,15 +280,10 @@ namespace PETScWrappers - const MPI_Comm & + MPI_Comm BlockSparseMatrix::get_mpi_communicator() const { - static MPI_Comm comm = PETSC_COMM_SELF; - MPI_Comm pcomm = - PetscObjectComm(reinterpret_cast(petsc_nest_matrix)); - if (pcomm != MPI_COMM_NULL) - comm = pcomm; - return comm; + return PetscObjectComm(reinterpret_cast(petsc_nest_matrix)); } BlockSparseMatrix::operator const Mat &() const diff --git a/source/lac/petsc_precondition.cc b/source/lac/petsc_precondition.cc index 1a7701a7e5..55ba96edd2 100644 --- a/source/lac/petsc_precondition.cc +++ b/source/lac/petsc_precondition.cc @@ -90,14 +90,10 @@ namespace PETScWrappers AssertThrow(ierr == 0, ExcPETScError(ierr)); } - const MPI_Comm & + MPI_Comm PreconditionBase::get_mpi_communicator() const { - static MPI_Comm comm = PETSC_COMM_SELF; - MPI_Comm pcomm = PetscObjectComm(reinterpret_cast(pc)); - if (pcomm != MPI_COMM_NULL) - comm = pcomm; - return comm; + return PetscObjectComm(reinterpret_cast(pc)); } void diff --git a/source/lac/trilinos_epetra_communication_pattern.cc b/source/lac/trilinos_epetra_communication_pattern.cc index 3761e27d62..a5d010bb11 100644 --- a/source/lac/trilinos_epetra_communication_pattern.cc +++ b/source/lac/trilinos_epetra_communication_pattern.cc @@ -65,7 +65,7 @@ namespace LinearAlgebra - const MPI_Comm & + MPI_Comm CommunicationPattern::get_mpi_communicator() const { return *comm; diff --git a/source/lac/trilinos_tpetra_communication_pattern.cc b/source/lac/trilinos_tpetra_communication_pattern.cc index 795ce68185..303ab93521 100644 --- a/source/lac/trilinos_tpetra_communication_pattern.cc +++ b/source/lac/trilinos_tpetra_communication_pattern.cc @@ -71,7 +71,7 @@ namespace LinearAlgebra - const MPI_Comm & + MPI_Comm CommunicationPattern::get_mpi_communicator() const { return *comm; diff --git a/source/matrix_free/vector_data_exchange.cc b/source/matrix_free/vector_data_exchange.cc index 6b6e146004..4484dff5b3 100644 --- a/source/matrix_free/vector_data_exchange.cc +++ b/source/matrix_free/vector_data_exchange.cc @@ -1368,7 +1368,7 @@ namespace internal - const MPI_Comm & + MPI_Comm Full::get_sm_mpi_communicator() const { return this->comm_sm; diff --git a/tests/sundials/n_vector.cc b/tests/sundials/n_vector.cc index 4cb04da272..03ef90223e 100644 --- a/tests/sundials/n_vector.cc +++ b/tests/sundials/n_vector.cc @@ -130,7 +130,7 @@ namespace return vector; } - +#ifdef DEAL_II_WITH_TRILINOS template <> TrilinosWrappers::MPI::Vector create_test_vector(const double value) @@ -156,7 +156,9 @@ namespace vector = value; return vector; } +#endif +#ifdef DEAL_II_WITH_PETSC template <> PETScWrappers::MPI::Vector create_test_vector(const double value) @@ -182,6 +184,7 @@ namespace vector = value; return vector; } +#endif template bool @@ -1008,18 +1011,21 @@ main(int argc, char **argv) "LinearAlgebra::distributed::Vector"); run_all_tests>( "LinearAlgebra::distributed::BlockVector"); +#ifdef DEAL_II_WITH_TRILINOS run_all_tests("TrilinosWrappers::MPI::Vector"); run_all_tests( "TrilinosWrappers::MPI::BlockVector"); +#endif +#ifdef DEAL_II_WITH_PETSC run_all_tests("PETScWrappers::MPI::Vector"); run_all_tests( "PETScWrappers::MPI::BlockVector"); - // although the memory would be cleared in ~MPI_InitFinalize it needs to be // done manually to satisfy the PETSc memory check inside ~MPILogInitAll, // which is invoked first GrowingVectorMemory::release_unused_memory(); GrowingVectorMemory::release_unused_memory(); +#endif #if DEAL_II_SUNDIALS_VERSION_GTE(6, 0, 0) SUNContext_Free(&global_nvector_context); diff --git a/tests/sundials/n_vector.mpirun=1.with_trilinos=off.with_petsc=on.output b/tests/sundials/n_vector.mpirun=1.with_trilinos=off.with_petsc=on.output new file mode 100644 index 0000000000..0a1ccaeb3f --- /dev/null +++ b/tests/sundials/n_vector.mpirun=1.with_trilinos=off.with_petsc=on.output @@ -0,0 +1,133 @@ + +DEAL:0:Vector::test_nvector_view_unwrap OK +DEAL:0:Vector::test_get_vector_id OK +DEAL:0:Vector::test_clone OK +DEAL:0:Vector::test_destroy OK +DEAL:0:Vector::test_get_communicator OK +DEAL:0:Vector::test_length OK +DEAL:0:Vector::test_linear_sum OK +DEAL:0:Vector::test_dot_product OK +DEAL:0:Vector::test_set_constant OK +DEAL:0:Vector::test_add_constant OK +DEAL:0:Vector::test_elementwise_product OK +DEAL:0:Vector::test_elementwise_div OK +DEAL:0:Vector::test_elementwise_inv OK +DEAL:0:Vector::test_elementwise_abs OK +DEAL:0:Vector::test_weighted_rms_norm OK +DEAL:0:Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:Vector::test_weighted_l2_norm OK +DEAL:0:Vector::test_max_norm OK +DEAL:0:Vector::test_l1_norm OK +DEAL:0:Vector::test_min_element OK +DEAL:0:Vector::test_scale OK +DEAL:0:BlockVector::test_nvector_view_unwrap OK +DEAL:0:BlockVector::test_get_vector_id OK +DEAL:0:BlockVector::test_clone OK +DEAL:0:BlockVector::test_destroy OK +DEAL:0:BlockVector::test_get_communicator OK +DEAL:0:BlockVector::test_length OK +DEAL:0:BlockVector::test_linear_sum OK +DEAL:0:BlockVector::test_dot_product OK +DEAL:0:BlockVector::test_set_constant OK +DEAL:0:BlockVector::test_add_constant OK +DEAL:0:BlockVector::test_elementwise_product OK +DEAL:0:BlockVector::test_elementwise_div OK +DEAL:0:BlockVector::test_elementwise_inv OK +DEAL:0:BlockVector::test_elementwise_abs OK +DEAL:0:BlockVector::test_weighted_rms_norm OK +DEAL:0:BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:BlockVector::test_weighted_l2_norm OK +DEAL:0:BlockVector::test_max_norm OK +DEAL:0:BlockVector::test_l1_norm OK +DEAL:0:BlockVector::test_min_element OK +DEAL:0:BlockVector::test_scale OK +DEAL:0:LinearAlgebra::distributed::Vector::test_nvector_view_unwrap OK +DEAL:0:LinearAlgebra::distributed::Vector::test_get_vector_id OK +DEAL:0:LinearAlgebra::distributed::Vector::test_clone OK +DEAL:0:LinearAlgebra::distributed::Vector::test_destroy OK +DEAL:0:LinearAlgebra::distributed::Vector::test_get_communicator OK +DEAL:0:LinearAlgebra::distributed::Vector::test_length OK +DEAL:0:LinearAlgebra::distributed::Vector::test_linear_sum OK +DEAL:0:LinearAlgebra::distributed::Vector::test_dot_product OK +DEAL:0:LinearAlgebra::distributed::Vector::test_set_constant OK +DEAL:0:LinearAlgebra::distributed::Vector::test_add_constant OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_product OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_div OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_inv OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_abs OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_l2_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_max_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_l1_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_min_element OK +DEAL:0:LinearAlgebra::distributed::Vector::test_scale OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_nvector_view_unwrap OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_get_vector_id OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_clone OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_destroy OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_get_communicator OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_length OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_linear_sum OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_dot_product OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_set_constant OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_add_constant OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_product OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_div OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_inv OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_abs OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_l2_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_max_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_l1_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_min_element OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_scale OK +DEAL:0:PETScWrappers::MPI::Vector::test_nvector_view_unwrap OK +DEAL:0:PETScWrappers::MPI::Vector::test_get_vector_id OK +DEAL:0:PETScWrappers::MPI::Vector::test_clone OK +DEAL:0:PETScWrappers::MPI::Vector::test_destroy OK +DEAL:0:PETScWrappers::MPI::Vector::test_get_communicator OK +DEAL:0:PETScWrappers::MPI::Vector::test_length OK +DEAL:0:PETScWrappers::MPI::Vector::test_linear_sum OK +DEAL:0:PETScWrappers::MPI::Vector::test_dot_product OK +DEAL:0:PETScWrappers::MPI::Vector::test_set_constant OK +DEAL:0:PETScWrappers::MPI::Vector::test_add_constant OK +DEAL:0:PETScWrappers::MPI::Vector::test_elementwise_product OK +DEAL:0:PETScWrappers::MPI::Vector::test_elementwise_div OK +DEAL:0:PETScWrappers::MPI::Vector::test_elementwise_inv OK +DEAL:0:PETScWrappers::MPI::Vector::test_elementwise_abs OK +DEAL:0:PETScWrappers::MPI::Vector::test_weighted_rms_norm OK +DEAL:0:PETScWrappers::MPI::Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:PETScWrappers::MPI::Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:PETScWrappers::MPI::Vector::test_weighted_l2_norm OK +DEAL:0:PETScWrappers::MPI::Vector::test_max_norm OK +DEAL:0:PETScWrappers::MPI::Vector::test_l1_norm OK +DEAL:0:PETScWrappers::MPI::Vector::test_min_element OK +DEAL:0:PETScWrappers::MPI::Vector::test_scale OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_nvector_view_unwrap OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_get_vector_id OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_clone OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_destroy OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_get_communicator OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_length OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_linear_sum OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_dot_product OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_set_constant OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_add_constant OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_elementwise_product OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_elementwise_div OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_elementwise_inv OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_elementwise_abs OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_weighted_rms_norm OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_weighted_l2_norm OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_max_norm OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_l1_norm OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_min_element OK +DEAL:0:PETScWrappers::MPI::BlockVector::test_scale OK diff --git a/tests/sundials/n_vector.mpirun=1.with_trilinos=on.with_petsc=off.output b/tests/sundials/n_vector.mpirun=1.with_trilinos=on.with_petsc=off.output new file mode 100644 index 0000000000..0f190076ae --- /dev/null +++ b/tests/sundials/n_vector.mpirun=1.with_trilinos=on.with_petsc=off.output @@ -0,0 +1,133 @@ + +DEAL:0:Vector::test_nvector_view_unwrap OK +DEAL:0:Vector::test_get_vector_id OK +DEAL:0:Vector::test_clone OK +DEAL:0:Vector::test_destroy OK +DEAL:0:Vector::test_get_communicator OK +DEAL:0:Vector::test_length OK +DEAL:0:Vector::test_linear_sum OK +DEAL:0:Vector::test_dot_product OK +DEAL:0:Vector::test_set_constant OK +DEAL:0:Vector::test_add_constant OK +DEAL:0:Vector::test_elementwise_product OK +DEAL:0:Vector::test_elementwise_div OK +DEAL:0:Vector::test_elementwise_inv OK +DEAL:0:Vector::test_elementwise_abs OK +DEAL:0:Vector::test_weighted_rms_norm OK +DEAL:0:Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:Vector::test_weighted_l2_norm OK +DEAL:0:Vector::test_max_norm OK +DEAL:0:Vector::test_l1_norm OK +DEAL:0:Vector::test_min_element OK +DEAL:0:Vector::test_scale OK +DEAL:0:BlockVector::test_nvector_view_unwrap OK +DEAL:0:BlockVector::test_get_vector_id OK +DEAL:0:BlockVector::test_clone OK +DEAL:0:BlockVector::test_destroy OK +DEAL:0:BlockVector::test_get_communicator OK +DEAL:0:BlockVector::test_length OK +DEAL:0:BlockVector::test_linear_sum OK +DEAL:0:BlockVector::test_dot_product OK +DEAL:0:BlockVector::test_set_constant OK +DEAL:0:BlockVector::test_add_constant OK +DEAL:0:BlockVector::test_elementwise_product OK +DEAL:0:BlockVector::test_elementwise_div OK +DEAL:0:BlockVector::test_elementwise_inv OK +DEAL:0:BlockVector::test_elementwise_abs OK +DEAL:0:BlockVector::test_weighted_rms_norm OK +DEAL:0:BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:BlockVector::test_weighted_l2_norm OK +DEAL:0:BlockVector::test_max_norm OK +DEAL:0:BlockVector::test_l1_norm OK +DEAL:0:BlockVector::test_min_element OK +DEAL:0:BlockVector::test_scale OK +DEAL:0:LinearAlgebra::distributed::Vector::test_nvector_view_unwrap OK +DEAL:0:LinearAlgebra::distributed::Vector::test_get_vector_id OK +DEAL:0:LinearAlgebra::distributed::Vector::test_clone OK +DEAL:0:LinearAlgebra::distributed::Vector::test_destroy OK +DEAL:0:LinearAlgebra::distributed::Vector::test_get_communicator OK +DEAL:0:LinearAlgebra::distributed::Vector::test_length OK +DEAL:0:LinearAlgebra::distributed::Vector::test_linear_sum OK +DEAL:0:LinearAlgebra::distributed::Vector::test_dot_product OK +DEAL:0:LinearAlgebra::distributed::Vector::test_set_constant OK +DEAL:0:LinearAlgebra::distributed::Vector::test_add_constant OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_product OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_div OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_inv OK +DEAL:0:LinearAlgebra::distributed::Vector::test_elementwise_abs OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:LinearAlgebra::distributed::Vector::test_weighted_l2_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_max_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_l1_norm OK +DEAL:0:LinearAlgebra::distributed::Vector::test_min_element OK +DEAL:0:LinearAlgebra::distributed::Vector::test_scale OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_nvector_view_unwrap OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_get_vector_id OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_clone OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_destroy OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_get_communicator OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_length OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_linear_sum OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_dot_product OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_set_constant OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_add_constant OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_product OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_div OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_inv OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_elementwise_abs OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_weighted_l2_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_max_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_l1_norm OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_min_element OK +DEAL:0:LinearAlgebra::distributed::BlockVector::test_scale OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_nvector_view_unwrap OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_get_vector_id OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_clone OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_destroy OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_get_communicator OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_length OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_linear_sum OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_dot_product OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_set_constant OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_add_constant OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_elementwise_product OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_elementwise_div OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_elementwise_inv OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_elementwise_abs OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_weighted_rms_norm OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_weighted_rms_norm_mask 1 OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_weighted_rms_norm_mask 0 OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_weighted_l2_norm OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_max_norm OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_l1_norm OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_min_element OK +DEAL:0:TrilinosWrappers::MPI::Vector::test_scale OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_nvector_view_unwrap OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_get_vector_id OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_clone OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_destroy OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_get_communicator OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_length OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_linear_sum OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_dot_product OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_set_constant OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_add_constant OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_elementwise_product OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_elementwise_div OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_elementwise_inv OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_elementwise_abs OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_weighted_rms_norm OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_weighted_rms_norm_mask 1 OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_weighted_rms_norm_mask 0 OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_weighted_l2_norm OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_max_norm OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_l1_norm OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_min_element OK +DEAL:0:TrilinosWrappers::MPI::BlockVector::test_scale OK -- 2.39.5