$extrastylesheet
00001 // The libMesh Finite Element Library. 00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner 00003 00004 // This library is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public 00006 // License as published by the Free Software Foundation; either 00007 // version 2.1 of the License, or (at your option) any later version. 00008 00009 // This library is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 // Lesser General Public License for more details. 00013 00014 // You should have received a copy of the GNU Lesser General Public 00015 // License along with this library; if not, write to the Free Software 00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 // Local Includes ----------------------------------- 00019 #include "libmesh/libmesh_config.h" 00020 00021 #ifdef LIBMESH_ENABLE_PERIODIC 00022 00023 #include "libmesh/boundary_info.h" // BoundaryInfo::invalid_id 00024 #include "libmesh/periodic_boundary_base.h" 00025 00026 namespace libMesh { 00027 00028 // ------------------------------------------------------------ 00029 // PeriodicBoundaryBase member functions 00030 00031 00032 PeriodicBoundaryBase::PeriodicBoundaryBase() : 00033 myboundary(BoundaryInfo::invalid_id), 00034 pairedboundary(BoundaryInfo::invalid_id) 00035 { 00036 } 00037 00038 00039 00040 PeriodicBoundaryBase::PeriodicBoundaryBase(const PeriodicBoundaryBase& o) : 00041 myboundary(o.myboundary), 00042 pairedboundary(o.pairedboundary), 00043 variables(o.variables) 00044 { 00045 } 00046 00047 00048 00049 void PeriodicBoundaryBase::set_variable(unsigned int var) 00050 { 00051 variables.insert(var); 00052 } 00053 00054 00055 00056 void PeriodicBoundaryBase::merge(const PeriodicBoundaryBase & pb) 00057 { 00058 variables.insert(pb.variables.begin(), pb.variables.end()); 00059 } 00060 00061 00062 00063 bool PeriodicBoundaryBase::is_my_variable(unsigned int var_num) const 00064 { 00065 bool a = variables.empty() || (!variables.empty() && variables.find(var_num) != variables.end()); 00066 return a; 00067 } 00068 00069 00070 } // namespace libMesh 00071 00072 #endif // LIBMESH_ENABLE_PERIODIC