LaspackMatrix类封装了Laspack库中的QMatrix对象。 目前,Laspack仅支持实数数据类型,因此这个类是对 SparseMatrix<T>
的全特化,其中 T
= Real。
所有重写的虚拟函数在 sparse_matrix.h 中有文档说明。
更多...
#include <laspack_matrix.h>
Public 成员函数 | |
LaspackMatrix (const Parallel::Communicator &comm) | |
构造函数;将矩阵初始化为空,没有任何结构,即矩阵无法使用。因此,此构造函数仅适用于类的成员矩阵。 所有其他矩阵应在所有必要信息都可用的数据流的某一点创建。 更多... | |
LaspackMatrix (LaspackMatrix &&)=delete | |
此类手动管理C风格的结构(QMatrix),因此我们不希望生成任何自动复制/移动函数, 且不能默认析构函数。 更多... | |
LaspackMatrix (const LaspackMatrix &)=delete | |
LaspackMatrix & | operator= (const LaspackMatrix &)=delete |
LaspackMatrix & | operator= (LaspackMatrix &&)=delete |
virtual | ~LaspackMatrix () |
virtual bool | need_full_sparsity_pattern () const override |
LaspackMatrix 需要完整的稀疏性模式。 更多... | |
virtual void | update_sparsity_pattern (const SparsityPattern::Graph &) override |
更新矩阵的稀疏性模式。这将告诉底层矩阵存储方案如何映射 ![]() | |
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 |
初始化LaspackMatrix对象的属性,包括矩阵的行数、列数、非零元素的预估数量等。这些参数将影响矩阵的内存分配和性能。 更多... | |
virtual void | init (ParallelType=PARALLEL) override |
初始化LaspackMatrix对象,指定并行类型(默认为PARALLEL)。 这个函数用于指定矩阵的并行计算方式。 更多... | |
virtual void | clear () override |
清空LaspackMatrix对象,释放分配的内存和资源。 这个函数用于清除矩阵的数据和状态。 更多... | |
virtual void | zero () override |
将LaspackMatrix对象的所有元素置零。 这个函数用于将矩阵中的所有元素设置为零。 更多... | |
virtual std::unique_ptr < SparseMatrix< T > > | zero_clone () const override |
创建一个与LaspackMatrix对象具有相同属性但所有元素为零的新矩阵。 这个函数用于创建一个与原矩阵具有相同大小和属性的全零矩阵。 更多... | |
virtual std::unique_ptr < SparseMatrix< T > > | clone () const override |
克隆LaspackMatrix对象,创建一个具有相同属性和数据的新矩阵。 这个函数用于创建一个与原矩阵具有相同大小、属性和数据的新矩阵。 更多... | |
virtual void | close () override |
关闭LaspackMatrix对象,标记矩阵已经完成构建,不再修改其结构。 这个函数用于标记矩阵的状态为已完成构建,之后不再修改其结构。 更多... | |
virtual numeric_index_type | m () const override |
返回LaspackMatrix对象的行数。 这个函数用于获取矩阵的行数。 更多... | |
virtual numeric_index_type | n () const override |
返回LaspackMatrix对象的列数。 这个函数用于获取矩阵的列数。 更多... | |
virtual numeric_index_type | row_start () const override |
返回LaspackMatrix对象的行起始位置。 这个函数用于获取矩阵的行起始位置,通常用于稀疏矩阵的索引操作。 更多... | |
virtual numeric_index_type | row_stop () const override |
返回LaspackMatrix对象的行结束位置。 这个函数用于获取矩阵的行结束位置,通常用于稀疏矩阵的索引操作。 更多... | |
virtual void | set (const numeric_index_type i, const numeric_index_type j, const T value) override |
设置LaspackMatrix对象的指定位置 ![]() value。 更多... | |
virtual void | add (const numeric_index_type i, const numeric_index_type j, const T value) override |
将 ![]() value。 更多... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) override |
将一个DenseMatrix对象的元素加到LaspackMatrix对象的指定行和列。 更多... | |
virtual void | add_matrix (const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &dof_indices) override |
将一个DenseMatrix对象的元素加到LaspackMatrix对象的指定自由度索引。 更多... | |
virtual void | add (const T a, const SparseMatrix< T > &X) override |
计算矩阵 ![]() ![]() ![]() ![]() | |
virtual T | operator() (const numeric_index_type i, const numeric_index_type j) const override |
获取LaspackMatrix对象的指定位置 ![]() | |
virtual Real | l1_norm () const override |
返回矩阵的 ![]() | |
virtual Real | linfty_norm () const override |
返回矩阵的 ![]() | |
virtual bool | closed () const override |
检查LaspackMatrix对象是否已关闭。 这个函数用于检查矩阵是否已经完成构建并关闭,不再修改其结构。 更多... | |
virtual void | print_personal (std::ostream &os=libMesh::out) const override |
打印LaspackMatrix对象的信息到指定的输出流(默认为libMesh::out)。 这个函数用于将矩阵的信息输出到指定的输出流中。 更多... | |
virtual void | get_diagonal (NumericVector< T > &dest) const override |
获取矩阵的对角线元素,并存储到指定的NumericVector对象中。 这个函数用于获取矩阵的对角线元素。 更多... | |
virtual void | get_transpose (SparseMatrix< T > &dest) const override |
获取矩阵的转置,并存储到指定的SparseMatrix对象中。 这个函数用于获取矩阵的转置矩阵。 更多... | |
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 成员函数 | |
numeric_index_type | pos (const numeric_index_type i, const numeric_index_type j) const |
Private 属性 | |
QMatrix | _QMat |
Laspack稀疏矩阵指针。 更多... | |
std::vector< numeric_index_type > | _csr |
压缩行索引。 更多... | |
std::vector< std::vector < numeric_index_type > ::const_iterator > | _row_start |
压缩行索引数据结构中每行的起始位置。 更多... | |
bool | _closed |
指示矩阵是否已关闭的标志。 更多... | |
友元 | |
class | LaspackVector< T > |
使其他Laspack数据类型成为友元类。 更多... | |
class | LaspackLinearSolver< T > |
LaspackMatrix类封装了Laspack库中的QMatrix对象。 目前,Laspack仅支持实数数据类型,因此这个类是对 SparseMatrix<T>
的全特化,其中 T
= Real。
所有重写的虚拟函数在 sparse_matrix.h 中有文档说明。
<T>的特化版本,其中T为Real类型。该类提供了与SparseMatrix相关的功能,并使用Laspack库进行实际计算。
在文件 laspack_matrix.h 第 56 行定义.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
在文件 reference_counter.h 第 119 行定义.
libMesh::LaspackMatrix< T >::LaspackMatrix | ( | const Parallel::Communicator & | comm | ) |
构造函数;将矩阵初始化为空,没有任何结构,即矩阵无法使用。因此,此构造函数仅适用于类的成员矩阵。 所有其他矩阵应在所有必要信息都可用的数据流的某一点创建。
在使用之前,必须使用 init
(...) 初始化矩阵。
comm | 通信器,用于并行计算。 |
在文件 laspack_matrix.C 第 237 行定义.
|
delete |
此类手动管理C风格的结构(QMatrix),因此我们不希望生成任何自动复制/移动函数, 且不能默认析构函数。
|
delete |
|
virtual |
在文件 laspack_matrix.C 第 246 行定义.
|
inlineprotectedvirtualinherited |
创建子矩阵和 reinit_submatrix 例程的受保护实现。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 483 行定义.
参考自 libMesh::SparseMatrix< T >::create_submatrix() , 以及 libMesh::SparseMatrix< T >::reinit_submatrix().
|
overridevirtual |
将 处的值增加
value。
i | 指定元素的行索引。 |
j | 指定元素的列索引。 |
value | 要增加的值。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 388 行定义.
|
overridevirtual |
计算矩阵 的
,其中
是标量,
是矩阵。 计算结果存储在LaspackMatrix对象中。
a | 标量值。 |
X | 要与矩阵相乘的SparseMatrix对象。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 416 行定义.
参考 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 |
将一个DenseMatrix对象的元素加到LaspackMatrix对象的指定行和列。
dm | 包含要添加的元素的DenseMatrix对象。 |
rows | 要添加的元素所在的行索引。 |
cols | 要添加的元素所在的列索引。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 201 行定义.
参考 libMesh::initialized(), libMesh::DenseMatrixBase< T >::m() , 以及 libMesh::DenseMatrixBase< T >::n().
|
overridevirtual |
将一个DenseMatrix对象的元素加到LaspackMatrix对象的指定自由度索引。
dm | 包含要添加的元素的DenseMatrix对象。 |
dof_indices | 要添加的元素所在的自由度索引。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 407 行定义.
|
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().
|
overridevirtual |
清空LaspackMatrix对象,释放分配的内存和资源。 这个函数用于清除矩阵的数据和状态。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 254 行定义.
参考 libMesh::libMeshPrivateData::_is_initialized , 以及 libMesh::initialized().
|
overridevirtual |
克隆LaspackMatrix对象,创建一个具有相同属性和数据的新矩阵。 这个函数用于创建一个与原矩阵具有相同大小、属性和数据的新矩阵。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 319 行定义.
|
overridevirtual |
关闭LaspackMatrix对象,标记矩阵已经完成构建,不再修改其结构。 这个函数用于标记矩阵的状态为已完成构建,之后不再修改其结构。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 499 行定义.
|
inlineoverridevirtual |
检查LaspackMatrix对象是否已关闭。 这个函数用于检查矩阵是否已经完成构建并关闭,不再修改其结构。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.h 第 244 行定义.
参考 libMesh::LaspackMatrix< T >::_closed.
|
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 |
获取矩阵的对角线元素,并存储到指定的NumericVector对象中。 这个函数用于获取矩阵的对角线元素。
dest | 存储矩阵对角线元素的NumericVector对象。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 221 行定义.
|
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 |
获取矩阵的转置,并存储到指定的SparseMatrix对象中。 这个函数用于获取矩阵的转置矩阵。
dest | 存储矩阵转置的SparseMatrix对象。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 229 行定义.
|
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 |
初始化LaspackMatrix对象的属性,包括矩阵的行数、列数、非零元素的预估数量等。这些参数将影响矩阵的内存分配和性能。
m | 矩阵的行数。 |
n | 矩阵的列数。 |
m_l | 矩阵的局部行数(仅在并行计算中使用)。 |
n_l | 矩阵的局部列数(仅在并行计算中使用)。 |
nnz | 非零元素的预估数量(默认为30)。 |
noz | 零元素的预估数量(默认为10)。 |
blocksize | 矩阵的块大小(默认为1)。 |
|
overridevirtual |
初始化LaspackMatrix对象,指定并行类型(默认为PARALLEL)。 这个函数用于指定矩阵的并行计算方式。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 150 行定义.
参考 libMesh::libMeshPrivateData::_is_initialized , 以及 libMesh::initialized().
|
inlinevirtualinherited |
true,否则为
false。
在文件 sparse_matrix.h 第 102 行定义.
参考 libMesh::SparseMatrix< T >::_is_initialized.
参考自 libMesh::PetscMatrix< T >::_get_submatrix().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlinevirtualinherited |
获取此进程拥有的行数。
被 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.h 第 212 行定义.
参考 libMesh::SparseMatrix< T >::row_start() , 以及 libMesh::SparseMatrix< T >::row_stop().
|
overridevirtual |
返回LaspackMatrix对象的行数。 这个函数用于获取矩阵的行数。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 332 行定义.
|
inlinevirtualinherited |
|
overridevirtual |
返回LaspackMatrix对象的列数。 这个函数用于获取矩阵的列数。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 342 行定义.
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
在文件 reference_counter.h 第 85 行定义.
参考 libMesh::ReferenceCounter::_n_objects.
参考自 libMesh::LibMeshInit::~LibMeshInit().
|
inlineoverridevirtual |
|
overridevirtual |
获取LaspackMatrix对象的指定位置 处的值。 这个函数用于获取矩阵的特定元素的值。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 462 行定义.
|
delete |
|
delete |
|
private |
i | 行索引。 |
j | 列索引。 |
在文件 laspack_matrix.C 第 475 行定义.
|
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 行定义.
|
inlineoverridevirtual |
打印LaspackMatrix对象的信息到指定的输出流(默认为libMesh::out)。 这个函数用于将矩阵的信息输出到指定的输出流中。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.h 第 250 行定义.
参考 libMesh::SparseMatrix< T >::print().
|
inlinevirtualinherited |
此函数与上述函数类似,但允许您重用 "submatrix" 的现有稀疏性模式,而不是再次分配它。 如果经常提取相同大小的子矩阵,这应该更有效。
在文件 sparse_matrix.h 第 415 行定义.
参考 libMesh::SparseMatrix< T >::_get_submatrix().
|
overridevirtual |
返回LaspackMatrix对象的行起始位置。 这个函数用于获取矩阵的行起始位置,通常用于稀疏矩阵的索引操作。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 352 行定义.
|
overridevirtual |
返回LaspackMatrix对象的行结束位置。 这个函数用于获取矩阵的行结束位置,通常用于稀疏矩阵的索引操作。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 360 行定义.
|
overridevirtual |
设置LaspackMatrix对象的指定位置 处的值为
value。
i | 指定元素的行索引。 |
j | 指定元素的列索引。 |
value | 要设置的值。 |
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 368 行定义.
|
overridevirtual |
更新矩阵的稀疏性模式。这将告诉底层矩阵存储方案如何映射 元素。
graph | 稀疏性模式的图形。 |
重载 libMesh::SparseMatrix< T > .
在文件 laspack_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 |
将LaspackMatrix对象的所有元素置零。 这个函数用于将矩阵中的所有元素设置为零。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 270 行定义.
|
overridevirtual |
创建一个与LaspackMatrix对象具有相同属性但所有元素为零的新矩阵。 这个函数用于创建一个与原矩阵具有相同大小和属性的全零矩阵。
实现了 libMesh::SparseMatrix< T >.
在文件 laspack_matrix.C 第 300 行定义.
|
virtualinherited |
将所有行条目设置为 0,然后将 diag_value
放在对角线条目。
被 libMesh::DiagonalMatrix< T > , 以及 libMesh::PetscMatrix< T > 重载.
在文件 sparse_matrix.C 第 216 行定义.
|
friend |
在文件 laspack_matrix.h 第 308 行定义.
|
friend |
使其他Laspack数据类型成为友元类。
在文件 laspack_matrix.h 第 307 行定义.
|
private |
|
staticprotectedinherited |
Actually holds the data.
在文件 reference_counter.h 第 124 行定义.
|
private |
压缩行索引。
这个成员变量存储了LaspackMatrix对象的稀疏矩阵的压缩行索引 压缩行索引是一种数据结构,用于有效地存储矩阵的非零元素的位置信息,以节省内存和提高计算效率。
在文件 laspack_matrix.h 第 289 行定义.
|
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().
|
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().
|
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().
|
private |
Laspack稀疏矩阵指针。
在文件 laspack_matrix.h 第 281 行定义.
|
private |
压缩行索引数据结构中每行的起始位置。
这个成员变量存储了LaspackMatrix对象的稀疏矩阵压缩行索引数据结构中每行的起始位置。 这些起始位置告诉程序在压缩行索引中的哪个位置开始存储每行的非零元素。这有助于高效地访问矩阵的行元素。
在文件 laspack_matrix.h 第 297 行定义.
|
protectedinherited |
与此对象关联的 sparsity
pattern。在需要时, 应查询其入口计数(或使用 need_full_sparsity_pattern,模式)。
在文件 sparse_matrix.h 第 500 行定义.