SundanceOneCellTestMesher.cpp
Go to the documentation of this file.
00001 /* @HEADER@ */
00002 // ************************************************************************
00003 //
00004 //                              Sundance
00005 //                 Copyright (2005) Sandia Corporation
00006 //
00007 // Copyright (year first published) Sandia Corporation.  Under the terms
00008 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
00009 // retains certain rights in this software.
00010 //
00011 // This library is free software; you can redistribute it and/or modify
00012 // it under the terms of the GNU Lesser General Public License as
00013 // published by the Free Software Foundation; either version 2.1 of the
00014 // License, or (at your option) any later version.
00015 //
00016 // This library is distributed in the hope that it will be useful, but
00017 // WITHOUT ANY WARRANTY; without even the implied warranty of
00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019 // Lesser General Public License for more details.
00020 //
00021 // You should have received a copy of the GNU Lesser General Public
00022 // License along with this library; if not, write to the Free Software
00023 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00024 // USA
00025 // Questions? Contact Kevin Long (krlong@sandia.gov),
00026 // Sandia National Laboratories, Livermore, California, USA
00027 //
00028 // ************************************************************************
00029 /* @HEADER@ */
00030 
00031 
00032 #include "SundanceOneCellTestMesher.hpp"
00033 
00034 using namespace Sundance;
00035 using namespace Teuchos;
00036 
00037 
00038 OneTriangleMesher::OneTriangleMesher(
00039   const Point& A,
00040   const Point& B,
00041   const Point& C,
00042   const MeshType& meshType)
00043   : MeshSourceBase(meshType, 0, MPIComm::world()),
00044     A_(A), B_(B), C_(C)
00045 {}
00046 
00047 
00048 Mesh OneTriangleMesher::fillMesh() const
00049 {
00050   Mesh mesh = createMesh(2);
00051   
00052   int a = mesh.addVertex(0, A_, 0, 0);
00053   int b = mesh.addVertex(1, B_, 0, 0);
00054   int c = mesh.addVertex(2, C_, 0, 0);
00055 
00056   mesh.addElement(0, tuple(a,b,c), 0, 0);
00057 
00058   mesh.freezeTopology();
00059 
00060   return mesh;
00061 }
00062   
00063 
00064 
00065 OneTetMesher::OneTetMesher(
00066   const Point& A,
00067   const Point& B,
00068   const Point& C,
00069   const Point& D,
00070   const MeshType& meshType)
00071   : MeshSourceBase(meshType, 0, MPIComm::world()),
00072     A_(A), B_(B), C_(C), D_(D)
00073 {}
00074 
00075 
00076 Mesh OneTetMesher::fillMesh() const
00077 {
00078   Mesh mesh = createMesh(3);
00079   
00080   int a = mesh.addVertex(0, A_, 0, 0);
00081   int b = mesh.addVertex(1, B_, 0, 0);
00082   int c = mesh.addVertex(2, C_, 0, 0);
00083   int d = mesh.addVertex(3, D_, 0, 0);
00084 
00085   mesh.addElement(0, tuple(a,b,c,d), 0, 0);
00086 
00087   return mesh;
00088 }
00089   

Site Contact