18 #ifndef LIBMESH_PERIODIC_BOUNDARY_BASE_H 
   19 #define LIBMESH_PERIODIC_BOUNDARY_BASE_H 
   22 #include "libmesh/libmesh_config.h" 
   24 #ifdef LIBMESH_ENABLE_PERIODIC 
   27 #include "libmesh/point.h" 
   28 #include "libmesh/dense_matrix.h" 
  152 #endif // LIBMESH_ENABLE_PERIODIC 
  154 #endif // LIBMESH_PERIODIC_BOUNDARY_BASE_H 
const std::set< unsigned int > & get_variables() const 
Get the set of variables for this periodic boundary condition. 
PeriodicBoundaryBase()
Constructor. 
virtual ~PeriodicBoundaryBase()=default
Destructor. 
boundary_id_type pairedboundary
void merge(const PeriodicBoundaryBase &pb)
virtual Point get_corresponding_pos(const Point &pt) const =0
This function should be overridden by derived classes to define how one finds corresponding nodes on ...
void set_variable(unsigned int var)
boundary_id_type myboundary
The boundary ID of this boundary and its counterpart. 
std::set< unsigned int > variables
Set of variables for this periodic boundary, empty means all variables possible. 
void set_transformation_matrix(const DenseMatrix< Real > &matrix)
Set the transformation matrix. 
virtual std::unique_ptr< PeriodicBoundaryBase > clone(TransformationType t=FORWARD) const =0
If we want the DofMap to be able to make copies of references and store them in the underlying map...
bool is_my_variable(unsigned int var_num) const 
The base class for defining periodic boundaries. 
const DenseMatrix< Real > & get_transformation_matrix() const 
Get the transformation matrix, if it is defined. 
定义用于有限元类型计算的密集矩阵。 用于在求和成全局矩阵之前存储单元刚度矩阵。所有被覆盖的虚函数都记录在dense_matrix_base.h中。 
std::unique_ptr< DenseMatrix< Real > > _transformation_matrix
A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary...
bool has_transformation_matrix() const