AFEPack
|
#include <FEMSpace.h>
公有类型 | |
enum | { dim = DIM, dow = DOW, tdim = TDIM } |
typedef value_type | value_t |
typedef Element< value_t, DIM, DOW, TDIM > | element_t |
typedef FEMSpace< value_t, DIM, DOW, TDIM > | fe_space_t |
typedef DOFInfo< value_t, DIM, DOW, TDIM > | dof_info_t |
typedef element_t::template_t | template_t |
typedef Mesh< DIM, DOW > | mesh_t |
typedef mesh_t::bmark_t | bmark_t |
typedef std::vector< element_t > ::iterator | ElementIterator |
typedef std::vector< element_t > ::const_iterator | ConstElementIterator |
公有成员 | |
FEMSpace (mesh_t &=*((mesh_t *) NULL), std::vector< template_t > &=*((std::vector< template_t > *) NULL)) | |
FEMSpace (const fe_space_t &) | |
virtual | ~FEMSpace () |
fe_space_t & | operator= (const fe_space_t &) |
void | reinit (mesh_t &=*((mesh_t *) NULL), std::vector< template_t > &=*((std::vector< template_t > *) NULL)) |
const mesh_t & | mesh () const |
mesh_t & | mesh () |
const std::vector< template_t > & | templateElement () const |
std::vector< template_t > & | templateElement () |
const template_t & | templateElement (int i) const |
template_t & | templateElement (int i) |
int | n_element () |
const std::vector< element_t > & | element () const |
std::vector< element_t > & | element () |
const element_t & | element (int i) const |
element_t & | element (int i) |
const DegreeOfFreedom & | dof () const |
DegreeOfFreedom & | dof () |
const std::vector< dof_info_t > & | dofInfo () const |
std::vector< dof_info_t > & | dofInfo () |
const dof_info_t & | dofInfo (int i) const |
dof_info_t & | dofInfo (int i) |
unsigned int | n_dof () const |
const std::vector< int > & | geometryDof (int i, int j) const |
const std::vector< int > & | geometryDof (int i, const Geometry &g) const |
const std::vector< DOFIndex > & | dofIndex () const |
const DOFIndex & | dofIndex (int i) const |
const bmark_t & | dofBoundaryMark (int i) const |
bmark_t & | dofBoundaryMark (int i) |
virtual void | buildElement (bool lazy=false) |
virtual void | buildDofBoundaryMark () |
void | buildDof () |
void | updateDofInterpPoint () |
ElementIterator | beginElement () |
ConstElementIterator | beginElement () const |
ElementIterator | endElement () |
ConstElementIterator | endElement () const |
DeclException1 (ExcDOFData, std::string,<< "DOF data uncompatible: "<< arg1) | |
const unsigned int & | efficiencyFlag () const |
unsigned int & | efficiencyFlag () |
template<class T > | |
T * | new_property (const element_t &e, const property_id_t< T > &pid) const |
template<class T > | |
T * | get_property (const element_t &e, const property_id_t< T > &pid) const |
template<class T > | |
void | free_property (const element_t &e, const property_id_t< T > &pid) const |
void | threadBuildElement (bool lazy, int n_thread=1, int rank=0) |
void | threadBuildDof0 (std::vector< std::vector< bool > > &, pthread_mutex_t &, int n_thread=1, int rank=0) |
void | threadBuildDof1 (std::vector< std::vector< bool > > &, pthread_mutex_t &, int n_thread=1, int rank=0) |
私有属性 | |
mesh_t * | msh |
std::vector< template_t > * | tmp_ele |
std::vector< element_t > | ele |
DegreeOfFreedom | df |
std::vector< dof_info_t > | df_in |
u_int | effi_flag |
友元 | |
class | Element< value_t, DIM, DOW, TDIM > |
Finite element space is the main class used to implement the global manipulation of degree of freedom. It contains a template element array, which is the templates for all the element, and an element array. Other data are used to construct the information of global degree of freedom. The class is designed open-minded for the user to implement different finite element classes freely by re-implement the member function buildElement
.
typedef mesh_t::bmark_t FEMSpace< value_type, DIM, DOW, TDIM >::bmark_t |
typedef std::vector<element_t>::const_iterator FEMSpace< value_type, DIM, DOW, TDIM >::ConstElementIterator |
typedef DOFInfo<value_t, DIM, DOW,TDIM> FEMSpace< value_type, DIM, DOW, TDIM >::dof_info_t |
typedef std::vector<element_t>::iterator FEMSpace< value_type, DIM, DOW, TDIM >::ElementIterator |
typedef Mesh<DIM,DOW> FEMSpace< value_type, DIM, DOW, TDIM >::mesh_t |
typedef element_t::template_t FEMSpace< value_type, DIM, DOW, TDIM >::template_t |
typedef value_type FEMSpace< value_type, DIM, DOW, TDIM >::value_t |
FEMSpace< value_type, DIM, DOW, TDIM >::FEMSpace | ( | mesh_t & | = *((mesh_t *) NULL) , |
std::vector< template_t > & | = *((std::vector< template_t > *) NULL) |
||
) | [explicit] |
Default constructor.
FEMSpace< value_type, DIM, DOW, TDIM >::FEMSpace | ( | const fe_space_t & | ) |
Copy constructor.
virtual FEMSpace< value_type, DIM, DOW, TDIM >::~FEMSpace | ( | ) | [virtual] |
Destructor.
ElementIterator FEMSpace< value_type, DIM, DOW, TDIM >::beginElement | ( | ) | [inline] |
Begin element iterator.
ConstElementIterator FEMSpace< value_type, DIM, DOW, TDIM >::beginElement | ( | ) | const [inline] |
void FEMSpace< value_type, DIM, DOW, TDIM >::buildDof | ( | ) |
Build degree of freedom for the finite element space.
virtual void FEMSpace< value_type, DIM, DOW, TDIM >::buildDofBoundaryMark | ( | ) | [virtual] |
Build the boundary marker of degree of freedom according the boundary marker of the geometry the degree of freedom on.
virtual void FEMSpace< value_type, DIM, DOW, TDIM >::buildElement | ( | bool | lazy = false | ) | [virtual] |
Build the element in the finite element space by appointing the template element index. Need to be re-implemented in derived class.
FEMSpace< value_type, DIM, DOW, TDIM >::DeclException1 | ( | ExcDOFData | , |
std::string | , | ||
<< "DOF data uncompatible: "<< | arg1 | ||
) |
const DegreeOfFreedom& FEMSpace< value_type, DIM, DOW, TDIM >::dof | ( | ) | const [inline] |
DegreeOfFreedom& FEMSpace< value_type, DIM, DOW, TDIM >::dof | ( | ) | [inline] |
const bmark_t& FEMSpace< value_type, DIM, DOW, TDIM >::dofBoundaryMark | ( | int | i | ) | const [inline] |
bmark_t& FEMSpace< value_type, DIM, DOW, TDIM >::dofBoundaryMark | ( | int | i | ) | [inline] |
const std::vector<DOFIndex>& FEMSpace< value_type, DIM, DOW, TDIM >::dofIndex | ( | ) | const [inline] |
const DOFIndex& FEMSpace< value_type, DIM, DOW, TDIM >::dofIndex | ( | int | i | ) | const [inline] |
const std::vector<dof_info_t>& FEMSpace< value_type, DIM, DOW, TDIM >::dofInfo | ( | ) | const [inline] |
std::vector<dof_info_t>& FEMSpace< value_type, DIM, DOW, TDIM >::dofInfo | ( | ) | [inline] |
const dof_info_t& FEMSpace< value_type, DIM, DOW, TDIM >::dofInfo | ( | int | i | ) | const [inline] |
dof_info_t& FEMSpace< value_type, DIM, DOW, TDIM >::dofInfo | ( | int | i | ) | [inline] |
const unsigned int& FEMSpace< value_type, DIM, DOW, TDIM >::efficiencyFlag | ( | ) | const [inline] |
unsigned int& FEMSpace< value_type, DIM, DOW, TDIM >::efficiencyFlag | ( | ) | [inline] |
const std::vector<element_t>& FEMSpace< value_type, DIM, DOW, TDIM >::element | ( | ) | const [inline] |
std::vector<element_t>& FEMSpace< value_type, DIM, DOW, TDIM >::element | ( | ) | [inline] |
const element_t& FEMSpace< value_type, DIM, DOW, TDIM >::element | ( | int | i | ) | const [inline] |
element_t& FEMSpace< value_type, DIM, DOW, TDIM >::element | ( | int | i | ) | [inline] |
ElementIterator FEMSpace< value_type, DIM, DOW, TDIM >::endElement | ( | ) | [inline] |
End element iterator.
ConstElementIterator FEMSpace< value_type, DIM, DOW, TDIM >::endElement | ( | ) | const [inline] |
void FEMSpace< value_type, DIM, DOW, TDIM >::free_property | ( | const element_t & | e, |
const property_id_t< T > & | pid | ||
) | const [inline] |
const std::vector<int>& FEMSpace< value_type, DIM, DOW, TDIM >::geometryDof | ( | int | i, |
int | j | ||
) | const [inline] |
const std::vector<int>& FEMSpace< value_type, DIM, DOW, TDIM >::geometryDof | ( | int | i, |
const Geometry & | g | ||
) | const [inline] |
T* FEMSpace< value_type, DIM, DOW, TDIM >::get_property | ( | const element_t & | e, |
const property_id_t< T > & | pid | ||
) | const [inline] |
const mesh_t& FEMSpace< value_type, DIM, DOW, TDIM >::mesh | ( | ) | const [inline] |
mesh_t& FEMSpace< value_type, DIM, DOW, TDIM >::mesh | ( | ) | [inline] |
unsigned int FEMSpace< value_type, DIM, DOW, TDIM >::n_dof | ( | ) | const [inline] |
int FEMSpace< value_type, DIM, DOW, TDIM >::n_element | ( | ) | [inline] |
T* FEMSpace< value_type, DIM, DOW, TDIM >::new_property | ( | const element_t & | e, |
const property_id_t< T > & | pid | ||
) | const [inline] |
fe_space_t& FEMSpace< value_type, DIM, DOW, TDIM >::operator= | ( | const fe_space_t & | ) |
Copy operator.
void FEMSpace< value_type, DIM, DOW, TDIM >::reinit | ( | mesh_t & | = *((mesh_t *) NULL) , |
std::vector< template_t > & | = *((std::vector< template_t > *) NULL) |
||
) |
Reinitialization.
const std::vector<template_t>& FEMSpace< value_type, DIM, DOW, TDIM >::templateElement | ( | ) | const [inline] |
std::vector<template_t>& FEMSpace< value_type, DIM, DOW, TDIM >::templateElement | ( | ) | [inline] |
const template_t& FEMSpace< value_type, DIM, DOW, TDIM >::templateElement | ( | int | i | ) | const [inline] |
template_t& FEMSpace< value_type, DIM, DOW, TDIM >::templateElement | ( | int | i | ) | [inline] |
void FEMSpace< value_type, DIM, DOW, TDIM >::threadBuildDof0 | ( | std::vector< std::vector< bool > > & | , |
pthread_mutex_t & | , | ||
int | n_thread = 1 , |
||
int | rank = 0 |
||
) |
void FEMSpace< value_type, DIM, DOW, TDIM >::threadBuildDof1 | ( | std::vector< std::vector< bool > > & | , |
pthread_mutex_t & | , | ||
int | n_thread = 1 , |
||
int | rank = 0 |
||
) |
void FEMSpace< value_type, DIM, DOW, TDIM >::threadBuildElement | ( | bool | lazy, |
int | n_thread = 1 , |
||
int | rank = 0 |
||
) |
void FEMSpace< value_type, DIM, DOW, TDIM >::updateDofInterpPoint | ( | ) |
Update interpolate point of DOFs when the structure of the mesh is reserved while the location of the mesh points are changed. Designed for moving mesh method.
friend class Element< value_t, DIM, DOW, TDIM > [friend] |
DegreeOfFreedom FEMSpace< value_type, DIM, DOW, TDIM >::df [private] |
Degree of freedom.
std::vector<dof_info_t> FEMSpace< value_type, DIM, DOW, TDIM >::df_in [private] |
Information of degree of freedoms.
u_int FEMSpace< value_type, DIM, DOW, TDIM >::effi_flag [private] |
the flag is used for efficiency
std::vector<element_t> FEMSpace< value_type, DIM, DOW, TDIM >::ele [private] |
Element array.
mesh_t* FEMSpace< value_type, DIM, DOW, TDIM >::msh [private] |
Mesh the finite element space on.
std::vector<template_t>* FEMSpace< value_type, DIM, DOW, TDIM >::tmp_ele [private] |
Template element array.