• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

Albany_CismSTKMeshStruct.hpp

Go to the documentation of this file.
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_CISM_STKMESHSTRUCT_HPP
00007 #define ALBANY_CISM_STKMESHSTRUCT_HPP
00008 
00009 #include "Albany_GenericSTKMeshStruct.hpp"
00010 
00011 //#include <Ionit_Initializer.h>
00012 
00013 namespace Albany {
00014 
00015   class CismSTKMeshStruct : public GenericSTKMeshStruct {
00016 
00017     public:
00018 
00019 
00020 // Constructor for arrays passed from CISM through Albany-CISM interface
00021     CismSTKMeshStruct(
00022                   const Teuchos::RCP<Teuchos::ParameterList>& params, 
00023                   const Teuchos::RCP<const Epetra_Comm>& comm, 
00024                   const double * xyz_at_nodes_Ptr, 
00025                   const int * global_node_id_owned_map_Ptr, 
00026                   const int * global_element_id_active_owned_map_Ptr, 
00027                   const int * global_element_conn_active_Ptr, 
00028                   const int *global_basal_face_active_owned_map_Ptr, 
00029                   const int * global_basal_face_conn_active_Ptr, 
00030                   const double * beta_at_nodes_Ptr, 
00031                   const double * surf_height_at_nodes_Ptr, 
00032                   const double * flwa_at_active_elements_Ptr,
00033                   const int nNodes, const int nElementsActive, const int nCellsActive); 
00034 
00035     ~CismSTKMeshStruct();
00036 
00037     void setFieldAndBulkData(
00038                   const Teuchos::RCP<const Epetra_Comm>& comm,
00039                   const Teuchos::RCP<Teuchos::ParameterList>& params,
00040                   const unsigned int neq_,
00041                   const AbstractFieldContainer::FieldContainerRequirements& req,
00042                   const Teuchos::RCP<Albany::StateInfoStruct>& sis,
00043                   const unsigned int worksetSize) {};
00044     
00045     void constructMesh(
00046                   const Teuchos::RCP<const Epetra_Comm>& comm,
00047                   const Teuchos::RCP<Teuchos::ParameterList>& params,
00048                   const unsigned int neq_,
00049                   const AbstractFieldContainer::FieldContainerRequirements& req,
00050                   const Teuchos::RCP<Albany::StateInfoStruct>& sis,
00051                   const unsigned int worksetSize);
00052 
00053 
00055     bool hasRestartSolution() const {return hasRestartSol; }
00056 
00057     void setHasRestartSolution(bool hasRestartSolution) {hasRestartSol = hasRestartSolution; }
00058 
00060     double restartDataTime() const {return restartTime;}
00061     
00062     void setRestartDataTime(double restartT) {restartTime = restartT; }
00063 
00064     //Is this necessary here? 
00065     const bool getInterleavedOrdering() const {return this->interleavedOrdering;}
00066 
00067     private:
00068     //Ioss::Init::Initializer ioInit;
00069 
00070     Teuchos::RCP<const Teuchos::ParameterList>
00071       getValidDiscretizationParameters() const;
00072 
00073     Teuchos::RCP<Teuchos::FancyOStream> out;
00074     bool periodic;
00075     bool contigIDs; //boolean specifying if node / element / face IDs are contiguous; only relevant for 1 processor run 
00076     int NumNodes; //number of nodes
00077     int NumEles; //number of elements
00078     int NumBasalFaces; //number of faces on basal boundary
00079     double (*xyz)[3]; //hard-coded for 3D for now 
00080     double* sh;
00081     double* beta;
00082     int* globalElesID; //int array to define element map 
00083     int* globalNodesID; //int array to define node map 
00084     int* basalFacesID; //int array to define basal face map 
00085     int (*eles)[8]; //hard-coded for 3D hexes for now 
00086     double *flwa; //double array that gives value of flow factor  
00087     double *temper; //double array that gives value of flow factor  
00088     bool have_sh; // Does surface height data exist?
00089     bool have_bf; // Does basal face connectivity file exist?
00090     bool have_flwa; // Does flwa (flow factor) file exist?
00091     bool have_temp; // Does temperature file exist?
00092     bool have_beta; // Does beta (basal fraction) file exist?
00093     int (*bf)[5]; //hard-coded for 3D hexes for now (meaning boundary faces are quads)
00094     Teuchos::RCP<Epetra_Map> elem_map; //element map 
00095     Teuchos::RCP<Epetra_Map> node_map; //node map 
00096     Teuchos::RCP<Epetra_Map> basal_face_map; //basalface map 
00097     bool hasRestartSol;
00098     double restartTime;
00099   };
00100 
00101 }
00102 #endif

Generated on Wed Mar 26 2014 18:36:36 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1