libMesh
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
libMesh::PeriodicBoundary Class Reference

The definition of a periodic boundary. More...

#include <periodic_boundary.h>

Inheritance diagram for libMesh::PeriodicBoundary:
[legend]

Public Types

enum  TransformationType { FORWARD =0, INVERSE =1 }
 

Public Member Functions

 PeriodicBoundary ()
 Constructor. More...
 
virtual ~PeriodicBoundary ()
 Destructor. More...
 
 PeriodicBoundary (const PeriodicBoundary &o, TransformationType t=FORWARD)
 Copy constructor, with option for the copy to represent an inverse transformation. More...
 
 PeriodicBoundary (const RealVectorValue &vector)
 Constructor taking a reference to the translation vector. More...
 
virtual Point get_corresponding_pos (const Point &pt) const override
 This function should be overridden by derived classes to define how one finds corresponding nodes on the periodic boundary pair. More...
 
virtual std::unique_ptr< PeriodicBoundaryBaseclone (TransformationType t=FORWARD) const override
 If we want the DofMap to be able to make copies of references and store them in the underlying map, this class must be clone'able, i.e. More...
 
void set_variable (unsigned int var)
 
void merge (const PeriodicBoundaryBase &pb)
 
bool is_my_variable (unsigned int var_num) const
 
bool has_transformation_matrix () const
 
const DenseMatrix< Real > & get_transformation_matrix () const
 Get the transformation matrix, if it is defined. More...
 
void set_transformation_matrix (const DenseMatrix< Real > &matrix)
 Set the transformation matrix. More...
 
const std::set< unsigned int > & get_variables () const
 Get the set of variables for this periodic boundary condition. More...
 

Public Attributes

boundary_id_type myboundary
 The boundary ID of this boundary and its counterpart. More...
 
boundary_id_type pairedboundary
 

Protected Attributes

RealVectorValue translation_vector
 
std::set< unsigned int > variables
 Set of variables for this periodic boundary, empty means all variables possible. More...
 
std::unique_ptr< DenseMatrix< Real > > _transformation_matrix
 A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary. More...
 

Detailed Description

The definition of a periodic boundary.

Author
Roy Stogner
Date
2010 Used for implementing periodic BCs via constraints.

Definition at line 44 of file periodic_boundary.h.

Member Enumeration Documentation

◆ TransformationType

Constructor & Destructor Documentation

◆ PeriodicBoundary() [1/3]

libMesh::PeriodicBoundary::PeriodicBoundary ( )

Constructor.

◆ ~PeriodicBoundary()

virtual libMesh::PeriodicBoundary::~PeriodicBoundary ( )
virtual

Destructor.

Definition at line 55 of file periodic_boundary.h.

55 {}

◆ PeriodicBoundary() [2/3]

libMesh::PeriodicBoundary::PeriodicBoundary ( const PeriodicBoundary o,
TransformationType  t = FORWARD 
)

Copy constructor, with option for the copy to represent an inverse transformation.

◆ PeriodicBoundary() [3/3]

libMesh::PeriodicBoundary::PeriodicBoundary ( const RealVectorValue vector)

Constructor taking a reference to the translation vector.

Member Function Documentation

◆ clone()

virtual std::unique_ptr<PeriodicBoundaryBase> libMesh::PeriodicBoundary::clone ( TransformationType  t = FORWARD) const
overridevirtual

If we want the DofMap to be able to make copies of references and store them in the underlying map, this class must be clone'able, i.e.

have a kind of virtual construction mechanism.

Implements libMesh::PeriodicBoundaryBase.

◆ get_corresponding_pos()

virtual Point libMesh::PeriodicBoundary::get_corresponding_pos ( const Point pt) const
overridevirtual

This function should be overridden by derived classes to define how one finds corresponding nodes on the periodic boundary pair.

Implements libMesh::PeriodicBoundaryBase.

◆ get_transformation_matrix()

const DenseMatrix<Real>& libMesh::PeriodicBoundaryBase::get_transformation_matrix ( ) const
inherited

Get the transformation matrix, if it is defined.

Throw an error if it is not defined.

◆ get_variables()

const std::set<unsigned int>& libMesh::PeriodicBoundaryBase::get_variables ( ) const
inherited

Get the set of variables for this periodic boundary condition.

◆ has_transformation_matrix()

bool libMesh::PeriodicBoundaryBase::has_transformation_matrix ( ) const
inherited
Returns
true if _transformation_matrix is not null.

◆ is_my_variable()

bool libMesh::PeriodicBoundaryBase::is_my_variable ( unsigned int  var_num) const
inherited

◆ merge()

void libMesh::PeriodicBoundaryBase::merge ( const PeriodicBoundaryBase pb)
inherited

◆ set_transformation_matrix()

void libMesh::PeriodicBoundaryBase::set_transformation_matrix ( const DenseMatrix< Real > &  matrix)
inherited

Set the transformation matrix.

When calling this method we require the following conditions: 1) matrix is square with size that matches this->variables.size() 2) the list of variables in this->variables set must all have the same FE type Both of these conditions are asserted in DBG mode.

◆ set_variable()

void libMesh::PeriodicBoundaryBase::set_variable ( unsigned int  var)
inherited

Member Data Documentation

◆ _transformation_matrix

std::unique_ptr<DenseMatrix<Real> > libMesh::PeriodicBoundaryBase::_transformation_matrix
protectedinherited

A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary.

This is necessary for periodic-boundaries with vector-valued quantities (e.g. velocity or displacement) on a sector of a circular domain, for exaple, since in that case we must map each variable to a corresponding linear combination of all the variables. We store the DenseMatrix via a unique_ptr, and an uninitialized pointer is treated as equivalent to the identity matrix.

Definition at line 147 of file periodic_boundary_base.h.

◆ myboundary

boundary_id_type libMesh::PeriodicBoundaryBase::myboundary
inherited

The boundary ID of this boundary and its counterpart.

Definition at line 59 of file periodic_boundary_base.h.

◆ pairedboundary

boundary_id_type libMesh::PeriodicBoundaryBase::pairedboundary
inherited

Definition at line 59 of file periodic_boundary_base.h.

◆ translation_vector

RealVectorValue libMesh::PeriodicBoundary::translation_vector
protected

Definition at line 85 of file periodic_boundary.h.

◆ variables

std::set<unsigned int> libMesh::PeriodicBoundaryBase::variables
protectedinherited

Set of variables for this periodic boundary, empty means all variables possible.

Definition at line 135 of file periodic_boundary_base.h.


The documentation for this class was generated from the following file: