00001 //*****************************************************************// 00002 // Albany 2.0: Copyright 2012 Sandia Corporation // 00003 // This Software is released under the BSD license detailed // 00004 // in the file "license.txt" in the top-level Albany directory // 00005 //*****************************************************************// 00006 #ifndef ALBANY_ASCII_STKMESHSTRUCT_HPP 00007 #define ALBANY_ASCII_STKMESHSTRUCT_HPP 00008 00009 #include "Albany_GenericSTKMeshStruct.hpp" 00010 00011 //#include <Ionit_Initializer.h> 00012 00013 namespace Albany { 00014 00015 class AsciiSTKMeshStruct : public GenericSTKMeshStruct { 00016 00017 public: 00018 00019 //Constructor for meshes read from ASCII file 00020 AsciiSTKMeshStruct( 00021 const Teuchos::RCP<Teuchos::ParameterList>& params, 00022 const Teuchos::RCP<const Epetra_Comm>& epetra_comm); 00023 00024 00025 ~AsciiSTKMeshStruct(); 00026 00027 void setFieldAndBulkData( 00028 const Teuchos::RCP<const Epetra_Comm>& comm, 00029 const Teuchos::RCP<Teuchos::ParameterList>& params, 00030 const unsigned int neq_, 00031 const AbstractFieldContainer::FieldContainerRequirements& req, 00032 const Teuchos::RCP<Albany::StateInfoStruct>& sis, 00033 const unsigned int worksetSize); 00034 00036 bool hasRestartSolution() const {return false; } 00037 00039 double restartDataTime() const {return -1.0; } 00040 00041 //Is this necessary here? 00042 const bool getInterleavedOrdering() const {return this->interleavedOrdering;} 00043 00044 private: 00045 //Ioss::Init::Initializer ioInit; 00046 00047 Teuchos::RCP<const Teuchos::ParameterList> 00048 getValidDiscretizationParameters() const; 00049 00050 Teuchos::RCP<Teuchos::FancyOStream> out; 00051 bool periodic; 00052 bool contigIDs; //boolean specifying if node / element / face IDs are contiguous; only relevant for 1 processor run 00053 int NumNodes; //number of nodes 00054 int NumEles; //number of elements 00055 int NumBasalFaces; //number of faces on basal boundary 00056 double (*xyz)[3]; //hard-coded for 3D for now 00057 double* sh; 00058 double* beta; 00059 int* globalElesID; //int array to define element map 00060 int* globalNodesID; //int array to define node map 00061 int* basalFacesID; //int array to define basal face map 00062 int (*eles)[8]; //hard-coded for 3D hexes for now 00063 double *flwa; //double array that gives value of flow factor 00064 double *temper; //double array that gives value of flow factor 00065 bool have_sh; // Does surface height data exist? 00066 bool have_bf; // Does basal face connectivity file exist? 00067 bool have_flwa; // Does flwa (flow factor) file exist? 00068 bool have_temp; // Does temperature file exist? 00069 bool have_beta; // Does beta (basal fraction) file exist? 00070 int (*bf)[5]; //hard-coded for 3D hexes for now (meaning boundary faces are quads) 00071 Teuchos::RCP<Epetra_Map> elem_map; //element map 00072 Teuchos::RCP<Epetra_Map> node_map; //node map 00073 Teuchos::RCP<Epetra_Map> basal_face_map; //basalface map 00074 }; 00075 00076 } 00077 #endif