这个类为基于laspackc的串行向量数据结构提供了一个很好的接口。 所有被覆盖的虚函数都记录在numeric_vector.h中。 更多...
#include <laspack_matrix.h>
Public 成员函数 | |
LaspackVector (const Parallel::Communicator &comm, const ParallelType=AUTOMATIC) | |
Dummy-Constructor. 更多... | |
LaspackVector (const Parallel::Communicator &comm, const numeric_index_type n, const ParallelType=AUTOMATIC) | |
Constructor. 更多... | |
LaspackVector (const Parallel::Communicator &comm, const numeric_index_type n, const numeric_index_type n_local, const ParallelType=AUTOMATIC) | |
Constructor. 更多... | |
LaspackVector (const Parallel::Communicator &comm, const numeric_index_type N, const numeric_index_type n_local, const std::vector< numeric_index_type > &ghost, const ParallelType=AUTOMATIC) | |
Constructor. 更多... | |
LaspackVector< T > & | operator= (const LaspackVector< T > &v) |
Copy assignment operator. 更多... | |
LaspackVector (LaspackVector &&)=delete | |
This class manages a C-style struct (QVector) manually, so we don't want to allow any automatic copy/move functions to be generated, and we can't default the destructor. 更多... | |
LaspackVector (const LaspackVector &)=delete | |
LaspackVector & | operator= (LaspackVector &&)=delete |
virtual | ~LaspackVector () |
LaspackVector 对象的析构函数。 更多... | |
virtual void | close () override |
Close the vector. 更多... | |
virtual void | clear () override |
Clear the vector. 更多... | |
virtual void | zero () override |
Set all elements of the vector to zero. 更多... | |
virtual std::unique_ptr < NumericVector< T > > | zero_clone () const override |
创建并返回一个指向该对象的零克隆的 unique_ptr。 更多... | |
virtual std::unique_ptr < NumericVector< T > > | clone () const override |
创建并返回一个指向该对象的克隆的 unique_ptr。 更多... | |
virtual void | init (const numeric_index_type N, const numeric_index_type n_local, const bool fast=false, const ParallelType ptype=AUTOMATIC) override |
使用给定的全局大小和局部大小初始化向量。 更多... | |
virtual void | init (const numeric_index_type N, const bool fast=false, const ParallelType ptype=AUTOMATIC) override |
使用给定的全局大小初始化向量。 更多... | |
virtual void | init (const numeric_index_type N, const numeric_index_type n_local, const std::vector< numeric_index_type > &ghost, const bool fast=false, const ParallelType=AUTOMATIC) override |
使用给定的全局大小、局部大小和 ghost 参数指定的索引初始化向量,并为其保留内存。 更多... | |
virtual void | init (const NumericVector< T > &other, const bool fast=false) override |
使用另一个向量的内容初始化向量。 更多... | |
virtual NumericVector< T > & | operator= (const T s) override |
将标量值赋给向量的所有元素。 更多... | |
virtual NumericVector< T > & | operator= (const NumericVector< T > &v) override |
将一个向量的内容赋值给另一个向量。 更多... | |
virtual NumericVector< T > & | operator= (const std::vector< T > &v) override |
将一个 std::vector 的内容赋给向量。 更多... | |
virtual Real | min () const override |
返回向量的最小元素。 更多... | |
virtual Real | max () const override |
返回向量的最大元素。 更多... | |
virtual T | sum () const override |
返回向量的所有元素之和。 更多... | |
virtual Real | l1_norm () const override |
返回向量的 L1 范数。 更多... | |
virtual Real | l2_norm () const override |
返回向量的 L2 范数。 更多... | |
virtual Real | linfty_norm () const override |
返回向量的 Linfinity 范数。 更多... | |
virtual numeric_index_type | size () const override |
返回向量的大小(全局维度)。 更多... | |
virtual numeric_index_type | local_size () const override |
返回向量的局部大小(局部维度)。 更多... | |
virtual numeric_index_type | first_local_index () const override |
返回向量的第一个局部索引。 更多... | |
virtual numeric_index_type | last_local_index () const override |
返回向量的最后一个局部索引。 更多... | |
virtual T | operator() (const numeric_index_type i) const override |
返回指定索引处向量的值。 更多... | |
virtual NumericVector< T > & | operator+= (const NumericVector< T > &v) override |
将另一个向量的元素按元素加到该向量。 更多... | |
virtual NumericVector< T > & | operator-= (const NumericVector< T > &v) override |
将另一个向量的元素按元素从该向量中减去。 更多... | |
virtual NumericVector< T > & | operator*= (const NumericVector< T > &v) override |
将该向量的元素按元素与另一个向量的元素相乘。 更多... | |
virtual NumericVector< T > & | operator/= (const NumericVector< T > &v) override |
将该向量的元素按元素除以另一个向量的元素。 更多... | |
virtual void | reciprocal () override |
计算向量中所有元素的倒数(1/x)。 更多... | |
virtual void | conjugate () override |
计算向量中所有元素的复共轭。 更多... | |
virtual void | set (const numeric_index_type i, const T value) override |
设置指定索引处的元素值。 更多... | |
virtual void | add (const numeric_index_type i, const T value) override |
将指定值添加到指定索引处的元素。 更多... | |
virtual void | add (const T s) override |
将指定的标量值添加到向量的每个元素。 更多... | |
virtual void | add (const NumericVector< T > &v) override |
将另一个向量的元素按元素加到该向量。 更多... | |
virtual void | add (const T a, const NumericVector< T > &v) override |
将另一个向量的元素按元素乘以标量值并添加到该向量。 更多... | |
virtual void | add_vector (const NumericVector< T > &v, const SparseMatrix< T > &A) override |
将一个向量添加到该向量并将结果存储在其中。 更多... | |
virtual void | add_vector_transpose (const NumericVector< T > &v, const SparseMatrix< T > &A) override |
将一个向量的转置添加到该向量并将结果存储在其中。 更多... | |
virtual void | scale (const T factor) override |
缩放向量的所有元素,将它们乘以指定的标量因子。 更多... | |
virtual void | abs () override |
计算向量的每个元素的绝对值。 更多... | |
virtual T | dot (const NumericVector< T > &v) const override |
计算向量与另一个向量的点积。 更多... | |
virtual void | localize (std::vector< T > &v_local) const override |
将向量的元素本地化,以便在不同处理器之间交换。 更多... | |
virtual void | localize (NumericVector< T > &v_local) const override |
将向量的元素本地化,以便在不同处理器之间交换。 更多... | |
virtual void | localize (NumericVector< T > &v_local, const std::vector< numeric_index_type > &send_list) const override |
将向量的元素本地化,以便在不同处理器之间交换,但仅发送指定的索引。 更多... | |
virtual void | localize (std::vector< T > &v_local, const std::vector< numeric_index_type > &indices) const override |
将向量的元素本地化,以便在不同处理器之间交换,但仅发送指定的索引。 更多... | |
virtual void | localize (const numeric_index_type first_local_idx, const numeric_index_type last_local_idx, const std::vector< numeric_index_type > &send_list) override |
本地化向量的一部分,以便在不同处理器之间交换,但仅发送指定的索引。 更多... | |
virtual void | localize_to_one (std::vector< T > &v_local, const processor_id_type proc_id=0) const override |
将向量本地化到指定处理器。 更多... | |
virtual void | pointwise_mult (const NumericVector< T > &vec1, const NumericVector< T > &vec2) override |
对向量的每个元素执行逐元素乘法。 更多... | |
virtual void | pointwise_divide (const NumericVector< T > &vec1, const NumericVector< T > &vec2) override |
对向量的每个元素执行逐元素除法。 更多... | |
virtual void | swap (NumericVector< T > &v) override |
交换两个向量的内容。 更多... | |
virtual std::size_t | max_allowed_id () const override |
获取允许的最大ID(索引)。 更多... | |
virtual bool | initialized () const |
检查向量是否已经初始化。 更多... | |
ParallelType | type () const |
获取向量的类型。 更多... | |
ParallelType & | type () |
获取向量的类型。 更多... | |
virtual bool | closed () const |
检查向量是否已经关闭并准备好进行计算。 更多... | |
virtual Real | subset_l1_norm (const std::set< numeric_index_type > &indices) const |
获取指定条目的向量的 ![]() | |
virtual Real | subset_l2_norm (const std::set< numeric_index_type > &indices) const |
获取指定条目的向量的 ![]() | |
virtual Real | subset_linfty_norm (const std::set< numeric_index_type > &indices) const |
获取指定条目的向量的最大绝对值,即指定条目的 ![]() | |
Real | l2_norm_diff (const NumericVector< T > &other_vec) const |
获取 ![]() ![]() ![]() this。 更多... | |
virtual T | el (const numeric_index_type i) const |
获取向量的第 i 个条目。 更多... | |
virtual void | get (const std::vector< numeric_index_type > &index, T *values) const |
一次访问多个组件。 values 将 *不会* 重新分配空间;它应该已经具有足够的空间。 默认实现对每个索引调用 operator() ,但某些实现可能在此处提供更快的方法。 更多... | |
void | get (const std::vector< numeric_index_type > &index, std::vector< T > &values) const |
一次访问多个组件。 values 将被调整大小,如果需要,将被填充。 默认实现对每个索引调用 operator() ,但某些实现可能在此处提供更快的方法。 更多... | |
NumericVector< T > & | operator*= (const T a) |
将向量缩放为 a , ![]() u.scale(a)。 更多... | |
NumericVector< T > & | operator/= (const T a) |
将向量缩放为 1/a , ![]() u.scale (1. 更多... | |
virtual void | add_vector (const T *v, const std::vector< numeric_index_type > &dof_indices) |
计算 ![]() v 是一个指针, 每个 dof_indices [i] 指定了要添加的值 v [i] 的位置。 这应该在子类中进行重写以提高效率。请注意,此方法的库实现是线程安全的。 更多... | |
void | add_vector (const std::vector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
计算 ![]() v 是一个 std::vector, 每个 dof_indices [i] 指定了要添加的值 v [i] 的位置 默认实现对每个索引调用 operator() ,但某些实现可能在此处提供更快的方法。 请注意,此方法的库实现是线程安全的。 更多... | |
void | add_vector (const NumericVector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
计算 ![]() v 是一个 NumericVector, 每个 dof_indices [i] 指定了要添加的值 v(i) 的位置。此方法是线程安全的。 更多... | |
void | add_vector (const DenseVector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
计算 ![]() v 是一个 DenseVector, 每个 dof_indices [i] 指定了要添加的值 v(i) 的位置。此方法是线程安全的。 更多... | |
void | add_vector (const NumericVector< T > &v, const ShellMatrix< T > &A) |
计算 ![]() ShellMatrix A 和 NumericVector v 的乘积添加到 this。 更多... | |
virtual void | insert (const T *v, const std::vector< numeric_index_type > &dof_indices) |
将 v 的条目插入到 *this 中,位置由 dof_indices 指定。请注意,此方法的库实现是线程安全的。 更多... | |
void | insert (const NumericVector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
将 v 的条目插入到 *this 中,位置由 v 指定。 只要使用 NumericVector 的库实现,此方法是线程安全的。 更多... | |
void | insert (const DenseVector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
将 v 的条目插入到 *this 中,位置由 v 指定。 只要使用 NumericVector 的库实现,此方法是线程安全的。 更多... | |
void | insert (const DenseSubVector< T > &v, const std::vector< numeric_index_type > &dof_indices) |
将 v 的条目插入到 *this 中,位置由 v 指定。 只要使用 NumericVector 的库实现,此方法是线程安全的。 更多... | |
virtual int | compare (const NumericVector< T > &other_vector, const Real threshold=TOLERANCE) const |
比较 this 与 other_vector 的等效性,(在给定的 threshold 内) 如果等效则返回 -1 ,或者返回第一个索引,其中 abs (a[i]-b[i]) 超过阈值。 更多... | |
virtual int | local_relative_compare (const NumericVector< T > &other_vector, const Real threshold=TOLERANCE) const |
比较该向量与另一个向量的局部相对差异。 更多... | |
virtual void | print (std::ostream &os=libMesh::out) const |
打印本地向量的内容,默认输出到 libMesh::out 流。 更多... | |
template<> | |
void | print (std::ostream &os) const |
virtual void | print_global (std::ostream &os=libMesh::out) const |
打印全局向量的内容,默认输出到 libMesh::out 流。 更多... | |
template<> | |
void | print_global (std::ostream &os) const |
virtual void | print_matlab (const std::string &="") const |
以Matlab的稀疏矩阵格式打印向量内容。可选择将向量打印到名为 name 的文件中。 如果未指定 name,则内容将被打印到屏幕上。 更多... | |
virtual void | create_subvector (NumericVector< T > &subvector, const std::vector< numeric_index_type > &rows) const |
使用 rows 中的索引从该向量中填充 subvector。类似于 SparseMatrix 类的 create_submatrix() 函数, 当前仅对 PetscVectors 实现了此功能。 更多... | |
bool | readable () const |
检查该向量是否能够用于全局操作。 更多... | |
bool | compatible (const NumericVector< T > &v) const |
检查该向量和向量 v 是否能够一起用于全局操作。 更多... | |
静态 Public 成员函数 | |
static std::unique_ptr < NumericVector< T > > | build (const Parallel::Communicator &comm, const SolverPackage solver_package=libMesh::default_solver_package()) |
构建一个 NumericVector 对象。 更多... | |
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 成员函数 | |
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 属性 | |
bool | _is_closed |
用于跟踪向量的值在在一些或全部处理器上进行插入或添加值操作后是否在所有处理器上保持一致的标志。 更多... | |
bool | _is_initialized |
在调用 init() 后设置为 true。 更多... | |
ParallelType | _type |
向量的类型。 更多... | |
std::mutex | _numeric_vector_mutex |
用于执行线程安全操作的互斥锁。 更多... | |
静态 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 属性 | |
QVector | _vec |
用于保存向量条目的实际 Laspack 向量数据类型。 更多... | |
友元 | |
class | LaspackLinearSolver< T > |
使其他 Laspack 数据类型成为友元类,以便它们可以访问私有成员。 更多... | |
这个类为基于laspackc的串行向量数据结构提供了一个很好的接口。 所有被覆盖的虚函数都记录在numeric_vector.h中。
在文件 laspack_matrix.h 第 42 行定义.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
在文件 reference_counter.h 第 119 行定义.
|
inlineexplicit |
Dummy-Constructor.
使用通信器 comm
和并行类型 ptype
创建 LaspackVector 对象,维度为 0。
Dimension=0 创建一个维度为0的 LaspackVector 对象。
comm | 通信器对象,用于并行计算。 |
parallel_type | 并行类型,默认为 AUTOMATIC。 |
在文件 laspack_vector.h 第 552 行定义.
参考 libMesh::NumericVector< T >::_type.
|
inlineexplicit |
Constructor.
使用通信器 comm
和维度 n
,初始化 LaspackVector 对象并将所有元素初始化为零。
Set dimension to n
and initialize all elements with zero. 构造函数。将向量维度设置为 n
并将所有元素初始化为零。
comm | 通信器对象,用于并行计算。 |
n | 向量的全局维度。 |
parallel_type | 并行类型,默认为 AUTOMATIC。 |
在文件 laspack_vector.h 第 565 行定义.
参考 libMesh::LaspackVector< T >::init().
|
inline |
Constructor.
使用通信器 comm
、维度 n
、本地维度 n_local
初始化 LaspackVector 对象并将所有元素初始化为零。
Set local dimension to n_local
, the global dimension to n
, and initialize all elements with zero. 构造函数。将向量的局部维度设置为 n_local,全局维度设置为
n,并将所有元素初始化为零。
comm | 通信器对象,用于并行计算。 |
n | 向量的全局维度。 |
n_local | 向量的局部维度。 |
parallel_type | 并行类型,默认为 AUTOMATIC。 |
在文件 laspack_vector.h 第 579 行定义.
参考 libMesh::LaspackVector< T >::init().
|
inline |
Constructor.
使用通信器 comm
、维度 N
、本地维度 n_local
和幽灵元素索引 ghost
初始化 LaspackVector 对象。
Set local dimension to n_local
, the global dimension to n
, but additionally reserve memory for the indices specified by the ghost
argument. 构造函数。将向量的局部维度设置为 n_local,全局维度设置为
n,同时为
ghost
参数指定的索引保留内存。
comm | 通信器对象,用于并行计算。 |
N | 向量的全局维度。 |
n_local | 向量的局部维度。 |
ghost | 要为其保留内存的索引。 |
parallel_type | 并行类型,默认为 AUTOMATIC。 |
在文件 laspack_vector.h 第 594 行定义.
参考 libMesh::LaspackVector< T >::init().
|
delete |
This class manages a C-style struct (QVector) manually, so we don't want to allow any automatic copy/move functions to be generated, and we can't default the destructor.
由于这个类手动管理 C 风格的结构体 (QVector),因此不希望生成任何自动生成的复制/移动函数,也不能默认析构函数。
|
delete |
|
inlinevirtual |
LaspackVector 对象的析构函数。
在文件 laspack_vector.h 第 610 行定义.
|
overridevirtual |
计算向量的每个元素的绝对值。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 298 行定义.
参考 std::abs() , 以及 libMesh::initialized().
|
inlineoverridevirtual |
将指定值添加到指定索引处的元素。
i | 索引值。 |
value | 要添加的值。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 832 行定义.
|
overridevirtual |
将指定的标量值添加到向量的每个元素。
s | 要添加的标量值。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 211 行定义.
|
overridevirtual |
将另一个向量的元素按元素加到该向量。
v | 要相加的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 233 行定义.
|
overridevirtual |
将另一个向量的元素按元素乘以标量值并添加到该向量。
a | 用于乘法的标量值。 |
v | 要相加的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 241 行定义.
参考 libMesh::LaspackVector< T >::size().
|
overridevirtual |
将一个向量添加到该向量并将结果存储在其中。
v | 要相加的向量。 |
A | 用于相加的稀疏矩阵。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 264 行定义.
参考 libMesh::LaspackVector< T >::_vec.
|
virtualinherited |
计算 ,其中
v
是一个指针, 每个 dof_indices
[i] 指定了要添加的值 v
[i] 的位置。 这应该在子类中进行重写以提高效率。请注意,此方法的库实现是线程安全的。
v | 一个指向值的指针。 |
dof_indices | 每个要添加值的位置的索引集合。 |
被 libMesh::PetscVector< T > , 以及 libMesh::EpetraVector< T > 重载.
在文件 numeric_vector.C 第 379 行定义.
参考自 libMesh::SparseMatrix< T >::vector_mult_add().
|
inlineinherited |
计算 ,其中
v
是一个 std::vector, 每个 dof_indices
[i] 指定了要添加的值 v
[i] 的位置 默认实现对每个索引调用 operator()
,但某些实现可能在此处提供更快的方法。 请注意,此方法的库实现是线程安全的。
v | 包含要添加的值的 std::vector。 |
dof_indices | 每个要添加值的位置的索引集合。 |
在文件 numeric_vector.h 第 1041 行定义.
|
inherited |
计算 ,其中
v
是一个 NumericVector, 每个 dof_indices
[i] 指定了要添加的值 v(i)
的位置。此方法是线程安全的。
v | 另一个数值向量。 |
dof_indices | 每个要添加值的位置的索引集合。 |
在文件 numeric_vector.C 第 391 行定义.
参考 libMesh::NumericVector< T >::readable() , 以及 libMesh::NumericVector< T >::size().
|
inlineinherited |
计算 ,其中
v
是一个 DenseVector, 每个 dof_indices
[i] 指定了要添加的值 v(i)
的位置。此方法是线程安全的。
v | 另一个数值向量。 |
dof_indices | 每个要添加值的位置的索引集合。 |
在文件 numeric_vector.h 第 1053 行定义.
参考 libMesh::DenseVector< T >::empty() , 以及 libMesh::DenseVector< T >::size().
|
inherited |
计算 , 即将
ShellMatrix
A
和 NumericVector
v
的乘积添加到 this。
v | 另一个数值向量。 |
A | Shell 矩阵。 |
在文件 numeric_vector.C 第 405 行定义.
参考 libMesh::ShellMatrix< T >::vector_mult_add().
|
overridevirtual |
将一个向量的转置添加到该向量并将结果存储在其中。
v | 要相加的向量的转置。 |
A | 用于相加的稀疏矩阵。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 281 行定义.
|
staticinherited |
构建一个 NumericVector 对象。
comm | 通信器对象,表示通信方式。 |
solver_package | 线性求解器包的类型。 |
在文件 numeric_vector.C 第 50 行定义.
参考 libMesh::EIGEN_SOLVERS, libMesh::LASPACK_SOLVERS , 以及 libMesh::TRILINOS_SOLVERS.
参考自 libMesh::DiagonalMatrix< T >::DiagonalMatrix(), libMesh::DofMap::enforce_adjoint_constraints_exactly(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::DofMap::enforce_constraints_on_residual() , 以及 libMesh::DofMap::process_mesh_constraint_rows().
|
inlineoverridevirtual |
Clear the vector.
清空向量,将所有元素设为零。
重载 libMesh::NumericVector< T > .
在文件 laspack_vector.h 第 715 行定义.
参考 libMesh::libMeshPrivateData::_is_initialized , 以及 libMesh::initialized().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Close the vector.
关闭向量。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 702 行定义.
|
inlinevirtualinherited |
检查向量是否已经关闭并准备好进行计算。
在文件 numeric_vector.h 第 180 行定义.
参考 libMesh::NumericVector< T >::_is_closed.
参考自 libMesh::DofMap::enforce_adjoint_constraints_exactly(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::PetscVector< T >::localize(), libMesh::DofMap::max_constraint_error(), libMesh::EigenSparseVector< T >::operator=(), libMesh::LaspackVector< T >::operator=() , 以及 libMesh::PetscVector< T >::operator=().
|
virtualinherited |
比较 this
与 other_vector
的等效性,(在给定的 threshold
内) 如果等效则返回 -1
,或者返回第一个索引,其中 abs
(a[i]-b[i]) 超过阈值。
other_vector | 另一个数值向量。 |
threshold | 阈值。 |
-1
,否则返回第一个不等效的索引。 在文件 numeric_vector.C 第 109 行定义.
参考 std::abs().
|
inherited |
检查该向量和向量 v
是否能够一起用于全局操作。
v | 要比较的另一个向量。 |
在文件 numeric_vector.C 第 423 行定义.
参考 libMesh::NumericVector< T >::first_local_index(), libMesh::NumericVector< T >::last_local_index(), libMesh::NumericVector< T >::local_size(), libMesh::NumericVector< T >::readable() , 以及 libMesh::NumericVector< T >::size().
|
overridevirtual |
计算向量中所有元素的复共轭。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 187 行定义.
|
inlinevirtualinherited |
使用 rows
中的索引从该向量中填充 subvector。类似于
SparseMatrix 类的 create_submatrix()
函数, 当前仅对 PetscVectors 实现了此功能。
subvector | 要填充的子向量。 |
rows | 包含用于选择要填充到子向量的索引的向量。 |
被 libMesh::PetscVector< T > , 以及 libMesh::EpetraVector< T > 重载.
在文件 numeric_vector.h 第 871 行定义.
|
staticinherited |
在文件 reference_counter.C 第 100 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter.
|
overridevirtual |
计算向量与另一个向量的点积。
v | 用于计算点积的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 309 行定义.
参考 libMesh::LaspackVector< T >::_vec , 以及 libMesh::initialized().
|
inlinevirtualinherited |
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
在文件 reference_counter.C 第 94 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter.
|
inlineoverridevirtual |
返回向量的第一个局部索引。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 793 行定义.
|
inlinevirtualinherited |
一次访问多个组件。 values
将 *不会* 重新分配空间;它应该已经具有足够的空间。 默认实现对每个索引调用 operator()
,但某些实现可能在此处提供更快的方法。
index | 要获取的索引集合。 |
values | 存储获取值的数组。 |
被 libMesh::PetscVector< T > 重载.
在文件 numeric_vector.h 第 1012 行定义.
参考自 libMesh::DofMap::enforce_adjoint_constraints_exactly(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::DofMap::enforce_constraints_on_residual() , 以及 libMesh::DofMap::max_constraint_error().
|
inlineinherited |
一次访问多个组件。 values
将被调整大小,如果需要,将被填充。 默认实现对每个索引调用 operator()
,但某些实现可能在此处提供更快的方法。
index | 要获取的索引集合。 |
values | 存储获取值的向量。 |
在文件 numeric_vector.h 第 1026 行定义.
|
staticinherited |
Gets a string containing the reference information.
在文件 reference_counter.C 第 47 行定义.
参考 libMesh::ReferenceCounter::_counts.
参考自 libMesh::ReferenceCounter::print_info().
|
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 |
使用给定的全局大小和局部大小初始化向量。
N | 向量的全局维度。 |
n_local | 向量的局部维度。 |
fast | 快速初始化标志,默认为 false。 |
ptype | 并行类型,默认为 AUTOMATIC。 |
|
inlineoverridevirtual |
使用给定的全局大小初始化向量。
N | 向量的全局维度。 |
fast | 快速初始化标志,默认为 false。 |
ptype | 并行类型,默认为 AUTOMATIC。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 667 行定义.
|
overridevirtual |
使用给定的全局大小、局部大小和 ghost
参数指定的索引初始化向量,并为其保留内存。
N | 向量的全局维度。 |
n_local | 向量的局部维度。 |
ghost | 要为其保留内存的索引。 |
fast | 快速初始化标志,默认为 false。 |
ptype | 并行类型,默认为 AUTOMATIC。 |
|
overridevirtual |
使用另一个向量的内容初始化向量。
other | 要复制内容的向量。 |
fast | 快速初始化标志,默认为 false。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 692 行定义.
参考 libMesh::NumericVector< T >::local_size(), libMesh::NumericVector< T >::size() , 以及 libMesh::NumericVector< T >::type().
|
inlinevirtualinherited |
检查向量是否已经初始化。
在文件 numeric_vector.h 第 159 行定义.
参考 libMesh::NumericVector< T >::_is_initialized.
参考自 libMesh::PetscVector< T >::create_subvector() , 以及 libMesh::PetscVector< T >::init().
|
virtualinherited |
将 v
的条目插入到 *this 中,位置由 dof_indices
指定。请注意,此方法的库实现是线程安全的。
v | 一个指向值的指针。 |
dof_indices | 每个要插入值的位置的索引集合。 |
被 libMesh::PetscVector< T > , 以及 libMesh::EpetraVector< T > 重载.
在文件 numeric_vector.C 第 84 行定义.
|
inherited |
将 v
的条目插入到 *this 中,位置由 v
指定。 只要使用 NumericVector
的库实现,此方法是线程安全的。
v | 一个数值向量。 |
dof_indices | 每个要插入值的位置的索引集合。 |
在文件 numeric_vector.C 第 96 行定义.
参考 libMesh::NumericVector< T >::readable() , 以及 libMesh::NumericVector< T >::size().
|
inlineinherited |
将 v
的条目插入到 *this 中,位置由 v
指定。 只要使用 NumericVector
的库实现,此方法是线程安全的。
v | 一个 DenseVector。 |
dof_indices | 每个要插入值的位置的索引集合。 |
在文件 numeric_vector.h 第 1077 行定义.
参考 libMesh::DenseVector< T >::empty() , 以及 libMesh::DenseVector< T >::size().
|
inlineinherited |
将 v
的条目插入到 *this 中,位置由 v
指定。 只要使用 NumericVector
的库实现,此方法是线程安全的。
v | 一个 DenseSubVector。 |
dof_indices | 每个要插入值的位置的索引集合。 |
在文件 numeric_vector.h 第 1089 行定义.
参考 libMesh::DenseSubVector< T >::empty() , 以及 libMesh::DenseSubVector< T >::size().
|
overridevirtual |
返回向量的 L1 范数。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 54 行定义.
参考 libMesh::closed() , 以及 libMesh::Real.
|
overridevirtual |
返回向量的 L2 范数。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 64 行定义.
参考 libMesh::closed() , 以及 libMesh::Real.
|
inherited |
获取 -范数的向量差值
, 其中
是
this。
other_vec | 另一个数值向量。 |
在文件 numeric_vector.C 第 363 行定义.
参考 std::norm(), libMesh::TensorTools::norm_sq(), libMesh::Real , 以及 std::sqrt().
|
inlineoverridevirtual |
返回向量的最后一个局部索引。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 804 行定义.
|
overridevirtual |
返回向量的 Linfinity 范数。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 74 行定义.
参考 libMesh::closed() , 以及 libMesh::Real.
|
virtualinherited |
比较该向量与另一个向量的局部相对差异。
如果两个向量在给定的局部相对阈值 abs
(a[i]-b[i])/max(a[i],b[i]) 下等效,则返回-1,否则返回首个不等效的索引。
other_vector | 要比较的另一个向量。 |
threshold | 允许的局部相对差异阈值(可选,默认值为 TOLERANCE)。 |
在文件 numeric_vector.C 第 137 行定义.
参考 std::abs().
|
inlineoverridevirtual |
返回向量的局部大小(局部维度)。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 782 行定义.
|
overridevirtual |
将向量的元素本地化,以便在不同处理器之间交换。
v_local | 存储本地化后的元素的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 456 行定义.
|
overridevirtual |
将向量的元素本地化,以便在不同处理器之间交换。
v_local | 存储本地化后的元素的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 396 行定义.
|
overridevirtual |
将向量的元素本地化,以便在不同处理器之间交换,但仅发送指定的索引。
v_local | 存储本地化后的元素的向量。 |
send_list | 要发送的索引列表。 |
|
overridevirtual |
将向量的元素本地化,以便在不同处理器之间交换,但仅发送指定的索引。
v_local | 存储本地化后的元素的向量。 |
indices | 要发送的索引。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 426 行定义.
|
overridevirtual |
本地化向量的一部分,以便在不同处理器之间交换,但仅发送指定的索引。
first_local_idx | 本地索引范围的起始索引。 |
last_local_idx | 本地索引范围的结束索引。 |
send_list | 要发送的索引列表。 |
|
overridevirtual |
将向量本地化到指定处理器。
v_local | 存储本地化后的元素的向量。 |
proc_id | 目标处理器的ID。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 468 行定义.
|
overridevirtual |
返回向量的最大元素。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 493 行定义.
参考 libMesh::initialized(), libMesh::libmesh_real() , 以及 libMesh::Real.
|
inlineoverridevirtual |
|
overridevirtual |
返回向量的最小元素。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 512 行定义.
参考 libMesh::initialized(), libMesh::libmesh_real() , 以及 libMesh::Real.
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
在文件 reference_counter.h 第 85 行定义.
参考 libMesh::ReferenceCounter::_n_objects.
参考自 libMesh::LibMeshInit::~LibMeshInit().
|
inlineoverridevirtual |
返回指定索引处向量的值。
i | 索引值。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 849 行定义.
|
overridevirtual |
将该向量的元素按元素与另一个向量的元素相乘。
v | 用于相乘的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 109 行定义.
参考 libMesh::NumericVector< T >::size().
|
inlineinherited |
将向量缩放为 a
, 。等价于
u.scale(a)。
a | 缩放因子。 |
在文件 numeric_vector.h 第 463 行定义.
参考 libMesh::NumericVector< T >::scale().
|
overridevirtual |
将另一个向量的元素按元素加到该向量。
v | 要相加的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 84 行定义.
|
overridevirtual |
将另一个向量的元素按元素从该向量中减去。
v | 要相减的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 97 行定义.
|
overridevirtual |
将该向量的元素按元素除以另一个向量的元素。
v | 用于相除的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 134 行定义.
参考 libMesh::NumericVector< T >::size().
|
inlineinherited |
将向量缩放为 1/a
, 。等价于
u.scale
(1.
/a)。
a | 缩放因子。 |
在文件 numeric_vector.h 第 481 行定义.
参考 libMesh::NumericVector< T >::scale().
LaspackVector< T > & libMesh::LaspackVector< T >::operator= | ( | const LaspackVector< T > & | v | ) |
Copy assignment operator.
Calls Asgn_VV() to assign the contents of one vector to another. 赋值运算符,用于将一个向量的内容赋值给另一个向量。
v | 要赋值的向量。 |
在文件 laspack_vector.C 第 356 行定义.
参考 libMesh::LaspackVector< T >::_vec, libMesh::NumericVector< T >::closed(), libMesh::initialized() , 以及 libMesh::LaspackVector< T >::size().
|
delete |
|
overridevirtual |
将标量值赋给向量的所有元素。
s | 要赋值的标量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 325 行定义.
参考 libMesh::closed() , 以及 libMesh::initialized().
|
overridevirtual |
将一个向量的内容赋值给另一个向量。
v | 要赋值的向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 339 行定义.
|
overridevirtual |
将一个 std::vector 的内容赋给向量。
v | 要赋值的 std::vector。 |
Case 1: The vector is the same size of The global vector. Only add the local components.
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 378 行定义.
|
overridevirtual |
对向量的每个元素执行逐元素除法。
vec1 | 用于逐元素除法的第一个向量。 |
vec2 | 用于逐元素除法的第二个向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 486 行定义.
|
overridevirtual |
对向量的每个元素执行逐元素乘法。
vec1 | 用于逐元素乘法的第一个向量。 |
vec2 | 用于逐元素乘法的第二个向量。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 479 行定义.
|
inlinevirtualinherited |
打印本地向量的内容,默认输出到 libMesh::out 流。
os | 输出流,用于指定输出位置(可选,默认为 libMesh::out)。 |
在文件 numeric_vector.h 第 1121 行定义.
|
inlineinherited |
在文件 numeric_vector.h 第 1103 行定义.
参考 std::imag(), libMesh::initialized() , 以及 std::real().
|
inlinevirtualinherited |
打印全局向量的内容,默认输出到 libMesh::out 流。
os | 输出流,用于指定输出位置(可选,默认为 libMesh::out)。 |
在文件 numeric_vector.h 第 1158 行定义.
|
inlineinherited |
在文件 numeric_vector.h 第 1136 行定义.
|
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,则内容将被打印到屏幕上。
name | 用于指定输出文件名的可选参数(默认为空)。 |
被 libMesh::PetscVector< T > 重载.
在文件 numeric_vector.h 第 859 行定义.
|
inherited |
检查该向量是否能够用于全局操作。
在文件 numeric_vector.C 第 416 行定义.
参考 libMesh::closed() , 以及 libMesh::initialized().
参考自 libMesh::NumericVector< T >::add_vector(), libMesh::NumericVector< T >::compatible() , 以及 libMesh::NumericVector< T >::insert().
|
overridevirtual |
计算向量中所有元素的倒数(1/x)。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 159 行定义.
|
overridevirtual |
缩放向量的所有元素,将它们乘以指定的标量因子。
factor | 用于缩放的标量因子。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 290 行定义.
|
inlineoverridevirtual |
设置指定索引处的元素值。
i | 索引值。 |
value | 要设置的值。 |
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 815 行定义.
|
inlineoverridevirtual |
返回向量的大小(全局维度)。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 771 行定义.
参考自 libMesh::LaspackVector< T >::add() , 以及 libMesh::LaspackVector< T >::operator=().
|
virtualinherited |
获取指定条目的向量的 -范数,即指定条目的绝对值之和。
indices | 指定的索引集合。 |
在文件 numeric_vector.C 第 306 行定义.
参考 std::abs(), std::norm() , 以及 libMesh::Real.
|
virtualinherited |
获取指定条目的向量的 -范数,即指定条目平方和的平方根。
indices | 指定的索引集合。 |
在文件 numeric_vector.C 第 323 行定义.
参考 std::norm(), libMesh::TensorTools::norm_sq(), libMesh::Real , 以及 std::sqrt().
|
virtualinherited |
获取指定条目的向量的最大绝对值,即指定条目的 -范数。
indices | 指定的索引集合。 |
在文件 numeric_vector.C 第 340 行定义.
参考 std::abs(), std::norm() , 以及 libMesh::Real.
|
overridevirtual |
返回向量的所有元素之和。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.C 第 37 行定义.
|
inlineoverridevirtual |
交换两个向量的内容。
v | 要交换内容的另一个向量。 |
重载 libMesh::NumericVector< T > .
在文件 laspack_vector.h 第 863 行定义.
|
inlineinherited |
获取向量的类型。
在文件 numeric_vector.h 第 166 行定义.
参考 libMesh::NumericVector< T >::_type.
参考自 libMesh::DofMap::constrain_element_residual(), libMesh::DofMap::enforce_adjoint_constraints_exactly(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::DofMap::enforce_constraints_on_residual(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::DofMap::heterogeneously_constrain_element_jacobian_and_residual(), libMesh::DofMap::heterogeneously_constrain_element_residual(), libMesh::DistributedVector< T >::init(), libMesh::EigenSparseVector< T >::init(), libMesh::EpetraVector< T >::init(), libMesh::LaspackVector< T >::init() , 以及 libMesh::PetscVector< T >::localize().
|
inlineinherited |
获取向量的类型。
在文件 numeric_vector.h 第 173 行定义.
参考 libMesh::NumericVector< T >::_type.
|
inlineoverridevirtual |
Set all elements of the vector to zero.
将向量的所有元素置零。
实现了 libMesh::NumericVector< T >.
在文件 laspack_vector.h 第 731 行定义.
参考 libMesh::closed() , 以及 libMesh::initialized().
|
inlineoverridevirtual |
|
friend |
使其他 Laspack 数据类型成为友元类,以便它们可以访问私有成员。
在文件 laspack_vector.h 第 540 行定义.
|
staticprotectedinherited |
Actually holds the data.
在文件 reference_counter.h 第 124 行定义.
|
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 |
用于跟踪向量的值在在一些或全部处理器上进行插入或添加值操作后是否在所有处理器上保持一致的标志。
在文件 numeric_vector.h 第 913 行定义.
参考自 libMesh::NumericVector< T >::closed(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::DistributedVector< T >::localize(), libMesh::DistributedVector< T >::operator=() , 以及 libMesh::PetscVector< T >::PetscVector().
|
protectedinherited |
在调用 init() 后设置为 true。
在文件 numeric_vector.h 第 918 行定义.
参考自 libMesh::PetscVector< T >::create_subvector(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::NumericVector< T >::initialized(), libMesh::DistributedVector< T >::localize(), libMesh::DistributedVector< T >::operator=() , 以及 libMesh::PetscVector< T >::PetscVector().
|
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 |
用于执行线程安全操作的互斥锁。
在文件 numeric_vector.h 第 928 行定义.
|
protectedinherited |
向量的类型。
在文件 numeric_vector.h 第 923 行定义.
参考自 libMesh::DistributedVector< T >::DistributedVector(), libMesh::EigenSparseVector< T >::EigenSparseVector(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::PetscVector< T >::init(), libMesh::LaspackVector< T >::LaspackVector(), libMesh::PetscVector< T >::PetscVector() , 以及 libMesh::NumericVector< T >::type().
|
private |
用于保存向量条目的实际 Laspack 向量数据类型。
在文件 laspack_vector.h 第 535 行定义.
参考自 libMesh::LaspackVector< T >::add_vector(), libMesh::LaspackVector< T >::dot() , 以及 libMesh::LaspackVector< T >::operator=().