MFEM v2.0
segment.hpp
Go to the documentation of this file.
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines