MFEM v2.0
|
00001 // Copyright (c) 2010, Lawrence Livermore National Security, LLC. Produced at 00002 // the Lawrence Livermore National Laboratory. LLNL-CODE-443211. All Rights 00003 // reserved. See file COPYRIGHT for details. 00004 // 00005 // This file is part of the MFEM library. For more information and source code 00006 // availability see http://mfem.googlecode.com. 00007 // 00008 // MFEM is free software; you can redistribute it and/or modify it under the 00009 // terms of the GNU Lesser General Public License (as published by the Free 00010 // Software Foundation) version 2.1 dated February 1999. 00011 00012 #ifndef MFEM_SEGMENT 00013 #define MFEM_SEGMENT 00014 00016 class Segment : public Element 00017 { 00018 protected: 00019 int indices[2]; 00020 00021 public: 00022 00023 Segment() : Element(Geometry::SEGMENT) {} 00024 00026 Segment(const int *ind, int attr = 1); 00027 00029 Segment(int ind1, int ind2, int attr = 1); 00030 00032 virtual void SetVertices(const int *ind); 00033 00035 virtual int GetType() const { return Element::SEGMENT; } 00036 00038 virtual void GetVertices(Array<int> &v) const; 00039 00040 virtual int *GetVertices() { return indices; } 00041 00042 virtual int GetNVertices() const { return 2; } 00043 00044 virtual int GetNEdges() const { return(0); } 00045 00046 virtual const int *GetEdgeVertices(int ei) const { return(NULL); } 00047 00048 virtual Element *Duplicate(Mesh *m) const 00049 { return new Segment(indices, attribute); } 00050 00051 virtual ~Segment() { } 00052 }; 00053 00054 extern Linear1DFiniteElement SegmentFE; 00055 00056 #endif