此类提供了对Epetra数据结构的并行、稀疏矩阵的友好接口。所有重写的虚拟函数在sparse_matrix.h中都有文档。 更多...
#include <trilinos_epetra_matrix.h>
Public 类型 | |
typedef T | value_type |
Public 成员函数 | |
EpetraMatrix (const Parallel::Communicator &comm) | |
构造函数; 初始化矩阵为空,没有任何结构。矩阵不可用。仅用于成员类的矩阵。 所有其他矩阵应在所有必要信息都可用的数据流的某个点创建。 更多... | |
EpetraMatrix (Epetra_FECrsMatrix *m, const Parallel::Communicator &comm) | |
构造函数。创建一个EpetraMatrix,假设您已经有一个有效的Epetra_FECrsMatrix对象。 在这种情况下,m不会在EpetraMatrix析构函数销毁时被销毁。这允许保留m的所有权在原始创建者手中, 并提供EpetraMatrix的附加功能。 更多... | |
EpetraMatrix (EpetraMatrix &&)=delete | |
禁用复制和移动构造函数,以及赋值运算符 更多... | |
EpetraMatrix (const EpetraMatrix &)=delete | |
EpetraMatrix & | operator= (const EpetraMatrix &)=delete |
EpetraMatrix & | operator= (EpetraMatrix &&)=delete |
virtual | ~EpetraMatrix () |
析构函数 更多... | |
virtual bool | need_full_sparsity_pattern () const override |
EpetraMatrix需要完整的稀疏性模式。 更多... | |
virtual void | update_sparsity_pattern (const SparsityPattern::Graph &graph) override |
更新矩阵的稀疏性模式。这将告诉底层矩阵存储方案如何映射(i,j)元素。 更多... | |
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 |
初始化矩阵。 更多... | |
virtual void | init (ParallelType parallelType=PARALLEL) override |
初始化矩阵并设置通信模式。 更多... | |
virtual void | clear () noexceptoverride |
清除矩阵。 更多... | |
virtual void | zero () override |
将矩阵元素设置为零。 更多... | |
virtual std::unique_ptr < SparseMatrix< T > > | zero_clone () const override |
创建零克隆矩阵。 更多... | |
virtual std::unique_ptr < SparseMatrix< T > > | clone () const override |
创建矩阵克隆。 更多... | |
virtual void | close () override |
关闭矩阵,使其无法再次修改。 更多... | |
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 void | set (const numeric_index_type i, const numeric_index_type j, const T value) override |
设置矩阵元素值。 更多... | |
virtual void | add (const numeric_index_type i, const numeric_index_type j, const T value) override |
添加矩阵元素值。 更多... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) override |
添加稀疏矩阵的元素值。 更多... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &dof_indices) override |
添加稀疏矩阵的元素值。 更多... | |
virtual void | add (const T a, const SparseMatrix< T > &X) override |
计算A += a*X,其中a是标量,X是稀疏矩阵。 更多... | |
virtual T | operator() (const numeric_index_type i, const numeric_index_type j) const override |
获取矩阵元素值。 更多... | |
virtual Real | l1_norm () const override |
获取矩阵的L1范数。 更多... | |
virtual Real | linfty_norm () const override |
获取矩阵的L∞范数。 更多... | |
virtual bool | closed () const override |
检查矩阵是否已关闭。 更多... | |
virtual void | print_personal (std::ostream &os=libMesh::out) const override |
打印矩阵的个性化信息。 更多... | |
virtual void | get_diagonal (NumericVector< T > &dest) const override |
获取矩阵的对角线元素。 更多... | |
virtual void | get_transpose (SparseMatrix< T > &dest) const override |
获取矩阵的转置。 更多... | |
void | swap (EpetraMatrix< T > &other) |
交换内部数据指针,不交换实际值。 更多... | |
Epetra_FECrsMatrix * | mat () |
获取原始Epetra_FECrsMatrix指针。 更多... | |
const Epetra_FECrsMatrix * | mat () const |
获取原始Epetra_FECrsMatrix指针(const版本)。 更多... | |
virtual bool | initialized () const |
void | attach_dof_map (const DofMap &dof_map) |
设置要使用的 DofMap 的指针。如果不使用单独的稀疏性模式, 则使用来自 DofMap 的模式。 更多... | |
void | attach_sparsity_pattern (const SparsityPattern::Build &sp) |
设置要使用的稀疏性模式的指针。在矩阵需要比系统中的大(或更小以提高效率)的模式, 或者在 DofMap 未计算系统稀疏性模式的情况下使用。 更多... | |
virtual void | zero_rows (std::vector< numeric_index_type > &rows, T diag_value=0.0) |
将所有行条目设置为 0,然后将 diag_value 放在对角线条目。 更多... | |
virtual void | flush () |
对于 PETSc 矩阵,此函数类似于 close,但不收缩内存。 当我们希望在 ADD_VALUES 和 INSERT_VALUES 之间切换时,这很有用。 在使用矩阵之前应该调用 close。 更多... | |
virtual numeric_index_type | local_m () const |
获取此进程拥有的行数。 更多... | |
virtual void | add_block_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &brows, const std::vector< numeric_index_type > &bcols) |
将完整矩阵 dm 添加到 SparseMatrix。这对于在装配时添加元素矩阵很有用。 矩阵被假定为块矩阵,brow、 更多... | |
virtual void | add_block_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &dof_indices) |
与 add_block_matrix() 相同,但假定行和列映射相同。 因此矩阵 dm 必须是方阵。 更多... | |
virtual void | matrix_matrix_mult (SparseMatrix< T > &, SparseMatrix< T > &, bool) |
计算 Y = A*X,其中 X 为矩阵。 更多... | |
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) |
将 scalar* spm 添加到此矩阵的行和列中: A(rows[i], cols[j]) += scalar * spm(i,j) 更多... | |
void | print (std::ostream &os=libMesh::out, const bool sparse=false) const |
将矩阵的内容以统一的样式打印到屏幕上,而不考虑正在使用的矩阵/求解器包。 更多... | |
template<> | |
void | print (std::ostream &os, const bool sparse) const |
virtual void | print_matlab (const std::string &="") const |
以 Matlab 的稀疏矩阵格式打印矩阵的内容。可选择将矩阵打印到名为 name 的文件中。 如果未指定 name ,则将其转储到屏幕上。 更多... | |
virtual void | create_submatrix (SparseMatrix< T > &submatrix, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) const |
此函数创建一个名为 "submatrix" 的矩阵,其定义由 "rows" 和 "cols" 条目中的行和列索引给定。 目前,此操作仅对 PetscMatrix 类型定义。 注意:rows 和 cols 向量需要排序; 如果 rows 和 cols 向量未排序,则使用下面的 nosort 版本; rows 和 cols 仅包含由此处理器拥有的索引。 更多... | |
virtual void | create_submatrix_nosort (SparseMatrix< T > &, const std::vector< numeric_index_type > &, const std::vector< numeric_index_type > &) const |
与上述函数类似,此函数创建由 rows 和 cols 向量中的索引定义的 submatrix。 注意:rows 和 cols 可以是无序的; 如果索引已排序,则对于效率更高的操作,请使用上面的函数; rows 和 cols 可以包含由其他处理器拥有的索引。 更多... | |
virtual void | reinit_submatrix (SparseMatrix< T > &submatrix, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) const |
此函数与上述函数类似,但允许您重用 "submatrix" 的现有稀疏性模式,而不是再次分配它。 如果经常提取相同大小的子矩阵,这应该更有效。 更多... | |
void | vector_mult (NumericVector< T > &dest, const NumericVector< T > &arg) const |
将矩阵乘以 NumericVector arg 并将结果存储在 NumericVector dest 中。 更多... | |
void | vector_mult_add (NumericVector< T > &dest, const NumericVector< T > &arg) const |
将矩阵乘以 NumericVector arg ,并将结果添加到 NumericVector dest 中。 更多... | |
virtual void | get_row (numeric_index_type, std::vector< numeric_index_type > &, std::vector< T > &) const |
从矩阵获取一行。 更多... | |
静态 Public 成员函数 | |
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) |
使用由 solver_package 指定的线性求解器包构建一个 SparseMatrix<T>。 更多... | |
static std::string | get_info () |
Gets a string containing the reference information. 更多... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . 更多... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. 更多... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() 更多... | |
static void | disable_print_counter_info () |
Protected 类型 | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. 更多... | |
Protected 成员函数 | |
virtual void | _get_submatrix (SparseMatrix< T > &, const std::vector< numeric_index_type > &, const std::vector< numeric_index_type > &, const bool) const |
创建子矩阵和 reinit_submatrix 例程的受保护实现。 更多... | |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. 更多... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. 更多... | |
Protected 属性 | |
DofMap const * | _dof_map |
与此对象关联的 DofMap 对象。可以查询其在处理器上的自由度计数。 更多... | |
SparsityPattern::Build const * | _sp |
与此对象关联的 sparsity pattern。在需要时, 应查询其入口计数(或使用 need_full_sparsity_pattern,模式)。 更多... | |
bool | _is_initialized |
标志,指示矩阵是否已初始化。 更多... | |
静态 Protected 属性 | |
static Counts | _counts |
Actually holds the data. 更多... | |
static Threads::atomic < unsigned int > | _n_objects |
The number of objects. 更多... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. 更多... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. 更多... | |
Private 属性 | |
Epetra_FECrsMatrix * | _mat |
实际Epetra数据类型来保存矩阵条目。 更多... | |
Epetra_Map * | _map |
分布映射 更多... | |
Epetra_CrsGraph * | _graph |
稀疏性模式 更多... | |
bool | _destroy_mat_on_exit |
在接口函数中是否销毁_mat。 更多... | |
bool | _use_transpose |
手动跟踪是否手动进行了转置。 更多... | |
此类提供了对Epetra数据结构的并行、稀疏矩阵的友好接口。所有重写的虚拟函数在sparse_matrix.h中都有文档。
在文件 trilinos_epetra_matrix.h 第 61 行定义.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
在文件 reference_counter.h 第 119 行定义.
typedef T libMesh::EpetraMatrix< T >::value_type |
在文件 trilinos_epetra_matrix.h 第 64 行定义.
libMesh::EpetraMatrix< T >::EpetraMatrix | ( | const Parallel::Communicator & | comm | ) |
构造函数; 初始化矩阵为空,没有任何结构。矩阵不可用。仅用于成员类的矩阵。 所有其他矩阵应在所有必要信息都可用的数据流的某个点创建。
comm | 通信器 |
在文件 trilinos_epetra_matrix.C 第 332 行定义.
libMesh::EpetraMatrix< T >::EpetraMatrix | ( | Epetra_FECrsMatrix * | m, |
const Parallel::Communicator & | comm | ||
) |
构造函数。创建一个EpetraMatrix,假设您已经有一个有效的Epetra_FECrsMatrix对象。 在这种情况下,m不会在EpetraMatrix析构函数销毁时被销毁。这允许保留m的所有权在原始创建者手中, 并提供EpetraMatrix的附加功能。
m | 指向现有Epetra_FECrsMatrix对象的指针 |
comm | 通信器 |
在文件 trilinos_epetra_matrix.C 第 342 行定义.
参考 libMesh::SparseMatrix< T >::_is_initialized, libMesh::EpetraMatrix< T >::_mat , 以及 libMesh::EpetraMatrix< T >::m().
|
delete |
禁用复制和移动构造函数,以及赋值运算符
|
delete |
|
virtual |
析构函数
在文件 trilinos_epetra_matrix.C 第 356 行定义.
|
inlineprotectedvirtualinherited |
创建子矩阵和 reinit_submatrix 例程的受保护实现。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 483 行定义.
参考自 libMesh::SparseMatrix< T >::create_submatrix() , 以及 libMesh::SparseMatrix< T >::reinit_submatrix().
|
overridevirtual |
添加矩阵元素值。
i | 行索引 |
j | 列索引 |
value | 元素值 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 437 行定义.
|
overridevirtual |
计算A += a*X,其中a是标量,X是稀疏矩阵。
注意,不仅要使用init()分配适当的内存,还要在将非零值添加到
a 标量 X时明确将
this的项归零。
X | 稀疏矩阵 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 464 行定义.
参考 libMesh::initialized(), libMesh::SparseMatrix< T >::m() , 以及 libMesh::SparseMatrix< T >::n().
|
virtualinherited |
将完整矩阵 dm
添加到 SparseMatrix。这对于在装配时添加元素矩阵很有用。 矩阵被假定为块矩阵,brow、
bcol
对应于*块*行和列索引。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.C 第 77 行定义.
参考 libMesh::DenseMatrixBase< T >::m() , 以及 libMesh::DenseMatrixBase< T >::n().
参考自 libMesh::SparseMatrix< T >::add_block_matrix().
|
inlinevirtualinherited |
与 add_block_matrix()
相同,但假定行和列映射相同。 因此矩阵 dm
必须是方阵。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 278 行定义.
参考 libMesh::SparseMatrix< T >::add_block_matrix().
|
overridevirtual |
添加稀疏矩阵的元素值。
dm | 稀疏矩阵 |
rows | 要添加的行索引 |
cols | 要添加的列索引 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 278 行定义.
参考 libMesh::DenseMatrix< T >::get_values(), libMesh::initialized(), libMesh::DenseMatrixBase< T >::m(), libMesh::DenseMatrixBase< T >::n() , 以及 libMesh::numeric_trilinos_cast().
|
overridevirtual |
添加稀疏矩阵的元素值。
dm | 稀疏矩阵 |
dof_indices | 要添加的行和列索引 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 455 行定义.
|
inlinevirtualinherited |
将 scalar*
spm
添加到此矩阵的行和列中: A(rows[i], cols[j]) += scalar * spm(i,j)
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 297 行定义.
|
inherited |
设置要使用的 DofMap
的指针。如果不使用单独的稀疏性模式, 则使用来自 DofMap 的模式。
dof_map
的生命周期必须超过 this
的生命周期。
在文件 sparse_matrix.C 第 58 行定义.
参考 libMesh::DofMap::get_sparsity_pattern().
参考自 libMesh::DofMap::update_sparsity_pattern().
|
inherited |
设置要使用的稀疏性模式的指针。在矩阵需要比系统中的大(或更小以提高效率)的模式, 或者在 DofMap 未计算系统稀疏性模式的情况下使用。
sp
的生命周期必须超过 this
的生命周期。
在文件 sparse_matrix.C 第 68 行定义.
参考自 libMesh::DofMap::update_sparsity_pattern().
|
staticinherited |
使用由 solver_package
指定的线性求解器包构建一个 SparseMatrix<T>。
在文件 sparse_matrix.C 第 151 行定义.
参考 libMesh::EIGEN_SOLVERS, libMesh::LASPACK_SOLVERS, libMesh::libmesh_ignore() , 以及 libMesh::TRILINOS_SOLVERS.
参考自 libMesh::DofMap::process_mesh_constraint_rows().
|
overridevirtualnoexcept |
清除矩阵。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 240 行定义.
参考 libMesh::libMeshPrivateData::_is_initialized.
|
overridevirtual |
创建矩阵克隆。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 225 行定义.
|
overridevirtual |
关闭矩阵,使其无法再次修改。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 364 行定义.
|
overridevirtual |
检查矩阵是否已关闭。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 522 行定义.
|
inlinevirtualinherited |
此函数创建一个名为 "submatrix" 的矩阵,其定义由 "rows" 和 "cols" 条目中的行和列索引给定。 目前,此操作仅对 PetscMatrix 类型定义。 注意:rows
和 cols
向量需要排序; 如果 rows
和 cols
向量未排序,则使用下面的 nosort 版本; rows
和 cols
仅包含由此处理器拥有的索引。
在文件 sparse_matrix.h 第 388 行定义.
参考 libMesh::SparseMatrix< T >::_get_submatrix().
|
inlinevirtualinherited |
与上述函数类似,此函数创建由 rows
和 cols
向量中的索引定义的 submatrix。
注意:rows
和 cols
可以是无序的; 如果索引已排序,则对于效率更高的操作,请使用上面的函数; rows
和 cols
可以包含由其他处理器拥有的索引。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 404 行定义.
|
staticinherited |
在文件 reference_counter.C 第 100 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter.
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
在文件 reference_counter.C 第 94 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter.
|
inlinevirtualinherited |
对于 PETSc 矩阵,此函数类似于 close,但不收缩内存。 当我们希望在 ADD_VALUES 和 INSERT_VALUES 之间切换时,这很有用。 在使用矩阵之前应该调用 close。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 202 行定义.
参考 libMesh::SparseMatrix< T >::close().
|
overridevirtual |
获取矩阵的对角线元素。
dest | 目标数值向量,包含对角线元素 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 301 行定义.
参考 libMesh::EpetraVector< T >::vec().
|
staticinherited |
Gets a string containing the reference information.
在文件 reference_counter.C 第 47 行定义.
参考 libMesh::ReferenceCounter::_counts.
参考自 libMesh::ReferenceCounter::print_info().
|
inlinevirtualinherited |
从矩阵获取一行。
i | 要获取的矩阵行 |
indices | 将填充为与(可能)非零值对应的列索引的容器 |
values | 包含列值的容器 |
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 469 行定义.
|
overridevirtual |
获取矩阵的转置。
dest | 目标稀疏矩阵,包含矩阵的转置 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 313 行定义.
参考 libMesh::EpetraMatrix< T >::_mat , 以及 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.
在文件 reference_counter.h 第 183 行定义.
参考 libMesh::err.
参考自 libMesh::ReferenceCountedObject< SparseMatrix< T > >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
在文件 reference_counter.h 第 207 行定义.
参考 libMesh::err.
参考自 libMesh::ReferenceCountedObject< SparseMatrix< T > >::~ReferenceCountedObject().
|
overridevirtual |
初始化矩阵。
m | 全局行数 |
n | 全局列数 |
m_l | 本地行数 |
n_l | 本地列数 |
nnz | 非零元素的估计数量 |
noz | 每行的估计零元素数量 |
blocksize | 零块大小 |
|
overridevirtual |
初始化矩阵并设置通信模式。
parallelType | 并行类型 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 177 行定义.
参考 libMesh::libMeshPrivateData::_is_initialized , 以及 libMesh::initialized().
|
inlinevirtualinherited |
true,否则为
false。
在文件 sparse_matrix.h 第 102 行定义.
参考 libMesh::SparseMatrix< T >::_is_initialized.
参考自 libMesh::PetscMatrix< T >::_get_submatrix().
|
overridevirtual |
获取矩阵的L1范数。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 253 行定义.
参考 libMesh::initialized() , 以及 libMesh::Real.
|
overridevirtual |
获取矩阵的L∞范数。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 265 行定义.
参考 libMesh::initialized() , 以及 libMesh::Real.
|
inlinevirtualinherited |
获取此进程拥有的行数。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 212 行定义.
参考 libMesh::SparseMatrix< T >::row_start() , 以及 libMesh::SparseMatrix< T >::row_stop().
|
overridevirtual |
获取全局行数。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 374 行定义.
参考自 libMesh::EpetraMatrix< T >::EpetraMatrix().
|
inline |
获取原始Epetra_FECrsMatrix指针。
在文件 trilinos_epetra_matrix.h 第 315 行定义.
参考 libMesh::EpetraMatrix< T >::_mat.
参考自 libMesh::TrilinosPreconditioner< T >::init().
|
inline |
获取原始Epetra_FECrsMatrix指针(const版本)。
在文件 trilinos_epetra_matrix.h 第 325 行定义.
参考 libMesh::EpetraMatrix< T >::_mat.
|
inlinevirtualinherited |
|
overridevirtual |
获取全局列数。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 384 行定义.
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
在文件 reference_counter.h 第 85 行定义.
参考 libMesh::ReferenceCounter::_n_objects.
参考自 libMesh::LibMeshInit::~LibMeshInit().
|
overridevirtual |
|
overridevirtual |
获取矩阵元素值。
i | 行索引 |
j | 列索引 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 487 行定义.
|
delete |
|
delete |
|
inherited |
在文件 sparse_matrix.C 第 117 行定义.
参考 std::imag() , 以及 std::real().
|
inherited |
将矩阵的内容以统一的样式打印到屏幕上,而不考虑正在使用的矩阵/求解器包。
在文件 sparse_matrix.C 第 225 行定义.
参考自 libMesh::EigenSparseMatrix< T >::print_personal() , 以及 libMesh::LaspackMatrix< T >::print_personal().
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
在文件 reference_counter.C 第 81 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter , 以及 libMesh::ReferenceCounter::get_info().
参考自 libMesh::LibMeshInit::~LibMeshInit().
|
inlinevirtualinherited |
以 Matlab 的稀疏矩阵格式打印矩阵的内容。可选择将矩阵打印到名为 name
的文件中。 如果未指定 name
,则将其转储到屏幕上。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 376 行定义.
|
overridevirtual |
打印矩阵的个性化信息。
os | 输出流,默认为libMesh::out |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 543 行定义.
|
inlinevirtualinherited |
此函数与上述函数类似,但允许您重用 "submatrix" 的现有稀疏性模式,而不是再次分配它。 如果经常提取相同大小的子矩阵,这应该更有效。
在文件 sparse_matrix.h 第 415 行定义.
参考 libMesh::SparseMatrix< T >::_get_submatrix().
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
设置矩阵元素值。
i | 行索引 |
j | 列索引 |
value | 元素值 |
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 416 行定义.
void libMesh::EpetraMatrix< T >::swap | ( | EpetraMatrix< T > & | other | ) |
交换内部数据指针,不交换实际值。
other | 要交换数据指针的EpetraMatrix对象 |
在文件 trilinos_epetra_matrix.C 第 532 行定义.
参考 libMesh::EpetraMatrix< T >::_destroy_mat_on_exit , 以及 libMesh::EpetraMatrix< T >::_mat.
|
overridevirtual |
更新矩阵的稀疏性模式。这将告诉底层矩阵存储方案如何映射(i,j)元素。
graph | 稀疏模式的图形 |
重载 libMesh::SparseMatrix< T > .
在文件 trilinos_epetra_matrix.C 第 42 行定义.
|
inherited |
将矩阵乘以 NumericVector arg
并将结果存储在 NumericVector dest
中。
dest | 存储结果的目标 NumericVector。 |
arg | 乘法的源 NumericVector。 |
arg
并将结果存储在 dest
中。 在文件 sparse_matrix.C 第 195 行定义.
参考 libMesh::NumericVector< T >::zero().
|
inherited |
将矩阵乘以 NumericVector arg
,并将结果添加到 NumericVector dest
中。
在文件 sparse_matrix.C 第 205 行定义.
|
overridevirtual |
将矩阵元素设置为零。
实现了 libMesh::SparseMatrix< T >.
在文件 trilinos_epetra_matrix.C 第 196 行定义.
|
overridevirtual |
|
virtualinherited |
将所有行条目设置为 0,然后将 diag_value
放在对角线条目。
被 libMesh::DiagonalMatrix< T > , 以及 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.C 第 216 行定义.
|
staticprotectedinherited |
Actually holds the data.
在文件 reference_counter.h 第 124 行定义.
|
private |
|
protectedinherited |
与此对象关联的 DofMap
对象。可以查询其在处理器上的自由度计数。
在文件 sparse_matrix.h 第 494 行定义.
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
在文件 reference_counter.h 第 143 行定义.
参考自 libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info() , 以及 libMesh::ReferenceCounter::print_info().
|
private |
稀疏性模式
在文件 trilinos_epetra_matrix.h 第 341 行定义.
|
protectedinherited |
标志,指示矩阵是否已初始化。
在文件 sparse_matrix.h 第 505 行定义.
参考自 libMesh::PetscMatrix< T >::_get_submatrix(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), libMesh::EpetraMatrix< T >::EpetraMatrix(), libMesh::PetscMatrix< T >::get_transpose(), libMesh::SparseMatrix< T >::initialized() , 以及 libMesh::PetscMatrix< T >::PetscMatrix().
|
private |
分布映射
在文件 trilinos_epetra_matrix.h 第 336 行定义.
|
private |
实际Epetra数据类型来保存矩阵条目。
在文件 trilinos_epetra_matrix.h 第 331 行定义.
参考自 libMesh::EpetraMatrix< T >::EpetraMatrix(), libMesh::EpetraMatrix< T >::get_transpose(), libMesh::EpetraMatrix< T >::mat() , 以及 libMesh::EpetraMatrix< T >::swap().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
在文件 reference_counter.h 第 137 行定义.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
在文件 reference_counter.h 第 132 行定义.
参考自 libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter() , 以及 libMesh::ReferenceCounter::~ReferenceCounter().
|
protectedinherited |
与此对象关联的 sparsity
pattern。在需要时, 应查询其入口计数(或使用 need_full_sparsity_pattern,模式)。
在文件 sparse_matrix.h 第 500 行定义.
|
private |
手动跟踪是否手动进行了转置。
在文件 trilinos_epetra_matrix.h 第 351 行定义.