libMesh
|
This class provides a nice interface to the Epetra data structures for parallel, sparse matrices. More...
#include <trilinos_epetra_matrix.h>
Public Member Functions | |
EpetraMatrix (const Parallel::Communicator &comm) | |
Constructor; initializes the matrix to be empty, without any structure, i.e. More... | |
EpetraMatrix (Epetra_FECrsMatrix *m, const Parallel::Communicator &comm) | |
Constructor. More... | |
EpetraMatrix (EpetraMatrix &&)=delete | |
This class manages the lifetime of an Epetra_FECrsMatrix manually, so we don't want to allow any automatic copy/move functions to be generated, and we can't default the destructor. More... | |
EpetraMatrix (const EpetraMatrix &)=delete | |
EpetraMatrix & | operator= (const EpetraMatrix &)=delete |
EpetraMatrix & | operator= (EpetraMatrix &&)=delete |
virtual | ~EpetraMatrix () |
virtual bool | need_full_sparsity_pattern () const override |
The EpetraMatrix needs the full sparsity pattern. More... | |
virtual void | update_sparsity_pattern (const SparsityPattern::Graph &) override |
Updates the matrix sparsity pattern. More... | |
virtual void | init (const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type nnz=30, const numeric_index_type noz=10, const numeric_index_type blocksize=1) override |
Initialize SparseMatrix with the specified sizes. More... | |
virtual void | init (ParallelType=PARALLEL) override |
Initialize this matrix using the sparsity structure computed by dof_map . More... | |
virtual void | clear () noexcept override |
clear() is called from the destructor, so it should not throw. More... | |
virtual void | zero () override |
Set all entries to 0. More... | |
virtual std::unique_ptr< SparseMatrix< T > > | zero_clone () const override |
virtual std::unique_ptr< SparseMatrix< T > > | clone () const override |
virtual void | close () override |
Calls the SparseMatrix's internal assembly routines, ensuring that the values are consistent across processors. More... | |
virtual numeric_index_type | m () const override |
virtual numeric_index_type | n () const override |
virtual numeric_index_type | row_start () const override |
virtual numeric_index_type | row_stop () const override |
virtual numeric_index_type | col_start () const override |
virtual numeric_index_type | col_stop () const override |
virtual void | set (const numeric_index_type i, const numeric_index_type j, const T value) override |
Set the element (i,j) to value . More... | |
virtual void | add (const numeric_index_type i, const numeric_index_type j, const T value) override |
Add value to the element (i,j). More... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) override |
Add the full matrix dm to the SparseMatrix. More... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &dof_indices) override |
Same as add_matrix , but assumes the row and column maps are the same. More... | |
virtual void | add (const T a, const SparseMatrix< T > &X) override |
Compute A += a*X for scalar a , matrix X . More... | |
virtual T | operator() (const numeric_index_type i, const numeric_index_type j) const override |
virtual Real | l1_norm () const override |
virtual Real | linfty_norm () const override |
virtual bool | closed () const override |
virtual void | print_personal (std::ostream &os=libMesh::out) const override |
Print the contents of the matrix to the screen in a package-personalized style, if available. More... | |
virtual void | get_diagonal (NumericVector< T > &dest) const override |
Copies the diagonal part of the matrix into dest . More... | |
virtual void | get_transpose (SparseMatrix< T > &dest) const override |
Copies the transpose of the matrix into dest , which may be *this. More... | |
virtual void | get_row (numeric_index_type i, std::vector< numeric_index_type > &indices, std::vector< T > &values) const override |
Get a row from the matrix. More... | |
void | swap (EpetraMatrix< T > &) |
Swaps the internal data pointers, no actual values are swapped. More... | |
Epetra_FECrsMatrix * | mat () |
const Epetra_FECrsMatrix * | mat () const |
virtual bool | initialized () const |
void | attach_dof_map (const DofMap &dof_map) |
Set a pointer to the DofMap to use. More... | |
void | attach_sparsity_pattern (const SparsityPattern::Build &sp) |
Set a pointer to a sparsity pattern to use. More... | |
virtual void | zero_rows (std::vector< numeric_index_type > &rows, T diag_value=0.0) |
Sets all row entries to 0 then puts diag_value in the diagonal entry. More... | |
virtual void | flush () |
For PETSc matrix , this function is similar to close but without shrinking memory. More... | |
virtual numeric_index_type | local_m () const |
Get the number of rows owned by this process. More... | |
virtual numeric_index_type | local_n () const |
Get the number of columns owned by this process. More... | |
virtual void | add_block_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &brows, const std::vector< numeric_index_type > &bcols) |
Add the full matrix dm to the SparseMatrix. More... | |
virtual void | add_block_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &dof_indices) |
Same as add_block_matrix() , but assumes the row and column maps are the same. More... | |
virtual void | matrix_matrix_mult (SparseMatrix< T > &, SparseMatrix< T > &, bool) |
Compute Y = A*X for matrix X . More... | |
virtual void | add_sparse_matrix (const SparseMatrix< T > &, const std::map< numeric_index_type, numeric_index_type > &, const std::map< numeric_index_type, numeric_index_type > &, const T) |
Add scalar* spm to the rows and cols of this matrix (A): A(rows[i], cols[j]) += scalar * spm(i,j) More... | |
virtual std::size_t | n_nonzeros () const |
void | print (std::ostream &os=libMesh::out, const bool sparse=false) const |
Print the contents of the matrix to the screen in a uniform style, regardless of matrix/solver package being used. More... | |
template<> | |
void | print (std::ostream &os, const bool sparse) const |
virtual void | print_matlab (const std::string &="") const |
Print the contents of the matrix in Matlab's sparse matrix format. More... | |
virtual void | read_matlab (const std::string &filename) |
Read the contents of the matrix from Matlab's sparse matrix format. More... | |
virtual void | create_submatrix (SparseMatrix< T > &submatrix, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) const |
This function creates a matrix called "submatrix" which is defined by the row and column indices given in the "rows" and "cols" entries. More... | |
virtual void | create_submatrix_nosort (SparseMatrix< T > &, const std::vector< numeric_index_type > &, const std::vector< numeric_index_type > &) const |
Similar to the above function, this function creates a submatrix which is defined by the indices given in the rows and cols vectors. More... | |
virtual void | reinit_submatrix (SparseMatrix< T > &submatrix, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) const |
This function is similar to the one above, but it allows you to reuse the existing sparsity pattern of "submatrix" instead of reallocating it again. More... | |
void | vector_mult (NumericVector< T > &dest, const NumericVector< T > &arg) const |
Multiplies the matrix by the NumericVector arg and stores the result in NumericVector dest . More... | |
void | vector_mult_add (NumericVector< T > &dest, const NumericVector< T > &arg) const |
Multiplies the matrix by the NumericVector arg and adds the result to the NumericVector dest . More... | |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Static Public Member Functions | |
static std::unique_ptr< SparseMatrix< T > > | build (const Parallel::Communicator &comm, const SolverPackage solver_package=libMesh::default_solver_package(), const MatrixBuildType matrix_build_type=MatrixBuildType::AUTOMATIC) |
Builds a SparseMatrix<T> using the linear solver package specified by solver_package . More... | |
static std::string | get_info () |
Gets a string containing the reference information. More... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . More... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. More... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() More... | |
static void | disable_print_counter_info () |
Protected Types | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. More... | |
Protected Member Functions | |
virtual void | _get_submatrix (SparseMatrix< T > &, const std::vector< numeric_index_type > &, const std::vector< numeric_index_type > &, const bool) const |
Protected implementation of the create_submatrix and reinit_submatrix routines. More... | |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. More... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. More... | |
Protected Attributes | |
DofMap const * | _dof_map |
The DofMap object associated with this object. More... | |
SparsityPattern::Build const * | _sp |
The sparsity pattern associated with this object. More... | |
bool | _is_initialized |
Flag indicating whether or not the matrix has been initialized. More... | |
const Parallel::Communicator & | _communicator |
Static Protected Attributes | |
static Counts | _counts |
Actually holds the data. More... | |
static Threads::atomic< unsigned int > | _n_objects |
The number of objects. More... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. More... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. More... | |
Private Attributes | |
Epetra_FECrsMatrix * | _mat |
Actual Epetra datatype to hold matrix entries. More... | |
Epetra_Map * | _map |
Holds the distributed Map. More... | |
Epetra_CrsGraph * | _graph |
Holds the sparsity pattern. More... | |
bool | _destroy_mat_on_exit |
This boolean value should only be set to false for the constructor which takes an Epetra_FECrsMatrix object. More... | |
bool | _use_transpose |
Epetra has no GetUseTranspose so we need to keep track of whether we're transposed manually. More... | |
This class provides a nice interface to the Epetra data structures for parallel, sparse matrices.
All overridden virtual functions are documented in sparse_matrix.h.
Definition at line 63 of file trilinos_epetra_matrix.h.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 119 of file reference_counter.h.
libMesh::EpetraMatrix< T >::EpetraMatrix | ( | const Parallel::Communicator & | comm | ) |
Constructor; initializes the matrix to be empty, without any structure, i.e.
the matrix is not usable at all. This constructor is therefore only useful for matrices which are members of a class. All other matrices should be created at a point in the data flow where all necessary information is available.
You have to initialize the matrix before usage with init
(...).
Definition at line 364 of file trilinos_epetra_matrix.C.
libMesh::EpetraMatrix< T >::EpetraMatrix | ( | Epetra_FECrsMatrix * | m, |
const Parallel::Communicator & | comm | ||
) |
Constructor.
Creates a EpetraMatrix assuming you already have a valid Epetra_FECrsMatrix object. In this case, m is NOT destroyed by the EpetraMatrix destructor when this object goes out of scope. This allows ownership of m to remain with the original creator, and to simply provide additional functionality with the EpetraMatrix.
Definition at line 374 of file trilinos_epetra_matrix.C.
References libMesh::SparseMatrix< T >::_is_initialized, libMesh::EpetraMatrix< T >::_mat, and libMesh::EpetraMatrix< T >::m().
|
delete |
This class manages the lifetime of an Epetra_FECrsMatrix manually, so we don't want to allow any automatic copy/move functions to be generated, and we can't default the destructor.
|
delete |
|
virtual |
Definition at line 388 of file trilinos_epetra_matrix.C.
|
inlineprotectedvirtualinherited |
Protected implementation of the create_submatrix and reinit_submatrix routines.
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 530 of file sparse_matrix.h.
Referenced by libMesh::SparseMatrix< ValOut >::create_submatrix(), and libMesh::SparseMatrix< ValOut >::reinit_submatrix().
|
overridevirtual |
Add value
to the element (i,j).
Throws an error if the entry does not exist. Zero values can be "added" to non-existent entries.
Implements libMesh::SparseMatrix< T >.
Definition at line 491 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), and value.
|
overridevirtual |
Compute A += a*X for scalar a
, matrix X
.
init()
, but also explicitly zero the terms of this
whenever you add a non-zero value to X
.X
will be closed, if not already done, before performing any work. Implements libMesh::SparseMatrix< T >.
Definition at line 518 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), libMesh::SparseMatrix< T >::m(), and libMesh::SparseMatrix< T >::n().
|
virtualinherited |
Add the full matrix dm
to the SparseMatrix.
This is useful for adding an element matrix at assembly time. The matrix is assumed blocked, and brow
, bcol
correspond to the block row and column indices.
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 82 of file sparse_matrix.C.
Referenced by libMesh::SparseMatrix< ValOut >::add_block_matrix().
|
inlinevirtualinherited |
Same as add_block_matrix()
, but assumes the row and column maps are the same.
Thus the matrix dm
must be square.
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 308 of file sparse_matrix.h.
|
overridevirtual |
Add the full matrix dm
to the SparseMatrix.
This is useful for adding an element matrix at assembly time.
Implements libMesh::SparseMatrix< T >.
Definition at line 278 of file trilinos_epetra_matrix.C.
References libMesh::DenseMatrix< T >::get_values(), libMesh::initialized(), libMesh::libmesh_assert(), libMesh::DenseMatrixBase< T >::m(), libMesh::DenseMatrixBase< T >::n(), and libMesh::numeric_trilinos_cast().
|
overridevirtual |
Same as add_matrix
, but assumes the row and column maps are the same.
Thus the matrix dm
must be square.
Implements libMesh::SparseMatrix< T >.
Definition at line 509 of file trilinos_epetra_matrix.C.
|
inlinevirtualinherited |
Add scalar*
spm
to the rows and cols of this matrix (A): A(rows[i], cols[j]) += scalar * spm(i,j)
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 327 of file sparse_matrix.h.
|
inherited |
Set a pointer to the DofMap
to use.
If a separate sparsity pattern is not being used, use the one from the DofMap.
The lifetime of dof_map
must exceed the lifetime of this
.
Definition at line 63 of file sparse_matrix.C.
Referenced by libMesh::__libmesh_tao_hessian(), and libMesh::DofMap::update_sparsity_pattern().
|
inherited |
Set a pointer to a sparsity pattern to use.
Useful in cases where a matrix requires a wider (or for efficiency narrower) pattern than most matrices in the system, or in cases where no system sparsity pattern is being calculated by the DofMap.
The lifetime of sp
must exceed the lifetime of this
.
Definition at line 73 of file sparse_matrix.C.
Referenced by libMesh::DofMap::update_sparsity_pattern().
|
staticinherited |
Builds a SparseMatrix<T>
using the linear solver package specified by solver_package
.
Definition at line 156 of file sparse_matrix.C.
Referenced by libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::DofMap::process_mesh_constraint_rows(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), and SystemsTest::testProjectMatrix3D().
|
overridevirtualnoexcept |
clear() is called from the destructor, so it should not throw.
Implements libMesh::SparseMatrix< T >.
Definition at line 240 of file trilinos_epetra_matrix.C.
References libMesh::libMeshPrivateData::_is_initialized.
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 225 of file trilinos_epetra_matrix.C.
|
overridevirtual |
Calls the SparseMatrix's internal assembly routines, ensuring that the values are consistent across processors.
Implements libMesh::SparseMatrix< T >.
Definition at line 396 of file trilinos_epetra_matrix.C.
References libMesh::libmesh_assert().
Referenced by libMesh::AztecLinearSolver< T >::solve().
|
overridevirtual |
true
if the matrix has been assembled. Implements libMesh::SparseMatrix< T >.
Definition at line 576 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 448 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 459 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
inlineinherited |
Parallel::Communicator
object used by this mesh. Definition at line 97 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< libMesh::Number >::create_submatrix_nosort(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::MeshBase::get_info(), libMesh::System::get_info(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::DofMap::n_constrained_dofs(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
|
inlinevirtualinherited |
This function creates a matrix called "submatrix" which is defined by the row and column indices given in the "rows" and "cols" entries.
Currently this operation is only defined for the PetscMatrix type. Note: The rows
and cols
vectors need to be sorted; Use the nosort version below if rows
and cols
vectors are not sorted; The rows
and cols
only contain indices that are owned by this processor.
Definition at line 444 of file sparse_matrix.h.
Referenced by libMesh::libmesh_petsc_DMCreateInterpolation(), and libMesh::CondensedEigenSystem::solve().
|
inlinevirtualinherited |
Similar to the above function, this function creates a submatrix
which is defined by the indices given in the rows
and cols
vectors.
Note: Both rows
and cols
can be unsorted; Use the above function for better efficiency if your indices are sorted; rows
and cols
can contain indices that are owned by other processors.
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 462 of file sparse_matrix.h.
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 94 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
inlinevirtualinherited |
For PETSc matrix , this function is similar to close but without shrinking memory.
This is useful when we want to switch between ADD_VALUES and INSERT_VALUES. close should be called before using the matrix.
Reimplemented in libMesh::PetscMatrix< T >, and libMesh::PetscMatrix< libMesh::Number >.
Definition at line 215 of file sparse_matrix.h.
|
overridevirtual |
Copies the diagonal part of the matrix into dest
.
Implements libMesh::SparseMatrix< T >.
Definition at line 301 of file trilinos_epetra_matrix.C.
References libMesh::EpetraVector< T >::vec().
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().
Referenced by libMesh::ReferenceCounter::print_info().
|
overridevirtual |
Get a row from the matrix.
i | The matrix row to get |
indices | A container that will be filled with the column indices corresponding to (possibly) non-zero values |
values | A container holding the column values |
Implements libMesh::SparseMatrix< T >.
Definition at line 332 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), and libMesh::make_range().
|
overridevirtual |
Copies the transpose of the matrix into dest
, which may be *this.
Implements libMesh::SparseMatrix< T >.
Definition at line 313 of file trilinos_epetra_matrix.C.
References libMesh::EpetraMatrix< T >::_mat, and libMesh::EpetraMatrix< T >::_use_transpose.
|
inlineprotectednoexceptinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 183 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 207 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
|
overridevirtual |
Initialize SparseMatrix with the specified sizes.
m | The global number of rows. |
n | The global number of columns. |
m_l | The local number of rows. |
n_l | The local number of columns. |
nnz | The number of on-diagonal nonzeros per row (defaults to 30). |
noz | The number of off-diagonal nonzeros per row (defaults to 10). |
blocksize | Optional value indicating dense coupled blocks for systems with multiple variables all of the same type. |
Implements libMesh::SparseMatrix< T >.
|
overridevirtual |
Initialize this matrix using the sparsity structure computed by dof_map
.
type | The serial/parallel/ghosted type of the matrix |
Implements libMesh::SparseMatrix< T >.
Definition at line 177 of file trilinos_epetra_matrix.C.
References libMesh::libMeshPrivateData::_is_initialized, libMesh::initialized(), and libMesh::libmesh_assert().
|
inlinevirtualinherited |
true
if the matrix has been initialized, false
otherwise. Definition at line 109 of file sparse_matrix.h.
Referenced by libMesh::PetscMatrix< libMesh::Number >::_get_submatrix(), libMesh::ImplicitSystem::assemble(), and libMesh::System::init_matrices().
|
overridevirtual |
This is the natural matrix norm that is compatible with the \( \ell_1 \)-norm for vectors, i.e. \( |Mv|_1 \leq |M|_1 |v|_1 \). (cf. Haemmerlin-Hoffmann : Numerische Mathematik)
Implements libMesh::SparseMatrix< T >.
Definition at line 253 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), and libMesh::Real.
|
overridevirtual |
\( |M|_{\infty} = \max_{i} \sum_{j} |M_{ij}| \)
This is the natural matrix norm that is compatible to the \( \ell_{\infty} \)-norm of vectors, i.e. \( |Mv|_{\infty} \leq |M|_{\infty} |v|_{\infty} \). (cf. Haemmerlin-Hoffmann : Numerische Mathematik)
Implements libMesh::SparseMatrix< T >.
Definition at line 265 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), and libMesh::Real.
|
inlinevirtualinherited |
Get the number of rows owned by this process.
Reimplemented in libMesh::PetscMatrix< T >, and libMesh::PetscMatrix< libMesh::Number >.
Definition at line 225 of file sparse_matrix.h.
|
inlinevirtualinherited |
Get the number of columns owned by this process.
Reimplemented in libMesh::PetscMatrix< T >, and libMesh::PetscMatrix< libMesh::Number >.
Definition at line 230 of file sparse_matrix.h.
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 406 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
Referenced by libMesh::EpetraMatrix< T >::EpetraMatrix().
|
inline |
Definition at line 207 of file trilinos_epetra_matrix.h.
References libMesh::EpetraMatrix< T >::_mat, and libMesh::libmesh_assert().
Referenced by libMesh::TrilinosPreconditioner< T >::init(), libMesh::NoxNonlinearSolver< Number >::solve(), and libMesh::AztecLinearSolver< T >::solve().
|
inline |
Definition at line 209 of file trilinos_epetra_matrix.h.
References libMesh::EpetraMatrix< T >::_mat, and libMesh::libmesh_assert().
|
inlinevirtualinherited |
Compute Y = A*X for matrix X
.
Reimplemented in libMesh::PetscMatrix< T >.
Definition at line 320 of file sparse_matrix.h.
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 416 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
virtualinherited |
Definition at line 229 of file sparse_matrix.C.
Referenced by libMesh::SparseMatrix< ValOut >::n_nonzeros().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 85 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inlineinherited |
Definition at line 103 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and TIMPI::Communicator::size().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
inlineoverridevirtual |
The EpetraMatrix
needs the full sparsity pattern.
Reimplemented from libMesh::SparseMatrix< T >.
Definition at line 103 of file trilinos_epetra_matrix.h.
|
overridevirtual |
(i,j).Implements libMesh::SparseMatrix< T >.
Definition at line 541 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
delete |
|
delete |
|
inherited |
Definition at line 122 of file sparse_matrix.C.
|
inherited |
Print the contents of the matrix to the screen in a uniform style, regardless of matrix/solver package being used.
Definition at line 238 of file sparse_matrix.C.
Referenced by libMesh::EigenSparseMatrix< T >::print_personal(), and libMesh::LaspackMatrix< T >::print_personal().
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
Definition at line 81 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
virtualinherited |
Print the contents of the matrix in Matlab's sparse matrix format.
Optionally prints the matrix to the file named name
. If name
is not specified it is dumped to the screen.
Reimplemented in libMesh::PetscMatrix< T >, and libMesh::PetscMatrix< libMesh::Number >.
Definition at line 361 of file sparse_matrix.C.
|
overridevirtual |
Print the contents of the matrix to the screen in a package-personalized style, if available.
Implements libMesh::SparseMatrix< T >.
Definition at line 597 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
inlineinherited |
Definition at line 114 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and TIMPI::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
|
virtualinherited |
Read the contents of the matrix from Matlab's sparse matrix format.
If the size and sparsity of the matrix in filename
appears consistent with the existing sparsity of this
then the existing parallel decomposition and sparsity will be retained. If not, then this
will be initialized with the sparsity from the file, linearly partitioned onto the number of processors available.
Definition at line 483 of file sparse_matrix.C.
Referenced by ConstraintOperatorTest::test1DCoarseningNewNodes().
|
inlinevirtualinherited |
This function is similar to the one above, but it allows you to reuse the existing sparsity pattern of "submatrix" instead of reallocating it again.
This should hopefully be more efficient if you are frequently extracting submatrices of the same size.
Definition at line 475 of file sparse_matrix.h.
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 426 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 437 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
overridevirtual |
Set the element (i,j) to
value
.
Throws an error if the entry does not exist. Zero values can be "stored" in non-existent fields.
Implements libMesh::SparseMatrix< T >.
Definition at line 470 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), libMesh::libmesh_assert(), and value.
void libMesh::EpetraMatrix< T >::swap | ( | EpetraMatrix< T > & | m | ) |
Swaps the internal data pointers, no actual values are swapped.
Definition at line 586 of file trilinos_epetra_matrix.C.
References libMesh::EpetraMatrix< T >::_destroy_mat_on_exit, and libMesh::EpetraMatrix< T >::_mat.
|
overridevirtual |
Updates the matrix sparsity pattern.
This will tell the underlying matrix storage scheme how to map the \( (i,j) \) elements.
Reimplemented from libMesh::SparseMatrix< T >.
Definition at line 42 of file trilinos_epetra_matrix.C.
References libMesh::index_range(), libMesh::TriangleWrapper::init(), libMesh::initialized(), and libMesh::libmesh_assert().
|
inherited |
Multiplies the matrix by the NumericVector arg
and stores the result in NumericVector dest
.
Definition at line 200 of file sparse_matrix.C.
Referenced by libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::RBSCMConstruction::Aq_inner_product(), libMesh::RBSCMConstruction::B_inner_product(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBConstruction::enrich_RB_space(), AssembleOptimization::gradient(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), AssembleOptimization::objective(), libMesh::RBConstruction::print_basis_function_orthogonality(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_solve(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), and libMesh::RBConstruction::update_residual_terms().
|
inherited |
Multiplies the matrix by the NumericVector arg
and adds the result to the NumericVector dest
.
Definition at line 210 of file sparse_matrix.C.
Referenced by libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
|
overridevirtual |
Set all entries to 0.
Implements libMesh::SparseMatrix< T >.
Definition at line 196 of file trilinos_epetra_matrix.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
overridevirtual |
Implements libMesh::SparseMatrix< T >.
Definition at line 206 of file trilinos_epetra_matrix.C.
|
virtualinherited |
Sets all row entries to 0 then puts diag_value
in the diagonal entry.
Reimplemented in libMesh::PetscMatrix< T >, and libMesh::DiagonalMatrix< T >.
Definition at line 221 of file sparse_matrix.C.
|
protectedinherited |
Definition at line 120 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), and libMesh::BoundaryInfo::regenerate_id_sets().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
private |
This boolean value should only be set to false for the constructor which takes an Epetra_FECrsMatrix object.
Definition at line 233 of file trilinos_epetra_matrix.h.
Referenced by libMesh::EpetraMatrix< T >::swap().
|
protectedinherited |
The DofMap
object associated with this object.
May be queried for degree-of-freedom counts on processors.
Definition at line 542 of file sparse_matrix.h.
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 143 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
private |
Holds the sparsity pattern.
Definition at line 227 of file trilinos_epetra_matrix.h.
|
protectedinherited |
Flag indicating whether or not the matrix has been initialized.
Definition at line 554 of file sparse_matrix.h.
Referenced by libMesh::PetscMatrix< libMesh::Number >::_get_submatrix(), libMesh::PetscMatrix< libMesh::Number >::create_submatrix_nosort(), libMesh::EpetraMatrix< T >::EpetraMatrix(), libMesh::PetscMatrix< libMesh::Number >::get_transpose(), and libMesh::SparseMatrix< ValOut >::initialized().
|
private |
Holds the distributed Map.
Definition at line 222 of file trilinos_epetra_matrix.h.
|
private |
Actual Epetra datatype to hold matrix entries.
Definition at line 217 of file trilinos_epetra_matrix.h.
Referenced by libMesh::EpetraMatrix< T >::EpetraMatrix(), libMesh::EpetraMatrix< T >::get_transpose(), libMesh::EpetraMatrix< T >::mat(), and libMesh::EpetraMatrix< T >::swap().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 137 of file reference_counter.h.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
Definition at line 132 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
protectedinherited |
The sparsity
pattern associated with this object.
Should be queried for entry counts (or with need_full_sparsity_pattern, patterns) when needed.
Definition at line 549 of file sparse_matrix.h.
|
private |
Epetra has no GetUseTranspose so we need to keep track of whether we're transposed manually.
Definition at line 239 of file trilinos_epetra_matrix.h.
Referenced by libMesh::EpetraMatrix< T >::get_transpose().