FunctionBase是一个函数对象的基类,可以在某一点(可选地包括时间)进行评估。 更多...
#include <dirichlet_boundaries.h>
Public 成员函数 | |
FunctionBase (FunctionBase &&)=default | |
这个类的5个特殊函数可以被默认设置。 更多... | |
FunctionBase (const FunctionBase &)=default | |
FunctionBase & | operator= (const FunctionBase &)=default |
FunctionBase & | operator= (FunctionBase &&)=default |
virtual | ~FunctionBase ()=default |
virtual void | init () |
实际的初始化过程。 更多... | |
virtual void | clear () |
清除函数。 更多... | |
virtual std::unique_ptr < FunctionBase< Output > > | clone () const =0 |
virtual Output | operator() (const Point &p, const Real time=0.)=0 |
void | operator() (const Point &p, DenseVector< Output > &output) |
Evaluation function for time-independent vector-valued functions. 更多... | |
virtual void | operator() (const Point &p, const Real time, DenseVector< Output > &output)=0 |
用于时间无关的矢量值函数的评估函数。 将输出值设置在传入的 output DenseVector 中。 更多... | |
virtual Output | component (unsigned int i, const Point &p, Real time=0.) |
bool | initialized () const |
void | set_is_time_dependent (bool is_time_dependent) |
设置函数是否依赖时间的函数。 这仅应该由无法本地确定时间依赖性的子类使用。 在这种情况下,应在构造之后立即使用这个函数。 更多... | |
bool | is_time_dependent () const |
Protected 成员函数 | |
FunctionBase (const FunctionBase *master=nullptr) | |
构造函数。可选地接受一个master。 更多... | |
Protected 属性 | |
const FunctionBase * | _master |
指向我们的主函数对象的const指针,初始化为 nullptr。 可能存在需要多个函数的情况,但为了节省内存,一个主函数对象可以处理一些集中的数据。 更多... | |
bool | _initialized |
当 init() 被调用以确保一切都准备好后,可以调用 operator() (...) 时为 true。 更多... | |
bool | _is_time_dependent |
成员变量用于缓存函数是否真正依赖于时间。 更多... | |
FunctionBase是一个函数对象的基类,可以在某一点(可选地包括时间)进行评估。
FunctionBase的实例代表时间和空间的函数(数学上的意义), , 其中
v
可以是 Number
或 DenseVector<Number>。这个基类的子类实现了不同类型的数据检索,用于这些函数。
使用派生类的构造函数来创建新的对象。每个派生类的必需输入阻碍了常用的 build()
成员的有效使用。 但之后虚成员允许通过 FunctionBase
* 进行方便的、与libMesh通用的用法。
描述了FunctionBase类,它是一个函数对象的基类,用于表示在空间和时间上的数学函数。 这个类的实例可以表示标量或向量值函数,可以在指定的点和时间上进行评估。不同子类可以实现不同类型的函数对象。 使用派生类的构造函数来创建具体的函数对象。每个派生类的必需输入阻碍了常用的 build()
成员的有效使用, 但之后的虚成员允许通过 FunctionBase
* 进行方便的、与libMesh通用的用法。
在文件 dirichlet_boundaries.h 第 44 行定义.
|
inlineexplicitprotected |
构造函数。可选地接受一个master。
master | 指向主函数对象的指针(可选)。 |
在文件 function_base.h 第 206 行定义.
|
default |
这个类的5个特殊函数可以被默认设置。
|
default |
|
virtualdefault |
|
inlinevirtual |
清除函数。
这个函数可以用来清除函数对象的状态,以备重新使用。
被 libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T > , 以及 libMesh::AnalyticFunction< Output > 重载.
在文件 function_base.h 第 95 行定义.
|
pure virtual |
新副本应该足够“深”,以允许在不同线程中独立销毁和同时评估副本。
在 libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T >, libMesh::CompositeFunction< Output >, libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T >, libMesh::AnalyticFunction< Output >, libMesh::ConstFunction< Output >, libMesh::WrappedFunction< Output > , 以及 libMesh::ZeroFunction< Output > 内被实现.
参考自 libMesh::CompositeFunction< Output >::attach_subfunction() , 以及 libMesh::DirichletBoundary::DirichletBoundary().
|
inlinevirtual |
p
和时间 time
处的向量分量 i。
i+1
的DenseVector的operator(),如果operator()在该限制之外进行访问,将导致意外行为。p | 坐标点。 |
time | 时间。 |
output | 输出的向量。 |
被 libMesh::CompositeFunction< Output >, libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T > , 以及 libMesh::WrappedFunction< Output > 重载.
在文件 function_base.h 第 240 行定义.
|
inlinevirtual |
实际的初始化过程。
这个函数可以用来进行函数对象的初始化工作。
被 libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T > , 以及 libMesh::AnalyticFunction< Output > 重载.
在文件 function_base.h 第 89 行定义.
|
inline |
p
和时间 time
处的向量的分量 i。
子类可以选择重写这个函数以提高效率,因为默认实现基于向量评估,通常是不必要的低效率。
i | 分量的索引。 |
p | 坐标点。 |
time | 时间。 |
i+1
的DenseVector的operator(),如果operator() 在该限制之外进行访问,将导致意外行为。 在文件 function_base.h 第 216 行定义.
|
inline |
true
,否则返回 false。
这个函数用于查询函数对象是否依赖于时间。有些函数对象的时间依赖性是从外部确定的,因此可以使用这个函数设置。
在文件 function_base.h 第 232 行定义.
参考自 libMesh::CompositeFunction< Output >::attach_subfunction().
|
pure virtual |
p
和时间 time
(默认为0)处的标量函数值。这是一个纯虚函数,因此必须重写它。
在 libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T >, libMesh::CompositeFunction< Output >, libMesh::AnalyticFunction< Output >, libMesh::WrappedFunction< Output >, libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T > , 以及 libMesh::ConstFunction< Output > 内被实现.
|
inline |
Evaluation function for time-independent vector-valued functions.
Sets output values in the passed-in output
DenseVector.
在文件 function_base.h 第 252 行定义.
|
pure virtual |
用于时间无关的矢量值函数的评估函数。 将输出值设置在传入的 output
DenseVector 中。
p | 坐标点。 |
output | 输出的向量。 |
在 libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T >, libMesh::CompositeFunction< Output >, libMesh::ParsedFunction< Output, OutputGradient >, libMesh::ParsedFunction< T >, libMesh::AnalyticFunction< Output >, libMesh::WrappedFunction< Output > , 以及 libMesh::ConstFunction< Output > 内被实现.
|
default |
|
default |
|
inline |
设置函数是否依赖时间的函数。 这仅应该由无法本地确定时间依赖性的子类使用。 在这种情况下,应在构造之后立即使用这个函数。
在文件 function_base.h 第 224 行定义.
|
protected |
当 init()
被调用以确保一切都准备好后,可以调用 operator()
(...) 时为 true。
这个成员变量用于跟踪函数对象是否已经完成初始化,如果已经准备好进行评估,则为 true。
在文件 function_base.h 第 191 行定义.
参考自 libMesh::AnalyticFunction< Output >::AnalyticFunction(), libMesh::ConstFunction< Output >::ConstFunction(), libMesh::ParsedFunction< Output, OutputGradient >::ParsedFunction() , 以及 libMesh::WrappedFunction< Output >::WrappedFunction().
|
protected |
成员变量用于缓存函数是否真正依赖于时间。
在文件 function_base.h 第 197 行定义.
参考自 libMesh::CompositeFunction< Output >::attach_subfunction() , 以及 libMesh::ConstFunction< Output >::ConstFunction().
|
protected |
指向我们的主函数对象的const指针,初始化为 nullptr。
可能存在需要多个函数的情况,但为了节省内存,一个主函数对象可以处理一些集中的数据。
这个成员变量用于指向主函数对象的指针,有时候多个函数对象需要共享一些数据,可以通过主函数对象来管理。
在文件 function_base.h 第 184 行定义.