libmesh解析
本工作只是尝试解析原libmesh的代码,供学习使用
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 
Public 成员函数 | 友元 | 所有成员列表
libMesh::DenseVectorBase< T > 模板类 参考abstract

定义用于有限元计算的抽象稠密向量基类。 可以从这个类派生出特定的稠密向量,例如 DenseSubVectors。 更多...

#include <dof_map.h>

类 libMesh::DenseVectorBase< T > 继承关系图:
[图例]

Public 成员函数

 DenseVectorBase ()=default
 构造函数。 更多...
 
 DenseVectorBase (DenseVectorBase &&)=default
 这五个特殊函数可以在该类中默认实现,因为它本身不管理任何内存。 更多...
 
 DenseVectorBase (const DenseVectorBase &)=default
 
DenseVectorBaseoperator= (const DenseVectorBase &)=default
 
DenseVectorBaseoperator= (DenseVectorBase &&)=default
 
virtual ~DenseVectorBase ()=default
 
virtual void zero ()=0
 将向量中的每个元素设置为0。由于派生类中的存储方法可能不同,需要将其声明为纯虚函数。 更多...
 
virtual T el (const unsigned int i) const =0
 
virtual T & el (const unsigned int i)=0
 
virtual unsigned int size () const =0
 
virtual bool empty () const
 
void print (std::ostream &os) const
 将向量漂亮地打印到 stdout。 更多...
 
void print_scientific (std::ostream &os, unsigned precision=8) const
 以科学计数法在额外的小数位数下打印向量的条目。 更多...
 

友元

std::ostream & operator<< (std::ostream &os, const DenseVectorBase< T > &v)
 同上,但允许使用通常的流语法进行打印。 更多...
 

详细描述

template<typename T>
class libMesh::DenseVectorBase< T >

定义用于有限元计算的抽象稠密向量基类。 可以从这个类派生出特定的稠密向量,例如 DenseSubVectors。

作者
John W. Peterson
日期
2003

在文件 dof_map.h63 行定义.

构造及析构函数说明

template<typename T>
libMesh::DenseVectorBase< T >::DenseVectorBase ( )
default

构造函数。

template<typename T>
libMesh::DenseVectorBase< T >::DenseVectorBase ( DenseVectorBase< T > &&  )
default

这五个特殊函数可以在该类中默认实现,因为它本身不管理任何内存。

template<typename T>
libMesh::DenseVectorBase< T >::DenseVectorBase ( const DenseVectorBase< T > &  )
default
template<typename T>
virtual libMesh::DenseVectorBase< T >::~DenseVectorBase ( )
virtualdefault

成员函数说明

template<typename T>
virtual T libMesh::DenseVectorBase< T >::el ( const unsigned int  i) const
pure virtual
返回
向量的 (i) 元素。
参数
i元素的索引。

libMesh::DenseVector< T >, libMesh::DenseVector< Output > , 以及 libMesh::DenseSubVector< T > 内被实现.

参考自 libMesh::DenseMatrixBase< T >::condense() , 以及 libMesh::DofMap::extract_local_vector().

template<typename T>
virtual T& libMesh::DenseVectorBase< T >::el ( const unsigned int  i)
pure virtual
返回
向量的 (i) 元素的可写引用。
参数
i元素的索引。

libMesh::DenseVector< T >, libMesh::DenseVector< Output > , 以及 libMesh::DenseSubVector< T > 内被实现.

template<typename T>
virtual bool libMesh::DenseVectorBase< T >::empty ( ) const
inlinevirtual
返回
如果 size() 为 0,则为 true。

libMesh::DenseVector< T >, libMesh::DenseVector< Output > , 以及 libMesh::DenseSubVector< T > 重载.

在文件 dense_vector_base.h86 行定义.

参考 libMesh::DenseVectorBase< T >::size().

86 { return (this->size() == 0); }
virtual unsigned int size() const =0
template<typename T>
DenseVectorBase& libMesh::DenseVectorBase< T >::operator= ( const DenseVectorBase< T > &  )
default
template<typename T>
DenseVectorBase& libMesh::DenseVectorBase< T >::operator= ( DenseVectorBase< T > &&  )
default
template<typename T >
void libMesh::DenseVectorBase< T >::print ( std::ostream &  os) const

将向量漂亮地打印到 stdout。

参数
os输出流。

在文件 dense_vector_base.C51 行定义.

52 {
53  for (auto i : make_range(this->size()))
54  os << std::setw(8)
55  << this->el(i)
56  << std::endl;
57 }
virtual unsigned int size() const =0
virtual T el(const unsigned int i) const =0
template<typename T >
void libMesh::DenseVectorBase< T >::print_scientific ( std::ostream &  os,
unsigned  precision = 8 
) const

以科学计数法在额外的小数位数下打印向量的条目。

参数
os输出流。
precision小数点后的精度。

在文件 dense_vector_base.C31 行定义.

32 {
33  // save the initial format flags
34  std::ios_base::fmtflags os_flags = os.flags();
35 
36  // Print the vector entries.
37  for (auto i : make_range(this->size()))
38  os << std::setw(10)
39  << std::scientific
40  << std::setprecision(precision)
41  << this->el(i)
42  << std::endl;
43 
44  // reset the original format flags
45  os.flags(os_flags);
46 }
virtual unsigned int size() const =0
virtual T el(const unsigned int i) const =0
template<typename T>
virtual unsigned int libMesh::DenseVectorBase< T >::size ( ) const
pure virtual
template<typename T>
virtual void libMesh::DenseVectorBase< T >::zero ( )
pure virtual

将向量中的每个元素设置为0。由于派生类中的存储方法可能不同,需要将其声明为纯虚函数。

注解
这是一个纯虚函数,需要在派生类中实现。

libMesh::DenseVector< T >, libMesh::DenseVector< Output > , 以及 libMesh::DenseSubVector< T > 内被实现.

参考自 libMesh::DofMap::extract_local_vector().

友元及相关函数文档

template<typename T>
std::ostream& operator<< ( std::ostream &  os,
const DenseVectorBase< T > &  v 
)
friend

同上,但允许使用通常的流语法进行打印。

参数
os输出流。
v要打印的稠密向量。
返回
输出流引用。

在文件 dense_vector_base.h102 行定义.

103  {
104  v.print(os);
105  return os;
106  }

该类的文档由以下文件生成: