AFEPack
|
#include <MovingMesh.h>
组合类型 | |
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µп౾һά һʱԺᱻ
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 |
void MovingMesh::moveMesh | ( | ) |
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] |
Domain MovingMesh::domain [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_move_direction [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_boundary_constraint [private] |
int MovingMesh::n_boundary_face [private] |
int MovingMesh::n_boundary_node [private] |
int MovingMesh::n_interior_node [private] |
int MovingMesh::n_move_step [private] |
SparsityPattern MovingMesh::spM [private] |
SparsityPattern MovingMesh::spMb [private] |
SparsityPattern MovingMesh::spN [private] |