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

该类提供了一个包装器,用于在FunctionBase<Output>兼容接口中评估(libMesh风格的)函数指针。 更多...

#include <wrapped_functor.h>

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

Public 成员函数

 WrappedFunctor (const FunctionBase< Output > &func)
 用于将FunctionBase函数包装在FEMFunctionBase兼容的shim中的构造函数。 更多...
 
 WrappedFunctor (const WrappedFunctor &)=delete
 由于包含了unique_ptr成员,因此此类无法被复制构造或赋值。 更多...
 
WrappedFunctoroperator= (const WrappedFunctor &)=delete
 
 WrappedFunctor (WrappedFunctor &&)=default
 剩余的5个特殊函数可以被默认。 更多...
 
WrappedFunctoroperator= (WrappedFunctor &&)=default
 
virtual ~WrappedFunctor ()=default
 
virtual std::unique_ptr
< FEMFunctionBase< Output > > 
clone () const override
 克隆函数,用于创建此对象的副本。 更多...
 
virtual Output operator() (const FEMContext &context, const Point &p, const Real time=0.) override
 用于计算函数在给定点和时间的值。 更多...
 
virtual void operator() (const FEMContext &context, const Point &p, const Real time, DenseVector< Output > &output) override
 用于计算函数在给定点和时间的输出向量。 更多...
 
virtual Output component (const FEMContext &context, unsigned int i, const Point &p, Real time=0.) override
 用于计算函数在给定点、时间和分量索引的特定分量的值。 更多...
 
virtual void init_context (const FEMContext &)
 准备上下文对象以供使用。 更多...
 
void operator() (const FEMContext &, const Point &p, DenseVector< Output > &output)
 计算时间无关的向量值函数的评估函数。将输出值设置在传入的output DenseVector中。 更多...
 

Protected 属性

std::unique_ptr< FunctionBase
< Output > > 
_func
 

详细描述

template<typename Output = Number>
class libMesh::WrappedFunctor< Output >

该类提供了一个包装器,用于在FunctionBase<Output>兼容接口中评估(libMesh风格的)函数指针。

所有重写的虚拟函数在fem_function_base.h中有文档。

作者
Roy Stogner
日期
2015
模板参数
Output输出类型,默认为Number。

在文件 wrapped_functor.h43 行定义.

构造及析构函数说明

template<typename Output = Number>
libMesh::WrappedFunctor< Output >::WrappedFunctor ( const FunctionBase< Output > &  func)
inline

用于将FunctionBase函数包装在FEMFunctionBase兼容的shim中的构造函数。

参数
func要包装的FunctionBase函数对象的引用。

在文件 wrapped_functor.h51 行定义.

52  : _func(func.clone())
53  { }
std::unique_ptr< FunctionBase< Output > > _func
template<typename Output = Number>
libMesh::WrappedFunctor< Output >::WrappedFunctor ( const WrappedFunctor< Output > &  )
delete

由于包含了unique_ptr成员,因此此类无法被复制构造或赋值。

template<typename Output = Number>
libMesh::WrappedFunctor< Output >::WrappedFunctor ( WrappedFunctor< Output > &&  )
default

剩余的5个特殊函数可以被默认。

template<typename Output = Number>
virtual libMesh::WrappedFunctor< Output >::~WrappedFunctor ( )
virtualdefault

成员函数说明

template<typename Output = Number>
virtual std::unique_ptr<FEMFunctionBase<Output> > libMesh::WrappedFunctor< Output >::clone ( ) const
inlineoverridevirtual

克隆函数,用于创建此对象的副本。

返回
返回包含此对象副本的std::unique_ptr。

实现了 libMesh::FEMFunctionBase< Output >.

在文件 wrapped_functor.h72 行定义.

73  {
74  return std::make_unique<WrappedFunctor<Output>>(*_func);
75  }
template<typename Output = Number>
virtual Output libMesh::WrappedFunctor< Output >::component ( const FEMContext &  context,
unsigned int  i,
const Point &  p,
Real  time = 0. 
)
inlineoverridevirtual

用于计算函数在给定点、时间和分量索引的特定分量的值。

参数
contextFEMContext对象。
i分量索引。
p三维空间点。
time时间,默认值为0。
返回
返回特定分量的值。

重载 libMesh::FEMFunctionBase< Output > .

在文件 wrapped_functor.h110 行定义.

参考 libMesh::WrappedFunctor< Output >::_func.

114  { return _func->component(i, p, time); }
std::unique_ptr< FunctionBase< Output > > _func
template<typename Output>
virtual void libMesh::FEMFunctionBase< Output >::init_context ( const FEMContext &  )
inlinevirtualinherited

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

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

参数
contextFEM上下文对象。

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

在文件 fem_function_base.h70 行定义.

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

用于计算函数在给定点和时间的值。

参数
contextFEMContext对象。
p三维空间点。
time时间,默认值为0。
返回
返回函数在给定点和时间的值。

实现了 libMesh::FEMFunctionBase< Output >.

在文件 wrapped_functor.h84 行定义.

参考 libMesh::WrappedFunctor< Output >::_func.

87  { return _func->operator()(p, time); }
std::unique_ptr< FunctionBase< Output > > _func
template<typename Output = Number>
virtual void libMesh::WrappedFunctor< Output >::operator() ( const FEMContext &  context,
const Point &  p,
const Real  time,
DenseVector< Output > &  output 
)
inlineoverridevirtual

用于计算函数在给定点和时间的输出向量。

参数
contextFEMContext对象。
p三维空间点。
time时间。
output输出向量。

实现了 libMesh::FEMFunctionBase< Output >.

在文件 wrapped_functor.h96 行定义.

参考 libMesh::WrappedFunctor< Output >::_func.

100  { _func->operator() (p, time, output); }
std::unique_ptr< FunctionBase< Output > > _func
template<typename Output >
void libMesh::FEMFunctionBase< Output >::operator() ( const FEMContext &  context,
const Point &  p,
DenseVector< Output > &  output 
)
inlineinherited

计算时间无关的向量值函数的评估函数。将输出值设置在传入的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 = Number>
WrappedFunctor& libMesh::WrappedFunctor< Output >::operator= ( const WrappedFunctor< Output > &  )
delete
template<typename Output = Number>
WrappedFunctor& libMesh::WrappedFunctor< Output >::operator= ( WrappedFunctor< Output > &&  )
default

类成员变量说明

template<typename Output = Number>
std::unique_ptr<FunctionBase<Output> > libMesh::WrappedFunctor< Output >::_func
protected

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