AFEPack
|
#include <MovingMesh3D.h>
组合类型 | |
struct | Domain |
struct | Edge |
class | Solver |
struct | Surface |
struct | Vertex |
公有类型 | |
typedef GeometryBM::bmark_t | bound_t |
公有成员 | |
MovingMesh3D () | |
virtual | ~MovingMesh3D () |
const std::vector< float > & | monitor () const |
std::vector< float > & | monitor () |
const float & | monitor (const u_int &i) const |
float & | monitor (const u_int &i) |
const std::vector < afepack::Point< 3 > > & | moveDirection () const |
std::vector< afepack::Point< 3 > > & | moveDirection () |
const afepack::Point< 3 > & | moveDirection (const u_int &i) const |
afepack::Point< 3 > & | moveDirection (const u_int &i) |
std::vector< double > | moveDirection (const afepack::Point< 3 > &point, const int &element) const |
std::vector< std::vector < double > > | moveDirection (const std::vector< afepack::Point< 3 > > &point, const int &element) const |
double | moveDirectionDivergence (const u_int &element) const |
double | moveStepLength () const |
double & | moveStepLength () |
u_int | moveStep () const |
u_int & | moveStep () |
u_int | solveStep () const |
u_int & | solveStep () |
double | tolerence () const |
double & | tolerence () |
void | moveMesh () |
void | outputPhysicalMesh (const std::string &file) |
void | outputLogicalMesh (const std::string &file) |
virtual void | getMonitor () |
virtual void | smoothMonitor (u_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< 3 > > | logical_node |
double | move_step_length |
u_int | n_move_step |
std::vector< afepack::Point< 3 > > | move_direction |
std::vector< afepack::Point< 3 > > | logical_move_direction |
std::vector< float > | mon |
u_int | n_interior_node |
u_int | n_boundary_node |
std::vector< int > | index |
std::vector< u_int > | interior_node_index |
std::vector< u_int > | boundary_node_index |
u_int | n_boundary_constraint |
std::vector< int > | boundary_mark |
SparsityPattern | spM |
SparseMatrix< double > | M |
Solver | solver |
u_int | solve_step |
| |
double | tol |
静态私有属性 | |
static int | primes [] |
|
definition of class MovingMesh3D. This class support only the mesh data generated by gmesh. It can serve as a 3D tetrahedron 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. __MovingMesh3D_h__
MovingMesh3D::~MovingMesh3D | ( | ) | [virtual] |
void MovingMesh3D::getLogicalMesh | ( | ) | [private] |
void MovingMesh3D::getMonitor | ( | ) | [virtual] |
void MovingMesh3D::getMoveDirection | ( | ) | [private] |
һģTodo: Ѿ
Լĸ
<
ڱ
ڶ
void MovingMesh3D::getMoveStepLength | ( | ) | [virtual] |
< ʱֻһʵ
< ʵ
const std::vector<float>& MovingMesh3D::monitor | ( | ) | const [inline] |
std::vector<float>& MovingMesh3D::monitor | ( | ) | [inline] |
const float& MovingMesh3D::monitor | ( | const u_int & | i | ) | const [inline] |
float& MovingMesh3D::monitor | ( | const u_int & | i | ) | [inline] |
const std::vector<afepack::Point<3> >& MovingMesh3D::moveDirection | ( | ) | const [inline] |
std::vector<afepack::Point<3> >& MovingMesh3D::moveDirection | ( | ) | [inline] |
const afepack::Point<3>& MovingMesh3D::moveDirection | ( | const u_int & | i | ) | const [inline] |
afepack::Point<3>& MovingMesh3D::moveDirection | ( | const u_int & | i | ) | [inline] |
std::vector<double> MovingMesh3D::moveDirection | ( | const afepack::Point< 3 > & | point, |
const int & | element | ||
) | const |
std::vector<std::vector<double> > MovingMesh3D::moveDirection | ( | const std::vector< afepack::Point< 3 > > & | point, |
const int & | element | ||
) | const |
double MovingMesh3D::moveDirectionDivergence | ( | const u_int & | element | ) | const |
void MovingMesh3D::moveMesh | ( | ) |
u_int MovingMesh3D::moveStep | ( | ) | const [inline] |
u_int& MovingMesh3D::moveStep | ( | ) | [inline] |
double MovingMesh3D::moveStepLength | ( | ) | const [inline] |
double& MovingMesh3D::moveStepLength | ( | ) | [inline] |
void MovingMesh3D::outputLogicalMesh | ( | const std::string & | file | ) |
void MovingMesh3D::outputPhysicalMesh | ( | const std::string & | file | ) |
virtual void MovingMesh3D::outputSolution | ( | ) | [pure virtual] |
void MovingMesh3D::parseBoundary | ( | ) | [private] |
j ϵIJϱʶΪ j
ÿλ
еѭ
Ѱλڱ߽ϵ棬ڲ
߽IJϱʶΪ i
ͳÿϵĽڵĸΪÿڵȷIJϱʶ
еıѭ
ڲȥ
˵Ӧûûпǹ
ڲϱʶϳԱߵıʶ
void MovingMesh3D::readDomain | ( | const std::string & | file | ) |
ȱʡֵΪ 1
ȱʡֵΪ 1
< ı淨
< Ա淨λ
< ı淨
< Ա淨λ
< ÿѭ
void MovingMesh3D::readDummy | ( | std::ifstream & | is | ) | [private] |
void MovingMesh3D::smoothMonitor | ( | u_int | step = 1 | ) | [virtual] |
u_int MovingMesh3D::solveStep | ( | ) | const [inline] |
u_int& MovingMesh3D::solveStep | ( | ) | [inline] |
double MovingMesh3D::tolerence | ( | ) | const [inline] |
double& MovingMesh3D::tolerence | ( | ) | [inline] |
void MovingMesh3D::updateMesh | ( | ) | [virtual] |
virtual void MovingMesh3D::updateSolution | ( | ) | [pure virtual] |
std::vector<int> MovingMesh3D::boundary_mark [private] |
std::vector<u_int> MovingMesh3D::boundary_node_index [private] |
Domain MovingMesh3D::domain [private] |
std::vector<int> MovingMesh3D::index [private] |
std::vector<u_int> MovingMesh3D::interior_node_index [private] |
std::vector<afepack::Point<3> > MovingMesh3D::logical_move_direction [private] |
std::vector<afepack::Point<3> > MovingMesh3D::logical_node [private] |
SparseMatrix<double> MovingMesh3D::M [private] |
std::vector<float> MovingMesh3D::mon [private] |
std::vector<afepack::Point<3> > MovingMesh3D::move_direction [private] |
double MovingMesh3D::move_step_length [private] |
u_int MovingMesh3D::n_boundary_constraint [private] |
u_int MovingMesh3D::n_boundary_node [private] |
u_int MovingMesh3D::n_interior_node [private] |
u_int MovingMesh3D::n_move_step [private] |
int MovingMesh3D::primes [static, private] |
{ 02, 03, 05, 07, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 91 }
u_int MovingMesh3D::solve_step [private] |
Solver MovingMesh3D::solver [private] |
SparsityPattern MovingMesh3D::spM [private] |
double MovingMesh3D::tol [private] |