// triangle tests TEUCHOS_UNIT_TEST(tSTK_IO, fields) { RCP<STK_Interface> mesh = buildMesh(8,8); std::map<std::string,Teuchos::RCP<std::vector<std::size_t> > > localIds; buildLocalIds(*mesh,localIds); FieldContainer vert0, vert1; out << "get vertices" << std::endl; mesh->getElementVertices(*localIds["eblock-0_0"],vert0); mesh->getElementVertices(*localIds["eblock-1_0"],vert1); FieldContainer ublock0, tblock0, tblock1; ublock0.resize(localIds["eblock-0_0"]->size(),4); tblock0.resize(localIds["eblock-0_0"]->size(),4); tblock1.resize(localIds["eblock-1_0"]->size(),4); out << "assigning" << std::endl; assignBlock(ublock0,vert0,xval); assignBlock(tblock0,vert0,yval); assignBlock(tblock1,vert1,block2); mesh->setSolutionFieldData("u","eblock-0_0",*localIds["eblock-0_0"],ublock0); mesh->setSolutionFieldData("T","eblock-0_0",*localIds["eblock-0_0"],tblock0); mesh->setSolutionFieldData("T","eblock-1_0",*localIds["eblock-1_0"],tblock1); out << "write to exodus" << std::endl; mesh->writeToExodus("output.exo"); }
TEUCHOS_UNIT_TEST(tSTK_IO, transient_fields) { RCP<STK_Interface> mesh = buildMesh(20,20); std::map<std::string,Teuchos::RCP<std::vector<std::size_t> > > localIds; buildLocalIds(*mesh,localIds); FieldContainer vert0, vert1; out << "get vertices" << std::endl; mesh->getElementVertices(*localIds["eblock-0_0"],vert0); mesh->getElementVertices(*localIds["eblock-1_0"],vert1); FieldContainer ublock0, tblock0, tblock1; ublock0.resize(localIds["eblock-0_0"]->size(),4); tblock0.resize(localIds["eblock-0_0"]->size(),4); tblock1.resize(localIds["eblock-1_0"]->size(),4); mesh->setupTransientExodusFile("transient.exo"); out << "assigning 3.0" << std::endl; { assignBlock(ublock0,vert0,1.0); assignBlock(tblock0,vert0,2.0); assignBlock(tblock1,vert1,3.0); mesh->setSolutionFieldData("u","eblock-0_0",*localIds["eblock-0_0"],ublock0); mesh->setSolutionFieldData("T","eblock-0_0",*localIds["eblock-0_0"],tblock0); mesh->setSolutionFieldData("T","eblock-1_0",*localIds["eblock-1_0"],tblock1); } out << "write to exodus: 3.0" << std::endl; mesh->writeToExodus(3.0); TEST_EQUALITY(mesh->getCurrentStateTime(),3.0); out << "assigning 4.5" << std::endl; { assignBlock(ublock0,vert0,6.0); assignBlock(tblock0,vert0,7.0); assignBlock(tblock1,vert1,8.0); mesh->setSolutionFieldData("u","eblock-0_0",*localIds["eblock-0_0"],ublock0); mesh->setSolutionFieldData("T","eblock-0_0",*localIds["eblock-0_0"],tblock0); mesh->setSolutionFieldData("T","eblock-1_0",*localIds["eblock-1_0"],tblock1); } out << "write to exodus: 4.5" << std::endl; mesh->writeToExodus(4.5); TEST_EQUALITY(mesh->getCurrentStateTime(),4.5); STK_ExodusReaderFactory factory("transient.exo",2); RCP<STK_Interface> mesh_read = factory.buildMesh(MPI_COMM_WORLD); TEST_EQUALITY(mesh_read->getInitialStateTime(),4.5); TEST_EQUALITY(mesh_read->getCurrentStateTime(),0.0); // writeToExodus has not yet been called }
TEUCHOS_UNIT_TEST(tSTK_IO, exodus_factory_transient_fields) { STK_ExodusReaderFactory factory("meshes/basic.gen"); RCP<STK_Interface> mesh = factory.buildUncommitedMesh(MPI_COMM_WORLD); mesh->addSolutionField("u","block_1"); mesh->addSolutionField("T","block_1"); mesh->addSolutionField("T","block_2"); factory.completeMeshConstruction(*mesh,MPI_COMM_WORLD); std::map<std::string,Teuchos::RCP<std::vector<std::size_t> > > localIds; buildLocalIds(*mesh,localIds); FieldContainer vert0, vert1; out << "get vertices" << std::endl; mesh->getElementVertices(*localIds["block_1"],vert0); mesh->getElementVertices(*localIds["block_2"],vert1); FieldContainer ublock0, tblock0, tblock1; ublock0.resize(localIds["block_1"]->size(),4); tblock0.resize(localIds["block_1"]->size(),4); tblock1.resize(localIds["block_2"]->size(),4); mesh->setupTransientExodusFile("transient_exo.exo"); out << "assigning 4.5" << std::endl; { assignBlock(ublock0,vert0,6.0); assignBlock(tblock0,vert0,7.0); assignBlock(tblock1,vert1,8.0); mesh->setSolutionFieldData("u","block_1",*localIds["block_1"],ublock0); mesh->setSolutionFieldData("T","block_1",*localIds["block_1"],tblock0); mesh->setSolutionFieldData("T","block_2",*localIds["block_2"],tblock1); } out << "write to exodus: 4.5" << std::endl; mesh->writeToExodus(4.5); }
void buildGlobalUnknowns() { buildLocalIds(); }