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

FEMFunctionBase是一个基类,用户可以从中派生出“函数样式”的对象,以在FEMSystem中使用。 更多...

#include <dirichlet_boundaries.h>

类 libMesh::FEMFunctionBase< Output > 继承关系图:
[图例]

Public 成员函数

 FEMFunctionBase (FEMFunctionBase &&)=default
 这5个特殊函数可以为这个类设置默认值。 更多...
 
 FEMFunctionBase (const FEMFunctionBase &)=default
 
FEMFunctionBaseoperator= (const FEMFunctionBase &)=default
 
FEMFunctionBaseoperator= (FEMFunctionBase &&)=default
 
virtual ~FEMFunctionBase ()=default
 
virtual void init_context (const FEMContext &)
 准备上下文对象以供使用。 更多...
 
virtual std::unique_ptr
< FEMFunctionBase< Output > > 
clone () const =0
 创建并返回函数的新副本。 更多...
 
virtual Output operator() (const FEMContext &, const Point &p, const Real time=0.)=0
 计算坐标p和时间time(默认为0)处的标量函数值。 更多...
 
void operator() (const FEMContext &, const Point &p, DenseVector< Output > &output)
 计算时间无关的向量值函数的评估函数。将输出值设置在传入的output DenseVector中。 更多...
 
virtual void operator() (const FEMContext &, const Point &p, const Real time, DenseVector< Output > &output)=0
 计算时间相关的向量值函数的评估函数。将输出值设置在传入的output DenseVector中。 更多...
 
virtual Output component (const FEMContext &, unsigned int i, const Point &p, Real time=0.)
 返回坐标p和时间time的向量分量i。 更多...
 

Protected 成员函数

 FEMFunctionBase ()=default
 默认构造函数。 更多...
 

详细描述

template<typename Output>
class libMesh::FEMFunctionBase< Output >

FEMFunctionBase是一个基类,用户可以从中派生出“函数样式”的对象,以在FEMSystem中使用。

作者
Roy Stogner
日期
2012

FEMFunctionBase类用于定义可以在FEMSystem中使用的“函数样式”对象。它提供了用于计算标量和向量值函数的接口。

在文件 dirichlet_boundaries.h43 行定义.

构造及析构函数说明

template<typename Output>
libMesh::FEMFunctionBase< Output >::FEMFunctionBase ( )
protecteddefault

默认构造函数。

template<typename Output>
libMesh::FEMFunctionBase< Output >::FEMFunctionBase ( FEMFunctionBase< Output > &&  )
default

这5个特殊函数可以为这个类设置默认值。

template<typename Output>
libMesh::FEMFunctionBase< Output >::FEMFunctionBase ( const FEMFunctionBase< Output > &  )
default
template<typename Output>
virtual libMesh::FEMFunctionBase< Output >::~FEMFunctionBase ( )
virtualdefault

成员函数说明

template<typename Output>
virtual std::unique_ptr<FEMFunctionBase<Output> > libMesh::FEMFunctionBase< Output >::clone ( ) const
pure virtual

创建并返回函数的新副本。

新副本应该足够“深”,以允许在不同线程中独立销毁和同时评估副本。

返回
返回函数的新副本。

libMesh::CompositeFEMFunction< Output >, libMesh::ParsedFEMFunction< Output >, libMesh::ParsedFEMFunction< T >, libMesh::WrappedFunctor< Output > , 以及 libMesh::ConstFEMFunction< Output > 内被实现.

参考自 libMesh::CompositeFEMFunction< Output >::attach_subfunction() , 以及 libMesh::DirichletBoundary::DirichletBoundary().

template<typename Output >
Output libMesh::FEMFunctionBase< Output >::component ( const FEMContext &  context,
unsigned int  i,
const Point &  p,
Real  time = 0. 
)
inlinevirtual

返回坐标p和时间time的向量分量i。

参数
contextFEM上下文对象。
i向量的分量索引。
p坐标点。
time时间。
返回
返回向量的指定分量值。

注意:子类不需要重写此函数,因为默认实现基于完整向量评估,通常是正确的。 注意:建议子类重写此函数,因为默认实现基于向量评估,通常是不必要的低效的。

libMesh::CompositeFEMFunction< Output >, libMesh::ParsedFEMFunction< Output >, libMesh::ParsedFEMFunction< T > , 以及 libMesh::WrappedFunctor< Output > 重载.

在文件 fem_function_base.h141 行定义.

145 {
146  DenseVector<Output> outvec(i+1);
147  (*this)(context, p, time, outvec);
148  return outvec(i);
149 }
template<typename Output>
virtual void libMesh::FEMFunctionBase< Output >::init_context ( const FEMContext &  )
inlinevirtual

准备上下文对象以供使用。

大多数问题将希望出于效率的考虑重新实现此函数,以便根据其特定的函数要求调用FE::get_*()。

参数
contextFEM上下文对象。

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

在文件 fem_function_base.h70 行定义.

70 {}
template<typename Output>
virtual Output libMesh::FEMFunctionBase< Output >::operator() ( const FEMContext &  ,
const Point &  p,
const Real  time = 0. 
)
pure virtual

计算坐标p和时间time(默认为0)处的标量函数值。

这是一个纯虚函数,因此您必须重写它。

参数
contextFEM上下文对象。
p坐标点。
time时间。
返回
返回计算结果的标量值。

libMesh::ParsedFEMFunction< Output >, libMesh::ParsedFEMFunction< T >, libMesh::CompositeFEMFunction< Output >, libMesh::WrappedFunctor< Output > , 以及 libMesh::ConstFEMFunction< Output > 内被实现.

template<typename Output >
void libMesh::FEMFunctionBase< Output >::operator() ( const FEMContext &  context,
const Point &  p,
DenseVector< Output > &  output 
)
inline

计算时间无关的向量值函数的评估函数。将输出值设置在传入的output DenseVector中。

参数
contextFEM上下文对象。
p坐标点。
output输出的向量。

在文件 fem_function_base.h153 行定义.

156 {
157  // 调用时间相关的函数,t=0。
158  this->operator()(context, p, 0., output);
159 }
virtual Output operator()(const FEMContext &, const Point &p, const Real time=0.)=0
计算坐标p和时间time(默认为0)处的标量函数值。
template<typename Output>
virtual void libMesh::FEMFunctionBase< Output >::operator() ( const FEMContext &  ,
const Point &  p,
const Real  time,
DenseVector< Output > &  output 
)
pure virtual

计算时间相关的向量值函数的评估函数。将输出值设置在传入的output DenseVector中。

这是一个纯虚函数,因此您必须重写它。

参数
contextFEM上下文对象。
p坐标点。
time时间。
output输出的向量。

libMesh::ParsedFEMFunction< Output >, libMesh::CompositeFEMFunction< Output >, libMesh::WrappedFunctor< Output > , 以及 libMesh::ConstFEMFunction< Output > 内被实现.

template<typename Output>
FEMFunctionBase& libMesh::FEMFunctionBase< Output >::operator= ( const FEMFunctionBase< Output > &  )
default
template<typename Output>
FEMFunctionBase& libMesh::FEMFunctionBase< Output >::operator= ( FEMFunctionBase< Output > &&  )
default

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