libMesh::PeriodicBoundary Class Reference

#include <periodic_boundary.h>

Inheritance diagram for libMesh::PeriodicBoundary:

List of all members.

Public Types

enum  TransformationType { FORWARD = 0, INVERSE = 1 }

Public Member Functions

 PeriodicBoundary ()
virtual ~PeriodicBoundary ()
 PeriodicBoundary (const PeriodicBoundary &o, TransformationType t=FORWARD)
 PeriodicBoundary (const RealVectorValue &vector)
virtual Point get_corresponding_pos (const Point &pt) const
virtual AutoPtr
< PeriodicBoundaryBase
clone (TransformationType t=FORWARD) const
void set_variable (unsigned int var)
void merge (const PeriodicBoundaryBase &pb)
bool is_my_variable (unsigned int var_num) const

Public Attributes

boundary_id_type myboundary
boundary_id_type pairedboundary

Protected Attributes

RealVectorValue translation_vector
std::set< unsigned int > variables

Detailed Description

The definition of a periodic boundary.

Definition at line 40 of file periodic_boundary.h.


Member Enumeration Documentation

Enumerator:
FORWARD 
INVERSE 

Definition at line 46 of file periodic_boundary_base.h.

00047     { FORWARD=0,
00048       INVERSE=1 };


Constructor & Destructor Documentation

libMesh::PeriodicBoundary::PeriodicBoundary (  ) 

Constructor

Definition at line 32 of file periodic_boundary.C.

Referenced by clone().

00032                                    :
00033   PeriodicBoundaryBase(),
00034   translation_vector()
00035 {
00036 }

virtual libMesh::PeriodicBoundary::~PeriodicBoundary (  )  [inline, virtual]

Destructor

Definition at line 51 of file periodic_boundary.h.

00051 {}

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

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

Definition at line 41 of file periodic_boundary.C.

References libMesh::PeriodicBoundaryBase::INVERSE, libMesh::PeriodicBoundaryBase::myboundary, libMesh::PeriodicBoundaryBase::pairedboundary, swap(), and translation_vector.

00041                                                                                   :
00042   PeriodicBoundaryBase(o),
00043   translation_vector(o.translation_vector)
00044 {
00045   if (t == INVERSE)
00046     {
00047       std::swap(myboundary, pairedboundary);
00048       translation_vector *= -1.0;
00049     }
00050 }

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

Constructor taking a reference to the translation vector.

Definition at line 54 of file periodic_boundary.C.

00054                                                                 :
00055   PeriodicBoundaryBase(),
00056   translation_vector(vector)
00057 {
00058 }


Member Function Documentation

AutoPtr< PeriodicBoundaryBase > libMesh::PeriodicBoundary::clone ( TransformationType  t = FORWARD  )  const [virtual]

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.

Definition at line 69 of file periodic_boundary.C.

References PeriodicBoundary().

00070 {
00071   return AutoPtr<PeriodicBoundaryBase>(new PeriodicBoundary(*this, t));
00072 }

Point libMesh::PeriodicBoundary::get_corresponding_pos ( const Point pt  )  const [virtual]

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

Implements libMesh::PeriodicBoundaryBase.

Definition at line 62 of file periodic_boundary.C.

References translation_vector.

00063 {
00064   return pt + translation_vector;
00065 }

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

Definition at line 63 of file periodic_boundary_base.C.

References libMesh::PeriodicBoundaryBase::variables.

Referenced by libMesh::FEGenericBase< OutputType >::compute_periodic_constraints().

00064 {
00065   bool a = variables.empty() || (!variables.empty() && variables.find(var_num) != variables.end());
00066   return a;
00067 }

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

Definition at line 56 of file periodic_boundary_base.C.

References libMesh::PeriodicBoundaryBase::variables.

Referenced by libMesh::DofMap::add_periodic_boundary().

00057 {
00058   variables.insert(pb.variables.begin(), pb.variables.end());
00059 }

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

Definition at line 49 of file periodic_boundary_base.C.

References libMesh::PeriodicBoundaryBase::variables.

00050 {
00051   variables.insert(var);
00052 }


Member Data Documentation

The boundary ID of this boundary and its counterpart

Definition at line 53 of file periodic_boundary_base.h.

Referenced by libMesh::DofMap::add_periodic_boundary(), and PeriodicBoundary().

std::set<unsigned int> libMesh::PeriodicBoundaryBase::variables [protected, inherited]

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

Definition at line 101 of file periodic_boundary_base.h.

Referenced by libMesh::PeriodicBoundaryBase::is_my_variable(), libMesh::PeriodicBoundaryBase::merge(), and libMesh::PeriodicBoundaryBase::set_variable().


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

Site Created By: libMesh Developers
Last modified: February 05 2013 19:55:33 UTC

Hosted By:
SourceForge.net Logo