Changeset 23973
- Timestamp:
- 05/31/19 15:33:02 (6 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r23936 r23973 2229 2229 case EtaDiffEnum: EtaDiffx(&double_result); break; 2230 2230 2231 /*Vector */ 2231 /*Vector special case (maybe should go to specific analysis?)*/ 2232 case ChannelAreaEnum:{ 2233 2234 /*Get Number of Channels*/ 2235 int numchannels_local=0,numchannels; 2236 for(int j=0;j<this->loads->Size();j++){ 2237 if(this->loads->GetEnum(i)==ChannelEnum) numchannels_local++; 2238 } 2239 ISSM_MPI_Reduce(&numchannels_local,&numchannels,1,ISSM_MPI_INT,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 2240 ISSM_MPI_Bcast(&numchannels,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 2241 2242 IssmDouble* values = xNewZeroInit<IssmDouble>(numchannels); 2243 IssmDouble* allvalues = xNew<IssmDouble>(numchannels); 2244 2245 /*Fill-in vector*/ 2246 for(int j=0;j<this->loads->Size();j++){ 2247 if(this->loads->GetEnum(i)==ChannelEnum){ 2248 Channel* channel=(Channel*)this->loads->GetObjectByOffset(i); 2249 channel->WriteChannelCrossSection(values); 2250 } 2251 } 2252 2253 /*Gather from all cpus*/ 2254 ISSM_MPI_Allreduce((void*)values,(void*)allvalues,numchannels,ISSM_MPI_PDOUBLE,ISSM_MPI_SUM,IssmComm::GetComm()); 2255 xDelete<IssmDouble>(values); 2256 2257 if(save_results)results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,output_enum,allvalues,numchannels,1,step,time)); 2258 xDelete<IssmDouble>(allvalues); 2259 2260 isvec = true; 2261 } 2262 break; 2263 2264 2265 /*Default is always Vector */ 2232 2266 default: 2233 2267 … … 2347 2381 /*Convert list of enums to list of string*/ 2348 2382 char** enumlist = xNew<char*>(numoutputs); 2349 for(int i=0;i<numoutputs;i++){ 2350 EnumToStringx(&enumlist[i],requested_outputs[i]); 2351 } 2383 for(int i=0;i<numoutputs;i++) EnumToStringx(&enumlist[i],requested_outputs[i]); 2352 2384 2353 2385 /*Call main module*/ … … 2357 2389 for(int i=0;i<numoutputs;i++) xDelete<char>(enumlist[i]); 2358 2390 xDelete<char*>(enumlist); 2359 return;2360 2391 } 2361 2392 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Channel.cpp
r23971 r23973 28 28 /*Channel constructors and destructor*/ 29 29 Channel::Channel(){/*{{{*/ 30 this->id = -1; 31 this->sid = -1; 30 32 this->parameters = NULL; 31 33 this->helement = NULL; … … 39 41 40 42 this->id=channel_id; 43 this->sid=channel_id-1; 41 44 this->parameters = NULL; 42 45 this->element = NULL; … … 679 682 } 680 683 /*}}}*/ 684 void Channel::WriteChannelCrossSection(IssmDouble* values){/*{{{*/ 685 686 _assert_(values); 687 values[this->sid] = this->S; 688 } 689 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Channel.h
r23965 r23973 22 22 23 23 public: 24 int sid; 24 25 int id; 25 26 … … 77 78 ElementVector* CreatePVectorHydrologyGlaDS(void); 78 79 ElementMatrix* CreateKMatrixHydrologyGlaDS(void); 80 void WriteChannelCrossSection(IssmDouble* values); 79 81 /*}}}*/ 80 82 -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23958 r23973 928 928 CfsurfacesquareEnum, 929 929 ChannelEnum, 930 ChannelAreaEnum, 930 931 ClosedEnum, 931 932 ColinearEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23958 r23973 932 932 case CfsurfacesquareEnum : return "Cfsurfacesquare"; 933 933 case ChannelEnum : return "Channel"; 934 case ChannelAreaEnum : return "ChannelArea"; 934 935 case ClosedEnum : return "Closed"; 935 936 case ColinearEnum : return "Colinear"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23958 r23973 953 953 else if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum; 954 954 else if (strcmp(name,"Channel")==0) return ChannelEnum; 955 else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum; 955 956 else if (strcmp(name,"Closed")==0) return ClosedEnum; 956 957 else if (strcmp(name,"Colinear")==0) return ColinearEnum; … … 997 998 else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum; 998 999 else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum; 999 else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum; 1003 if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 1004 else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum; 1004 1005 else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum; 1005 1006 else if (strcmp(name,"FSSolver")==0) return FSSolverEnum; … … 1120 1121 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 1121 1122 else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum; 1122 else if (strcmp(name,"MeshX")==0) return MeshXEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"MeshY")==0) return MeshYEnum; 1126 if (strcmp(name,"MeshX")==0) return MeshXEnum; 1127 else if (strcmp(name,"MeshY")==0) return MeshYEnum; 1127 1128 else if (strcmp(name,"MinVel")==0) return MinVelEnum; 1128 1129 else if (strcmp(name,"MinVx")==0) return MinVxEnum; … … 1243 1244 else if (strcmp(name,"TotalGroundedBmbScaled")==0) return TotalGroundedBmbScaledEnum; 1244 1245 else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum; 1245 else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum; 1249 if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum; 1250 else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum; 1250 1251 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 1251 1252 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum; -
issm/trunk-jpl/src/m/classes/hydrologyglads.m
r23969 r23973 36 36 end % }}} 37 37 function list = defaultoutputs(self,md) % {{{ 38 list = {'EffectivePressure','HydraulicPotential','HydrologySheetThickness' };38 list = {'EffectivePressure','HydraulicPotential','HydrologySheetThickness','ChannelArea'}; 39 39 end % }}} 40 40
Note:
See TracChangeset
for help on using the changeset viewer.