Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef ALBANY_CISM_STKMESHSTRUCT_HPP
00007 #define ALBANY_CISM_STKMESHSTRUCT_HPP
00008
00009 #include "Albany_GenericSTKMeshStruct.hpp"
00010
00011
00012
00013 namespace Albany {
00014
00015 class CismSTKMeshStruct : public GenericSTKMeshStruct {
00016
00017 public:
00018
00019
00020
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
00065 const bool getInterleavedOrdering() const {return this->interleavedOrdering;}
00066
00067 private:
00068
00069
00070 Teuchos::RCP<const Teuchos::ParameterList>
00071 getValidDiscretizationParameters() const;
00072
00073 Teuchos::RCP<Teuchos::FancyOStream> out;
00074 bool periodic;
00075 bool contigIDs;
00076 int NumNodes;
00077 int NumEles;
00078 int NumBasalFaces;
00079 double (*xyz)[3];
00080 double* sh;
00081 double* beta;
00082 int* globalElesID;
00083 int* globalNodesID;
00084 int* basalFacesID;
00085 int (*eles)[8];
00086 double *flwa;
00087 double *temper;
00088 bool have_sh;
00089 bool have_bf;
00090 bool have_flwa;
00091 bool have_temp;
00092 bool have_beta;
00093 int (*bf)[5];
00094 Teuchos::RCP<Epetra_Map> elem_map;
00095 Teuchos::RCP<Epetra_Map> node_map;
00096 Teuchos::RCP<Epetra_Map> basal_face_map;
00097 bool hasRestartSol;
00098 double restartTime;
00099 };
00100
00101 }
00102 #endif