AFEPack
公有类型 | 公有成员 | 私有属性
FEMFunction< value_type, DIM, DOW, TDIM, Number >模板类参考

#include <FEMSpace.h>

所有成员的列表。

公有类型

enum  { dim = DIM, dow = DOW, tdim = TDIM }
typedef value_type value_t
typedef Number number_t
typedef Element< value_t, DIM,
DOW, TDIM
element_t
typedef FEMSpace< value_t, DIM,
DOW, TDIM
fe_space_t
typedef FEMFunction< value_t,
DIM, DOW, TDIM, number_t
fe_func_t

公有成员

 FEMFunction (fe_space_t &=*((fe_space_t *) NULL))
virtual ~FEMFunction ()
fe_space_tfemSpace ()
const fe_space_tfemSpace () const
void reinit (fe_space_t &, bool=false)
value_type value (const afepack::Point< DOW > &, const element_t &) const
std::vector< value_typegradient (const afepack::Point< DOW > &, const element_t &) const
std::vector< value_typevalue (const std::vector< afepack::Point< DOW > > &, const element_t &) const
std::vector< std::vector
< value_type > > 
gradient (const std::vector< afepack::Point< DOW > > &, const element_t &) const
value_type value (const std::vector< value_type > &, const element_t &) const
std::vector< value_typegradient (const std::vector< std::vector< value_type > > &, const element_t &) const
std::vector< value_typevalue (const std::vector< std::vector< value_type > > &, const element_t &) const
std::vector< std::vector
< value_type > > 
gradient (const std::vector< std::vector< std::vector< value_type > > > &, const element_t &) const
void loadData (const std::string &filename)
void writeData (const std::string &filename)
void writeEasyMeshData (const std::string &filename)
void writeTecplotData (const std::string &filename)
void writeOpenDXData (const std::string &filename, int flag=0) const
template<>
value_type value (const afepack::Point< DOW > &p, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< value_typegradient (const afepack::Point< DOW > &p, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< value_typevalue (const std::vector< afepack::Point< DOW > > &p, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< std::vector
< value_type > > 
gradient (const std::vector< afepack::Point< DOW > > &p, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
value_type value (const std::vector< value_type > &basis_value, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< value_typegradient (const std::vector< std::vector< value_type > > &basis_gradient, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< value_typevalue (const std::vector< std::vector< value_type > > &basis_value, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
std::vector< std::vector
< value_type > > 
gradient (const std::vector< std::vector< std::vector< value_type > > > &basis_gradient, const Element< value_type, DIM, DOW, TDIM > &e) const
template<>
void writeEasyMeshData (const std::string &filename)
template<>
void writeTecplotData (const std::string &filename)
template<>
void writeTecplotData (const std::string &filename)
template<>
void writeOpenDXData (const std::string &filename, int flag) const
template<>
void writeOpenDXData (const std::string &filename, int flag) const
template<>
void writeEasyMeshData (const std::string &filename)
template<>
void writeTecplotData (const std::string &filename)
template<>
void writeOpenDXData (const std::string &filename, int flag) const
template<>
void writeTecplotData (const std::string &filename)
template<>
void writeOpenDXData (const std::string &filename, int flag) const

私有属性

fe_space_tsp

详细描述

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
class FEMFunction< value_type, DIM, DOW, TDIM, Number >

Finite element function is a vector associated with a finite element space. The entry of the vector is related with the corresponding degree of freedom of the finite element space.


成员类型定义文档

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
typedef Element<value_t,DIM,DOW,TDIM> FEMFunction< value_type, DIM, DOW, TDIM, Number >::element_t
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
typedef FEMFunction<value_t,DIM,DOW,TDIM,number_t> FEMFunction< value_type, DIM, DOW, TDIM, Number >::fe_func_t
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
typedef FEMSpace<value_t,DIM,DOW,TDIM> FEMFunction< value_type, DIM, DOW, TDIM, Number >::fe_space_t
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
typedef Number FEMFunction< value_type, DIM, DOW, TDIM, Number >::number_t
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
typedef value_type FEMFunction< value_type, DIM, DOW, TDIM, Number >::value_t

成员枚举类型文档

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
anonymous enum
枚举值:
dim 
dow 
tdim 

构造及析构函数文档

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
FEMFunction< value_type, DIM, DOW, TDIM, Number >::FEMFunction ( fe_space_t = *((fe_space_t *) NULL))

Default constructor.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
virtual FEMFunction< value_type, DIM, DOW, TDIM, Number >::~FEMFunction ( ) [virtual]

Destructor.


成员函数文档

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
fe_space_t& FEMFunction< value_type, DIM, DOW, TDIM, Number >::femSpace ( )

Finite element space, obsolete

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
const fe_space_t& FEMFunction< value_type, DIM, DOW, TDIM, Number >::femSpace ( ) const [inline]
template<>
std::vector< value_type > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const afepack::Point< DOW > &  p,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<>
std::vector< std::vector< value_type > > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< afepack::Point< DOW > > &  p,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<>
std::vector< value_type > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< std::vector< value_type > > &  basis_gradient,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<>
std::vector< std::vector< value_type > > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< std::vector< std::vector< value_type > > > &  basis_gradient,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<value_type> FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const afepack::Point< DOW > &  ,
const element_t  
) const

Value of the function at points in certain element.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<std::vector<value_type> > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< afepack::Point< DOW > > &  ,
const element_t  
) const

Gradient of the function at points in certain element.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<value_type> FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< std::vector< value_type > > &  ,
const element_t  
) const

Value of the function at points in certain element assuming the basis function gradient is known.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<std::vector<value_type> > FEMFunction< value_type, DIM, DOW, TDIM, Number >::gradient ( const std::vector< std::vector< std::vector< value_type > > > &  ,
const element_t  
) const

Gradient of the function at points in certain element assuming the basis function gradient is known.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::loadData ( const std::string &  filename)

Load data written by writeData.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::reinit ( fe_space_t ,
bool  = false 
)

Reinitialization.

template<>
value_type FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const afepack::Point< DOW > &  p,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<>
std::vector< value_type > FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< afepack::Point< DOW > > &  p,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<>
value_type FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< value_type > &  basis_value,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const

for optimization. Assume the basis function value and gradient are known, the following functions will speedup the calculation to get the value and gradient of the finite element function.

template<>
std::vector< value_type > FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< std::vector< value_type > > &  basis_value,
const Element< value_type, DIM, DOW, TDIM > &  e 
) const
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
value_type FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const afepack::Point< DOW > &  ,
const element_t  
) const

Value of the function at a point in certain element.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<value_type> FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< afepack::Point< DOW > > &  ,
const element_t  
) const

Gradient of the function at a point in certain element.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
value_type FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< value_type > &  ,
const element_t  
) const

for optimization of the code when the basis function value and gradient are assumed known, the following functions will make it more efficient to calculate the value and gradient of the finite element function. Value of the function at a point in certain element assuming the basis function value is known.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
std::vector<value_type> FEMFunction< value_type, DIM, DOW, TDIM, Number >::value ( const std::vector< std::vector< value_type > > &  ,
const element_t  
) const

Gradient of the function at a point in certain element assuming the basis function value is known.

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::writeData ( const std::string &  filename)

Write the data of the function in internal data format. This function will output the value of the vector only used to be rereaded in.

template<>
void FEMFunction< double, 2 >::writeEasyMeshData ( const std::string &  filename)
template<>
void FEMFunction< value_type, DIM >::writeEasyMeshData ( const std::string &  filename)
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::writeEasyMeshData ( const std::string &  filename)

Write the data of the function in easymesh data format. This function will output mesh into easymesh data format at first and then output the function value on the nodes in the file named filename.dat. Only valid for 2 dimension and the mesh is turned into a RegularMesh object, for such otherwise object this function can't handle.

template<>
void FEMFunction< double, 2 >::writeOpenDXData ( const std::string &  filename,
int  flag 
) const
template<>
void FEMFunction< value_type, DIM >::writeOpenDXData ( const std::string &  filename,
int  flag 
) const
template<>
void FEMFunction< value_type, DIM >::writeOpenDXData ( const std::string &  filename,
int  flag 
) const
template<>
void FEMFunction< double, 3 >::writeOpenDXData ( const std::string &  filename,
int  flag 
) const
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::writeOpenDXData ( const std::string &  filename,
int  flag = 0 
) const

Write the data of the function in IBM Open Data Explorer data format. This function will output the value of the function on nodes of the meshand will only be avaiable for certain case becase I'm not so familiar to this data format.

参数:
filenamethe file name to write to
flagindicate to use position dependent data or connection dependent data, flag=0: position dependent data; flag=1: connection dependent data; default 0
template<>
void FEMFunction< double, 2 >::writeTecplotData ( const std::string &  filename)
template<>
void FEMFunction< double, 3 >::writeTecplotData ( const std::string &  filename)
template<>
void FEMFunction< value_type, DIM >::writeTecplotData ( const std::string &  filename)
template<>
void FEMFunction< value_type, DIM >::writeTecplotData ( const std::string &  filename)
template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
void FEMFunction< value_type, DIM, DOW, TDIM, Number >::writeTecplotData ( const std::string &  filename)

Write the data of the function in Tecplot data format. This function will output the value of the function on those interpolating point of basis functions.


成员数据文档

template<class value_type, int DIM, int DOW = DIM, int TDIM = DIM, typename Number = double>
fe_space_t* FEMFunction< value_type, DIM, DOW, TDIM, Number >::sp [private]

Finite element space.


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