00001 #include "SundanceMeshBuilder.hpp" 00002 #include "SundanceOut.hpp" 00003 #include "PlayaTabs.hpp" 00004 00005 #include "SundanceExodusNetCDFMeshReader.hpp" 00006 #include "SundanceTriangleMeshReader.hpp" 00007 #include "SundancePartitionedLineMesher.hpp" 00008 #include "SundancePartitionedRectangleMesher.hpp" 00009 00010 00011 00012 using namespace Sundance; 00013 using namespace Sundance; 00014 00015 using namespace Teuchos; 00016 using namespace Sundance; 00017 00018 00019 00020 Mesh MeshBuilder::createMesh(const ParameterList& params) 00021 { 00022 TEUCHOS_TEST_FOR_EXCEPTION(!params.isParameter("type"), std::runtime_error, 00023 "field name 'type' expected but not found in MeshBuilder " 00024 "input parameter list: " << params); 00025 00026 std::string type = params.get<string>("type"); 00027 00028 MeshSource mesher; 00029 00030 if (type=="Rectangle") 00031 { 00032 mesher = new PartitionedRectangleMesher(params); 00033 } 00034 else if (type=="Line") 00035 { 00036 mesher = new PartitionedLineMesher(params); 00037 } 00038 else if (type=="Exodus") 00039 { 00040 mesher = new ExodusNetCDFMeshReader(params); 00041 } 00042 else if (type=="Triangle") 00043 { 00044 mesher = new TriangleMeshReader(params); 00045 } 00046 00047 TEUCHOS_TEST_FOR_EXCEPTION(mesher.ptr().get()==0, std::runtime_error, 00048 "null mesh source in MeshBuilder::createMesh()"); 00049 00050 return mesher.getMesh(); 00051 }