Changeset 23885
- Timestamp:
- 04/22/19 15:19:50 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.h
r23795 r23885 240 240 virtual IssmDouble IceVolume(bool scaled)=0; 241 241 virtual IssmDouble IceVolumeAboveFloatation(bool scaled)=0; 242 virtual IssmDouble IcefrontMassFlux(bool scaled){_error_("not implemented");}; 242 243 virtual void InputDepthAverageAtBase(int enum_type,int average_enum_type)=0; 243 244 virtual void InputExtrude(int input_enum,int start)=0; -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r23867 r23885 1530 1530 1531 1531 }/*}}}*/ 1532 void FemModel::IcefrontMassFluxx(IssmDouble* pM, bool scaled){/*{{{*/ 1533 1534 IssmDouble local_mass_flux = 0; 1535 IssmDouble total_mass_flux; 1536 1537 for(int i=0;i<this->elements->Size();i++){ 1538 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1539 local_mass_flux+=element->IcefrontMassFlux(scaled); 1540 } 1541 ISSM_MPI_Reduce(&local_mass_flux,&total_mass_flux,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 1542 ISSM_MPI_Bcast(&total_mass_flux,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 1543 1544 /*Assign output pointers: */ 1545 *pM=total_mass_flux; 1546 1547 }/*}}}*/ 1532 1548 void FemModel::IceMassx(IssmDouble* pM, bool scaled){/*{{{*/ 1533 1549 … … 2182 2198 case MaxDivergenceEnum: this->MaxDivergencex(&double_result); break; 2183 2199 case IceMassEnum: this->IceMassx(&double_result,false); break; 2200 case IcefrontMassFluxEnum: this->IcefrontMassFluxx(&double_result,false); break; 2184 2201 case IceMassScaledEnum: this->IceMassx(&double_result,true); break; 2185 2202 case IceVolumeEnum: this->IceVolumex(&double_result,false); break; … … 2210 2227 case TotalSmbScaledEnum: this->TotalSmbx(&double_result,true); break; 2211 2228 2212 2213 case SurfaceAbsVelMisfitEnum: SurfaceAbsVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2214 case SurfaceRelVelMisfitEnum: SurfaceRelVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2215 case SurfaceLogVelMisfitEnum: SurfaceLogVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2216 case SurfaceLogVxVyMisfitEnum: SurfaceLogVxVyMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2217 case SurfaceAverageVelMisfitEnum: SurfaceAverageVelMisfitx(&double_result,this); break;2218 case ThicknessAbsMisfitEnum: ThicknessAbsMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2219 case ThicknessAbsGradientEnum: this->ThicknessAbsGradientx(&double_result); break;2220 case ThicknessAlongGradientEnum: ThicknessAlongGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2221 case ThicknessAcrossGradientEnum: ThicknessAcrossGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2222 case ThicknessPositiveEnum: this->ThicknessPositivex(&double_result); break;2223 case RheologyBbarAbsGradientEnum: RheologyBbarAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2224 case RheologyBAbsGradientEnum: RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2225 case RheologyBInitialguessMisfitEnum: RheologyBInitialguessMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2226 case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;2227 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(&double_result); break;2228 case SurfaceAbsMisfitEnum: SurfaceAbsMisfitx(&double_result); break;2229 case OmegaAbsGradientEnum: OmegaAbsGradientx(&double_result); break;2230 case EtaDiffEnum: EtaDiffx(&double_result); break;2229 /*Scalar control output*/ 2230 case SurfaceAbsVelMisfitEnum: SurfaceAbsVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2231 case SurfaceRelVelMisfitEnum: SurfaceRelVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2232 case SurfaceLogVelMisfitEnum: SurfaceLogVelMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2233 case SurfaceLogVxVyMisfitEnum: SurfaceLogVxVyMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2234 case SurfaceAverageVelMisfitEnum: SurfaceAverageVelMisfitx(&double_result,this); break; 2235 case ThicknessAbsMisfitEnum: ThicknessAbsMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2236 case ThicknessAbsGradientEnum: this->ThicknessAbsGradientx(&double_result); break; 2237 case ThicknessAlongGradientEnum: ThicknessAlongGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2238 case ThicknessAcrossGradientEnum: ThicknessAcrossGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2239 case ThicknessPositiveEnum: this->ThicknessPositivex(&double_result); break; 2240 case RheologyBbarAbsGradientEnum: RheologyBbarAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2241 case RheologyBAbsGradientEnum: RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2242 case RheologyBInitialguessMisfitEnum: RheologyBInitialguessMisfitx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2243 case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break; 2244 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(&double_result); break; 2245 case SurfaceAbsMisfitEnum: SurfaceAbsMisfitx(&double_result); break; 2246 case OmegaAbsGradientEnum: OmegaAbsGradientx(&double_result); break; 2247 case EtaDiffEnum: EtaDiffx(&double_result); break; 2231 2248 2232 2249 /*Vector */ … … 2234 2251 2235 2252 /*Vector layout*/ 2253 if(!IsInputEnum(output_enum)) _error_("Cannot output \""<<EnumToStringx(output_enum)<<"\" because it is not an input"); 2236 2254 int interpolation,nodesperelement,size,nlines,ncols,array_size; 2237 2255 int rank_interpolation=-1,rank_nodesperelement=-1,rank_arraysize=-1,max_rank_arraysize=0; … … 2385 2403 case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(responses, false); break; 2386 2404 case IceVolumeAboveFloatationScaledEnum: this->IceVolumeAboveFloatationx(responses, true); break; 2405 case IcefrontMassFluxEnum: this->IcefrontMassFluxx(responses, true); break; 2387 2406 case GroundedAreaEnum: this->GroundedAreax(responses, false); break; 2388 2407 case GroundedAreaScaledEnum: this->GroundedAreax(responses, true); break; -
issm/trunk-jpl/src/c/classes/FemModel.h
r23652 r23885 101 101 void GroundedAreax(IssmDouble* pV, bool scaled); 102 102 void IcefrontAreax(); 103 void IcefrontMassFluxx(IssmDouble* presponse, bool scaled); 103 104 void IceMassx(IssmDouble* pV, bool scaled); 104 105 void IceVolumex(IssmDouble* pV, bool scaled); -
issm/trunk-jpl/src/c/modules/OutputDefinitionsResponsex/OutputDefinitionsResponsex.cpp
r23066 r23885 34 34 /*If we are here, did not find the definition for this response, not good!: */ 35 35 _error_("Could not find the response for output definition " << output_string << " because could not find the definition itself!"); 36 37 36 } 38 37 … … 63 62 <<" ("<<output_enum<<")" 64 63 << " because could not find the definition itself!"); 65 66 64 } -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23882 r23885 1054 1054 MassFluxEnum, 1055 1055 GroundinglineMassFluxEnum, 1056 Ice FrontMassFluxEnum,1056 IcefrontMassFluxEnum, 1057 1057 MasstransportAnalysisEnum, 1058 1058 MasstransportSolutionEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23882 r23885 1058 1058 case MassFluxEnum : return "MassFlux"; 1059 1059 case GroundinglineMassFluxEnum : return "GroundinglineMassFlux"; 1060 case Ice FrontMassFluxEnum : return "IceFrontMassFlux";1060 case IcefrontMassFluxEnum : return "IcefrontMassFlux"; 1061 1061 case MasstransportAnalysisEnum : return "MasstransportAnalysis"; 1062 1062 case MasstransportSolutionEnum : return "MasstransportSolution"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23882 r23885 1082 1082 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum; 1083 1083 else if (strcmp(name,"GroundinglineMassFlux")==0) return GroundinglineMassFluxEnum; 1084 else if (strcmp(name,"Ice FrontMassFlux")==0) return IceFrontMassFluxEnum;1084 else if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum; 1085 1085 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; 1086 1086 else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
Note:
See TracChangeset
for help on using the changeset viewer.