Changeset 21542
- Timestamp:
- 02/10/17 10:32:55 (8 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r21481 r21542 98 98 void EnthalpyAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ 99 99 100 int finiteelement; 101 iomodel->FindConstant(&finiteelement,"md.thermal.fe"); 102 100 103 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,"md.mesh.vertexonbase","md.mesh.vertexonsurface"); 101 ::CreateNodes(nodes,iomodel,EnthalpyAnalysisEnum, P1Enum);104 ::CreateNodes(nodes,iomodel,EnthalpyAnalysisEnum,finiteelement); 102 105 iomodel->DeleteData(2,"md.mesh.vertexonbase","md.mesh.vertexonsurface"); 103 106 }/*}}}*/ … … 121 124 iomodel->FetchData(3,"md.initialization.temperature","md.initialization.waterfraction","md.initialization.pressure"); 122 125 126 /*Finite element type*/ 127 int finiteelement; 128 iomodel->FindConstant(&finiteelement,"md.thermal.fe"); 129 123 130 /*Update elements: */ 124 131 int counter=0; … … 126 133 if(iomodel->my_elements[i]){ 127 134 Element* element=(Element*)elements->GetObjectByOffset(counter); 128 element->Update(i,iomodel,analysis_counter,analysis_type, P1Enum);135 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement); 129 136 counter++; 130 137 } -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
r21389 r21542 9 9 10 10 /*Intermediary*/ 11 int finiteelement = P1Enum; 11 int finiteelement; 12 iomodel->FindConstant(&finiteelement,"md.thermal.fe"); 13 _assert_(finiteelement==P1Enum); 12 14 13 15 /*Only 3d mesh supported*/ … … 62 64 void ThermalAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ 63 65 64 int finiteelement = P1Enum; 66 int finiteelement; 67 iomodel->FindConstant(&finiteelement,"md.thermal.fe"); 68 _assert_(finiteelement==P1Enum); 65 69 66 70 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,"md.mesh.vertexonbase","md.mesh.vertexonsurface"); … … 79 83 80 84 /*Update elements: */ 81 int finiteelement = P1Enum; 85 int finiteelement; 86 iomodel->FindConstant(&finiteelement,"md.thermal.fe"); 87 _assert_(finiteelement==P1Enum); 82 88 int counter=0; 83 89 for(int i=0;i<iomodel->numberofelements;i++){ -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r20978 r21542 656 656 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 657 657 } else if(strcmp(record_name,"md.flowequation.fe_FS")==0){ 658 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 659 } else if(strcmp(record_name,"md.thermal.fe")==0){ 658 660 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 659 661 } else if(strcmp(record_name,"md.groundingline.migration")==0){ … … 797 799 } else if(strcmp(record_name,"md.flowequation.fe_FS")==0){ 798 800 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 801 } else if(strcmp(record_name,"md.thermal.fe")==0){ 802 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 799 803 } else if(strcmp(record_name,"md.groundingline.migration")==0){ 800 804 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); -
issm/trunk-jpl/src/m/classes/thermal.m
r21049 r21542 15 15 isenthalpy = 0; 16 16 isdynamicbasalspc = 0; 17 fe = 'P1'; 17 18 requested_outputs = {}; 18 19 end … … 66 67 self.isdynamicbasalspc=0; 67 68 69 %Linear elements by default 70 self.fe='P1'; 71 68 72 %default output 69 73 self.requested_outputs={'default'}; … … 76 80 md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 1 2]); 77 81 md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1,'>=',0); 82 md = checkfield(md,'fieldname','thermal.fe','values',{'P1','P1xP2'}); 78 83 if (ismember('EnthalpyAnalysis',analyses) & md.thermal.isenthalpy & dimension(md.mesh)==3), 79 84 … … 110 115 fielddisplay(self,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)'); 111 116 fielddisplay(self,'isdynamicbasalspc',['enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)']); 117 fielddisplay(self,'fe','Finite Element type: ''P1'' (default), ''P1xP2'''); 112 118 fielddisplay(self,'requested_outputs','additional outputs requested'); 113 119 … … 122 128 WriteData(fid,prefix,'object',self,'fieldname','penalty_factor','format','Double'); 123 129 WriteData(fid,prefix,'object',self,'fieldname','isenthalpy','format','Boolean'); 130 WriteData(fid,prefix,'object',self,'fieldname','fe','format','String'); 124 131 WriteData(fid,prefix,'object',self,'fieldname','isdynamicbasalspc','format','Boolean'); 125 132 -
issm/trunk-jpl/src/m/classes/thermal.py
r21303 r21542 23 23 self.isenthalpy = 0 24 24 self.isdynamicbasalspc = 0; 25 self.fe = 'P1'; 25 26 self.requested_outputs = [] 26 27 … … 79 80 80 81 #will basal boundary conditions be set dynamically 81 self.isdynamicbasalspc=0; 82 self.isdynamicbasalspc=0 83 84 #Finite element interpolation 85 self.fe='P1' 82 86 83 87 #default output … … 124 128 WriteData(fid,prefix,'object',self,'fieldname','penalty_factor','format','Double') 125 129 WriteData(fid,prefix,'object',self,'fieldname','isenthalpy','format','Boolean') 130 WriteData(fid,prefix,'object',self,'fieldname','fe','format','String'); 126 131 WriteData(fid,prefix,'object',self,'fieldname','isdynamicbasalspc','format','Boolean'); 127 132
Note:
See TracChangeset
for help on using the changeset viewer.