AFEPack
组合类型 | 公有类型 | 公有成员 | 私有成员 | 私有属性
MovingMesh类参考

#include <MovingMesh.h>

类MovingMesh继承关系图:
EasyMesh TriangleMesh< 2 > Mesh< 2, DOW >

所有成员的列表。

组合类型

struct  Domain
struct  Edge
struct  Vertex

公有类型

typedef GeometryBM::bmark_t bmark_t

公有成员

 MovingMesh ()
virtual ~MovingMesh ()
const std::vector< float > & monitor () const
std::vector< float > & monitor ()
const float & monitor (const int &i) const
float & monitor (const int &i)
const std::vector
< afepack::Point< 2 > > & 
moveDirection () const
std::vector< afepack::Point< 2 > > & moveDirection ()
const afepack::Point< 2 > & moveDirection (const int &i) const
afepack::Point< 2 > & moveDirection (const int &i)
std::vector< double > moveDirection (const afepack::Point< 2 > &point, const int &element) const
std::vector< std::vector
< double > > 
moveDirection (const std::vector< afepack::Point< 2 > > &point, const int &element) const
double moveDirectionDivergence (const int &element) const
const double & moveStepLength () const
double & moveStepLength ()
const int & n_moveStep () const
int & n_moveStep ()
void moveMesh ()
void outputPhysicalMesh (const std::string &file)
void outputLogicalMesh (const std::string &file)
virtual void getMonitor ()
virtual void smoothMonitor (int step=1)
virtual void updateMesh ()
virtual void updateSolution ()=0
virtual void outputSolution ()=0
virtual void getMoveStepLength ()
void readDomain (const std::string &file)

私有成员

void getLogicalMesh ()
void getMoveDirection ()
void readDummy (std::ifstream &is)
void parseBoundary ()

私有属性

Domain domain
std::vector< afepack::Point< 2 > > logical_node
double move_step_length
int n_move_step
std::vector< afepack::Point< 2 > > move_direction
std::vector< afepack::Point< 2 > > logical_move_direction
std::vector< float > mon
int n_interior_node
int n_boundary_node
std::vector< int > index
std::vector< int > interior_node_index
std::vector< int > boundary_node_index
std::vector< int > face_index
int n_boundary_face
std::vector< int > boundary_face
std::vector< std::vector< int > > mb_node
std::vector< std::vector< int > > mb_face
int n_boundary_constraint
SparsityPattern spM
SparsityPattern spN
SparsityPattern spMb

详细描述

definition of class MovingMesh. This class support only the mesh data generated by easymesh. It can serve as a 2D triangle mesh and the mesh nodes are moving according a given monitor function. To implement a problem solver based on moving mesh, the FEM space can be built on this mesh and if the virtual method Monitor is given, the mesh will move according this monitor. Another virtual method updateSolution should also be implemented in the derived class that the solution can be correctly updated on the moving mesh.

In the directory example/moving_mesh, there is a typical example to use this class to solve a viscous Burgers equation using moving mesh method.

Ҫ㷨˱ȽϴĸĽѾΪMovingMesh2D Ժijµп౾һά һʱԺᱻ


成员类型定义文档

重载Mesh< 2, DOW >


构造及析构函数文档

MovingMesh::~MovingMesh ( ) [virtual]

成员函数文档

void MovingMesh::getLogicalMesh ( ) [private]
void MovingMesh::getMonitor ( ) [virtual]
void MovingMesh::getMoveDirection ( ) [private]
void MovingMesh::getMoveStepLength ( ) [virtual]
const std::vector<float>& MovingMesh::monitor ( ) const [inline]
std::vector<float>& MovingMesh::monitor ( ) [inline]
const float& MovingMesh::monitor ( const int &  i) const [inline]
float& MovingMesh::monitor ( const int &  i) [inline]
const std::vector<afepack::Point<2> >& MovingMesh::moveDirection ( ) const [inline]
std::vector<afepack::Point<2> >& MovingMesh::moveDirection ( ) [inline]
const afepack::Point<2>& MovingMesh::moveDirection ( const int &  i) const [inline]
afepack::Point<2>& MovingMesh::moveDirection ( const int &  i) [inline]
std::vector< double > MovingMesh::moveDirection ( const afepack::Point< 2 > &  point,
const int &  element 
) const
std::vector< std::vector< double > > MovingMesh::moveDirection ( const std::vector< afepack::Point< 2 > > &  point,
const int &  element 
) const
double MovingMesh::moveDirectionDivergence ( const int &  element) const
const double& MovingMesh::moveStepLength ( ) const [inline]
double& MovingMesh::moveStepLength ( ) [inline]
const int& MovingMesh::n_moveStep ( ) const [inline]
int& MovingMesh::n_moveStep ( ) [inline]
void MovingMesh::outputLogicalMesh ( const std::string &  file)
void MovingMesh::outputPhysicalMesh ( const std::string &  file)
virtual void MovingMesh::outputSolution ( ) [pure virtual]
void MovingMesh::parseBoundary ( ) [private]
void MovingMesh::readDomain ( const std::string &  file)
void MovingMesh::readDummy ( std::ifstream &  is) [private]
void MovingMesh::smoothMonitor ( int  step = 1) [virtual]
void MovingMesh::updateMesh ( ) [virtual]
virtual void MovingMesh::updateSolution ( ) [pure virtual]

成员数据文档

std::vector<int> MovingMesh::boundary_face [private]
std::vector<int> MovingMesh::boundary_node_index [private]
std::vector<int> MovingMesh::face_index [private]
std::vector<int> MovingMesh::index [private]
std::vector<int> MovingMesh::interior_node_index [private]
std::vector<afepack::Point<2> > MovingMesh::logical_node [private]
std::vector<std::vector<int> > MovingMesh::mb_face [private]
std::vector<std::vector<int> > MovingMesh::mb_node [private]
std::vector<float> MovingMesh::mon [private]
std::vector<afepack::Point<2> > MovingMesh::move_direction [private]
double MovingMesh::move_step_length [private]
int MovingMesh::n_move_step [private]
SparsityPattern MovingMesh::spM [private]
SparsityPattern MovingMesh::spMb [private]
SparsityPattern MovingMesh::spN [private]

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