Changeset 15613
- Timestamp:
- 07/25/13 10:40:20 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.h
r15433 r15613 63 63 virtual void ListResultsInfo(int** results_enums,int** results_size,IssmDouble** results_times,int** results_steps,int* num_results)=0; 64 64 virtual void DeleteResults(void)=0; 65 virtual void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type )=0;65 virtual void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finite_element)=0; 66 66 virtual void InputToResult(int enum_type,int step,IssmDouble time)=0; 67 67 virtual void InputDuplicate(int original_enum,int new_enum)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r15595 r15613 3090 3090 return dt; 3091 3091 }/*}}}*/ 3092 /*FUNCTION Penta::Update (int index,IoModel* iomodel,int analysis_counter,int analysis_type){{{*/3093 void Penta::Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type ){3092 /*FUNCTION Penta::Update {{{*/ 3093 void Penta::Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ 3094 3094 3095 3095 /*Intermediaries*/ 3096 3096 int i; 3097 int penta_type;3098 3097 int penta_node_ids[6]; 3099 3098 int penta_vertex_ids[6]; … … 3121 3120 /*}}}*/ 3122 3121 3123 /*Recover element type*/ 3124 if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancethicknessAnalysisEnum) && stabilization==3){ 3125 /*P1 Discontinuous Galerkin*/ 3126 penta_type=P1DGEnum; 3127 } 3128 else{ 3129 /*P1 Continuous Galerkin*/ 3130 penta_type=P1Enum; 3131 } 3132 this->SetElementType(penta_type,analysis_counter); 3122 this->SetElementType(finiteelement_type,analysis_counter); 3133 3123 3134 3124 /*Recover vertices ids needed to initialize inputs*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r15567 r15613 112 112 void SmbGradients(); 113 113 IssmDouble SurfaceArea(void); 114 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type );114 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 115 115 int NodalValue(IssmDouble* pvalue, int index, int natureofdataenum); 116 116 IssmDouble TimeAdapt(); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15611 r15613 2319 2319 } 2320 2320 /*}}}*/ 2321 /*FUNCTION Tria::Update (int index, IoModel* iomodel,int analysis_counter,int analysis_type){{{*/2322 void Tria::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type ){ //i is the element index2321 /*FUNCTION Tria::Update{{{*/ 2322 void Tria::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement_type){ 2323 2323 2324 2324 /*Intermediaries*/ 2325 2325 int i,j; 2326 2326 int tria_vertex_ids[3]; 2327 int tria_type;2328 2327 IssmDouble nodeinputs[3]; 2329 2328 IssmDouble yts; … … 2347 2346 2348 2347 /*Recover element type*/ 2349 if ((analysis_type==PrognosticAnalysisEnum && progstabilization==3) || (analysis_type==BalancethicknessAnalysisEnum && balancestabilization==3)){ 2350 tria_type=P1DGEnum; 2351 } 2352 else if(analysis_type==DiagnosticHorizAnalysisEnum && fe_ssa==1){ 2353 tria_type=P2Enum; 2354 } 2355 else{ 2356 tria_type=P1Enum; 2357 } 2358 this->SetElementType(tria_type,analysis_counter); 2348 this->SetElementType(finitelement_type,analysis_counter); 2359 2349 2360 2350 /*Recover vertices ids needed to initialize inputs*/ … … 2364 2354 2365 2355 /*Recover nodes ids needed to initialize the node hook.*/ 2366 switch( tria_type){2356 switch(finitelement_type){ 2367 2357 case P1Enum: 2368 2358 numnodes = 3; … … 2390 2380 break; 2391 2381 default: 2392 _error_("Finite element "<<EnumToStringx( tria_type)<<" not supported yet");2382 _error_("Finite element "<<EnumToStringx(finitelement_type)<<" not supported yet"); 2393 2383 } 2394 2384 -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r15567 r15613 112 112 void SmbGradients(); 113 113 IssmDouble SurfaceArea(void); 114 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type );114 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 115 115 IssmDouble TimeAdapt(); 116 116 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
r15428 r15613 11 11 void UpdateElementsBalancethickness(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 12 12 13 int stabilization,finiteelement; 14 15 /*Fetch data needed: */ 16 iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum); 17 18 /*Finite element type*/ 19 finiteelement = P1Enum; 20 if(stabilization==3){ 21 finiteelement = P1DGEnum; 22 } 23 13 24 /*Update elements: */ 14 25 int counter=0; … … 16 27 if(iomodel->my_elements[i]){ 17 28 Element* element=(Element*)elements->GetObjectByOffset(counter); 18 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.29 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement); 19 30 counter++; 20 31 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
r15428 r15613 16 16 if(iomodel->my_elements[i]){ 17 17 Element* element=(Element*)elements->GetObjectByOffset(counter); 18 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.18 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 19 19 counter++; 20 20 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r15595 r15613 16 16 void UpdateElementsDiagnosticHoriz(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 int materials_type ;19 bool isSSA,isL1L2,isHO,isFS ;18 int materials_type,finiteelement,temp; 19 bool isSSA,isL1L2,isHO,isFS,iscoupling; 20 20 bool control_analysis; 21 21 bool dakota_analysis; … … 33 33 if(!isSSA & !isL1L2 & !isHO & !isFS) return; 34 34 35 /*Do we have coupling*/ 36 if( (isSSA?1.:0.) + (isL1L2?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.) 37 iscoupling = true; 38 else 39 iscoupling = false; 40 41 /*Get finite element type*/ 42 finiteelement = P1Enum; 43 if(!iscoupling){ 44 if(isSSA){ 45 iomodel->Constant(&temp,FlowequationFeSSAEnum); 46 switch(temp){ 47 case 0 : finiteelement = P1Enum; break; 48 case 1 : finiteelement = P2Enum; break; 49 default: _error_("finite element "<<temp<<" not supported"); 50 } 51 } 52 else if(isL1L2){ 53 finiteelement = P1Enum; 54 } 55 else if(isHO){ 56 finiteelement = P1Enum; 57 } 58 else if(isFS){ 59 finiteelement = P1Enum; 60 } 61 } 62 35 63 /*Fetch data needed: */ 36 64 iomodel->FetchData(1,FlowequationElementEquationEnum); … … 41 69 if(iomodel->my_elements[i]){ 42 70 Element* element=(Element*)elements->GetObjectByOffset(counter); 43 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.71 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement); 44 72 counter++; 45 73 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r15564 r15613 25 25 if(iomodel->my_elements[i]){ 26 26 Element* element=(Element*)elements->GetObjectByOffset(counter); 27 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.27 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 28 28 counter++; 29 29 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
r15428 r15613 19 19 if(iomodel->my_elements[i]){ 20 20 Element* element=(Element*)elements->GetObjectByOffset(counter); 21 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.21 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 22 22 counter++; 23 23 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
r15450 r15613 22 22 if(iomodel->my_elements[i]){ 23 23 Element* element=(Element*)elements->GetObjectByOffset(counter); 24 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.24 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 25 25 counter++; 26 26 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Gia/UpdateElementsGia.cpp
r15428 r15613 16 16 if(iomodel->my_elements[i]){ 17 17 Element* element=(Element*)elements->GetObjectByOffset(counter); 18 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.18 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 19 19 counter++; 20 20 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp
r15428 r15613 27 27 if(iomodel->my_elements[i]){ 28 28 Element* element=(Element*)elements->GetObjectByOffset(counter); 29 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.29 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 30 30 counter++; 31 31 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp
r15428 r15613 28 28 if(iomodel->my_elements[i]){ 29 29 Element* element=(Element*)elements->GetObjectByOffset(counter); 30 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.30 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 31 31 counter++; 32 32 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp
r15428 r15613 24 24 if(iomodel->my_elements[i]){ 25 25 Element* element=(Element*)elements->GetObjectByOffset(counter); 26 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.26 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 27 27 counter++; 28 28 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
r15428 r15613 19 19 if(iomodel->my_elements[i]){ 20 20 Element* element=(Element*)elements->GetObjectByOffset(counter); 21 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.21 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 22 22 counter++; 23 23 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
r15450 r15613 11 11 void UpdateElementsPrognostic(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 12 12 13 int stabilization ;13 int stabilization,finiteelement; 14 14 bool dakota_analysis; 15 15 bool issmbgradients; … … 24 24 iomodel->Constant(&issmbgradients,SurfaceforcingsIssmbgradientsEnum); 25 25 26 /*Finite element type*/ 27 finiteelement = P1Enum; 28 if(stabilization==3){ 29 finiteelement = P1DGEnum; 30 } 31 26 32 /*Update elements: */ 27 33 int counter=0; … … 29 35 if(iomodel->my_elements[i]){ 30 36 Element* element=(Element*)elements->GetObjectByOffset(counter); 31 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.37 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement); 32 38 counter++; 33 39 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
r15428 r15613 16 16 if(iomodel->my_elements[i]){ 17 17 Element* element=(Element*)elements->GetObjectByOffset(counter); 18 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.18 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 19 19 counter++; 20 20 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r15428 r15613 19 19 if(iomodel->my_elements[i]){ 20 20 Element* element=(Element*)elements->GetObjectByOffset(counter); 21 element->Update(i,iomodel,analysis_counter,analysis_type ); //we need i to index into elements.21 element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum); 22 22 counter++; 23 23 }
Note:
See TracChangeset
for help on using the changeset viewer.