Changeset 24205
- Timestamp:
- 10/04/19 11:25:03 (5 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 3 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r24099 r24205 90 90 ./classes/Vertex.cpp\ 91 91 ./classes/Hook.cpp\ 92 ./classes/Radar.cpp\ 92 93 ./classes/ExternalResults/Results.cpp\ 93 94 ./classes/Elements/Element.cpp\ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r24145 r24205 219 219 virtual void ComputeStressTensor(void)=0; 220 220 virtual void ComputeEsaStrainAndVorticity(void)=0; 221 virtual void ComputeRadarAttenuation(void){_error_("not implemented yet");}; 222 virtual void ComputeRadarPower(void)=0; 221 223 virtual void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0; 222 224 virtual void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r24188 r24205 784 784 /*Clean up and return*/ 785 785 delete gauss; 786 } 787 /*}}}*/ 788 void Penta::ComputeRadarAttenuation(){/*{{{*/ 789 IssmDouble xyz_list[NUMVERTICES][3]; 790 IssmDouble eps0=8.85418782e-12; 791 IssmDouble eps_ice=3.17; 792 IssmDouble e=2.7183; 793 IssmDouble c=299792458; 794 IssmDouble k=1.3806488e-23; 795 IssmDouble eVtoJ=1.6e-19; 796 IssmDouble Tr_M07=252.1500; 797 IssmDouble Tr_W97=258.1500; 798 IssmDouble sig_ice_M07=9.2; 799 IssmDouble sig_ice_W97=9; 800 IssmDouble cond_H_M07=3.2; 801 IssmDouble cond_H_W97=4; 802 IssmDouble cond_Cl_M07=0.43; 803 IssmDouble cond_Cl_W97=0.55; 804 IssmDouble cond_NH_M07=0.8; 805 IssmDouble cond_NH_W97=1; 806 IssmDouble E_M07=8.1600e-20; 807 IssmDouble E_W97=9.2800e-20; 808 IssmDouble E_H_M07=3.2000e-20; 809 IssmDouble E_H_W97=3.3600e-20; 810 IssmDouble E_Cl_M07=3.0400e-20; 811 IssmDouble E_Cl_W97=3.6800e-20; 812 IssmDouble E_NH=3.6800e-20; 813 /*IssmDouble mol_H_hol=1.6; 814 IssmDouble mol_Cl_hol=0.4; 815 IssmDouble mol_NH_hol=0.5; 816 IssmDouble mol_H_lgp=0.2; 817 IssmDouble mol_Cl_lgp=1.8; 818 IssmDouble mol_NH_lgp=0.4; */ 819 IssmDouble radar_ice_period; 820 IssmDouble mol_H, mol_Cl, mol_NH; 821 IssmDouble attenuation_rate_macgregor[NUMVERTICES]; 822 IssmDouble attenuation_rate_wolff[NUMVERTICES]; 823 IssmDouble temperature, attenuation_rate_M07_pureice, attenuation_rate_M07_H, attenuation_rate_M07_Cl, attenuation_rate_M07_NH; 824 IssmDouble attenuation_rate_W97_pureice, attenuation_rate_W97_H, attenuation_rate_W97_Cl, attenuation_rate_W97_NH; 825 IssmDouble m1, m2, m3, m4, m5, m6, m7, m8; 826 IssmDouble w2, w3, w4, w5, w6, w7, w8; 827 GaussPenta* gauss=NULL; 828 829 /* Get node coordinates and dof list: */ 830 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 831 832 /*Retrieve all inputs we will be needing: */ 833 Input* temp_input=inputs->GetInput(TemperatureEnum); _assert_(temp_input); 834 //Input* ice_period_input=inputs->GetInput(RadarIcePeriodEnum); _assert_(ice_period_input); 835 836 /* Start looping on the number of vertices: */ 837 gauss=new GaussPenta(); 838 for (int iv=0;iv<NUMVERTICES;iv++){ 839 gauss->GaussVertex(iv); 840 841 /*Get ice temperature: */ 842 temp_input->GetInputValue(&temperature,gauss); 843 // ice_period_input->GetInputValue(&radar_ice_period,gauss); 844 845 /*Ice period condition: */ 846 // if (radar_ice_period>0.){ 847 mol_H=1.6; 848 mol_Cl=0.4; 849 mol_NH=0.5; 850 // } 851 // else{ 852 // mol_H=0.2; 853 // mol_Cl=1.8; 854 // mol_NH=0.4; 855 // } 856 857 /*Compute M07 radar conductivity constant: */ 858 m1=(10*log10(e))/(1000*eps0*sqrt(eps_ice)*c); 859 m2=E_M07/k; 860 m3=cond_H_M07*mol_H; 861 m4=E_H_M07/k; 862 m5=cond_Cl_M07*mol_Cl; 863 m6=E_Cl_M07/k; 864 m7=cond_NH_M07*mol_NH; 865 m8=E_NH/k; 866 867 /*Compute MacGregor attenuation rate: */ 868 attenuation_rate_M07_pureice=m1*sig_ice_M07*exp(m2*((1/Tr_M07)-(1/temperature))); 869 attenuation_rate_M07_H=m3*exp(m4*((1/Tr_M07)-(1/temperature))); 870 attenuation_rate_M07_Cl=m5*exp(m6*((1/Tr_M07)-(1/temperature))); 871 attenuation_rate_M07_NH=m7*exp(m8*((1/Tr_M07)-(1/temperature))); 872 attenuation_rate_macgregor[iv]=attenuation_rate_M07_pureice+attenuation_rate_M07_H+attenuation_rate_M07_Cl+attenuation_rate_M07_NH; 873 874 /*Compute W97 radar conductivity constant: */ 875 w2=E_W97/k; 876 w3=cond_H_W97*mol_H; 877 w4=E_H_W97/k; 878 w5=cond_Cl_W97*mol_Cl; 879 w6=E_Cl_W97/k; 880 w7=cond_NH_W97*mol_NH; 881 w8=E_NH/k; 882 883 /*Compute Wolff attenuation rate: */ 884 attenuation_rate_W97_pureice=m1*sig_ice_W97*exp(w2*((1/Tr_W97)-(1/temperature))); 885 attenuation_rate_W97_H=w3*exp(w4*((1/Tr_W97)-(1/temperature))); 886 attenuation_rate_W97_Cl=w5*exp(w6*((1/Tr_W97)-(1/temperature))); 887 attenuation_rate_W97_NH=w7*exp(w8*((1/Tr_W97)-(1/temperature))); 888 attenuation_rate_wolff[iv]=attenuation_rate_W97_pureice+attenuation_rate_W97_H+attenuation_rate_W97_Cl+attenuation_rate_W97_NH; 889 } 890 891 /*Add Attenuation rate results into inputs*/ 892 this->inputs->AddInput(new PentaInput(RadarAttenuationMacGregorEnum,&attenuation_rate_macgregor[0],P1Enum)); 893 this->inputs->AddInput(new PentaInput(RadarAttenuationWolffEnum,&attenuation_rate_wolff[0],P1Enum)); 894 895 /*Clean up and return*/ 896 delete gauss; 897 } 898 /*}}}*/ 899 void Penta::ComputeRadarPower(){/*{{{*/ 900 IssmDouble xyz_list[NUMVERTICES][3]; 901 IssmDouble power_M07[NUMVERTICES]; 902 IssmDouble power_W97[NUMVERTICES]; 903 IssmDouble depth[NUMVERTICES]; 904 IssmDouble aircraft_elev=0.5; 905 IssmDouble eps_ice=3.15; 906 IssmDouble t_tp=273.15; /* triple point temperature [K] */ 907 IssmDouble p_tp=611.73; /* water pressure [Pa] */ 908 IssmDouble gamma=7.4200e-07; /* Clausius-Clapeyron constant [K/kPa] */ 909 IssmDouble attenuation_rate_macgregor, attenuation_rate_wolff, attenuation_total_M07, attenuation_total_W97; 910 IssmDouble thickness, surface, z, temperature, geometric_loss, reflectivity; 911 IssmDouble rho_ice, gravity, pressure, pressure_melting_pt, frozen_temp, basal_temp, basal_pmp; 912 GaussPenta* gauss=NULL; 913 914 /* Get node coordinates and dof list: */ 915 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 916 917 /*Retrieve all inputs we will be needing: */ 918 Input* atten_input_M07=inputs->GetInput(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07); 919 Input* atten_input_W97=inputs->GetInput(RadarAttenuationWolffEnum); _assert_(atten_input_W97); 920 Input* surf_input=inputs->GetInput(SurfaceEnum); _assert_(surf_input); 921 Input* thick_input=inputs->GetInput(ThicknessEnum); _assert_(thick_input); 922 Input* temp_input=inputs->GetInput(TemperatureEnum); _assert_(temp_input); 923 924 /* Start looping on the number of vertices: */ 925 gauss=new GaussPenta(); 926 for (int iv=0;iv<NUMVERTICES;iv++){ 927 gauss->GaussVertex(iv); 928 929 /*Get all the inputs: */ 930 atten_input_M07->GetInputValue(&attenuation_rate_macgregor,gauss); 931 atten_input_W97->GetInputValue(&attenuation_rate_wolff,gauss); 932 thick_input->GetInputValue(&thickness,gauss); 933 temp_input->GetInputValue(&temperature,gauss); 934 surf_input->GetInputValue(&surface,gauss); 935 936 /*Compute depth below the ice surface: */ 937 z=xyz_list[iv][2]; 938 depth[iv]=(surface-z)/1e3; 939 940 /*Compute total attenuation: */ 941 attenuation_total_M07=attenuation_rate_macgregor*depth[iv]; 942 attenuation_total_W97=attenuation_rate_wolff*depth[iv]; 943 944 /*Compute geometric loss: */ 945 geometric_loss=10*log10((depth[iv]+aircraft_elev)/sqrt(eps_ice)); 946 947 /*Compute radar power: */ 948 power_M07[iv]=-geometric_loss-attenuation_total_M07; 949 power_W97[iv]=-geometric_loss-attenuation_total_W97; 950 951 /*Identify basal elements: */ 952 if(this->IsOnBase() && iv<NUMVERTICES2D){ 953 954 /*Compute pressure melting point: */ 955 rho_ice=FindParam(MaterialsRhoIceEnum); 956 gravity=FindParam(ConstantsGEnum); 957 pressure=rho_ice*gravity*thickness; 958 pressure_melting_pt=t_tp-gamma*(pressure-p_tp); 959 if((temperature-pressure_melting_pt)<=-1){ 960 reflectivity=-40; 961 } 962 else if((temperature-pressure_melting_pt)>-1 && (temperature-pressure_melting_pt)<0){ 963 reflectivity=0; 964 } 965 else{ 966 reflectivity=70; 967 } 968 power_M07[iv]=power_M07[iv]+reflectivity; 969 power_W97[iv]=power_W97[iv]+reflectivity; 970 } 971 } 972 973 /*Add power results into inputs*/ 974 this->inputs->AddInput(new PentaInput(RadarPowerMacGregorEnum,&power_M07[0],P1Enum)); 975 this->inputs->AddInput(new PentaInput(RadarPowerWolffEnum,&power_W97[0],P1Enum)); 976 977 /*Clean up and return*/ 978 delete gauss; 786 979 } 787 980 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r24137 r24205 58 58 void ComputeSigmaNN(){_error_("not implemented yet");}; 59 59 void ComputeStressTensor(); 60 void ComputeRadarAttenuation(); 61 void ComputeRadarPower(); 60 62 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 61 63 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r24137 r24205 49 49 void ComputeSigmaNN(){_error_("not implemented yet");}; 50 50 void ComputeStressTensor(){_error_("not implemented yet");}; 51 void ComputeRadarAttenuation(){_error_("not implemented yet");}; 52 void ComputeRadarPower(){_error_("not implemented yet");}; 51 53 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");}; 52 54 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r24137 r24205 49 49 void ComputeDeviatoricStressTensor(){_error_("not implemented yet");}; 50 50 void ComputeEsaStrainAndVorticity(){_error_("not implemented yet!");}; 51 void ComputeRadarAttenuation(){_error_("not implemented yet!");}; 52 void ComputeRadarPower(){_error_("not implemented yet");}; 51 53 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters); 52 54 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r24137 r24205 63 63 void ComputeStressTensor(); 64 64 void ComputeSurfaceNormalVelocity(); 65 void ComputeRadarAttenuation(){_error_("not implemented yet");}; 66 void ComputeRadarPower(){_error_("not implemented yet");}; 65 67 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters); 66 68 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N, int M); -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r24054 r24205 2216 2216 /*}}}*/ 2217 2217 void FemModel::RequestedOutputsx(Results **presults,char** requested_outputs, int numoutputs, bool save_results){/*{{{*/ 2218 2218 2219 2219 /*Intermediaries*/ 2220 2220 bool isvec,results_on_nodes; -
issm/trunk-jpl/src/c/classes/classes.h
r23946 r24205 26 26 #include "./Massconaxpby.h" 27 27 #include "./Regionaloutput.h" 28 #include "./Radar.h" 28 29 29 30 /*Constraints: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r23066 r24205 18 18 /*Create output_definitions dataset: */ 19 19 output_definitions=new DataSet(); 20 21 20 char** out_strings = NULL; 22 21 iomodel->FetchData(&out_strings,&num_output_definitions,"md.outputdefinition.list"); … … 27 26 } 28 27 } 29 // free data 28 // free data: 30 29 for(int i=0;i<num_output_definitions;i++) xDelete<char>(out_strings[i]); 31 30 xDelete<char*>(out_strings); … … 221 220 } 222 221 223 /*Free ressources:*/222 /*Free ressources:*/ 224 223 for(j=0;j<num_cfsurfacesquares;j++){ 225 224 char* string=NULL; … … 634 633 xDelete<int>(cost_functions_weights_N); 635 634 xDelete<IssmDouble*>(cost_functions_weights); 636 }635 637 636 /*}}}*/ 637 } 638 else if (output_definition_enums[i]==RadarEnum){ 639 /*Deal with radar: {{{*/ 640 int numout; 641 char **radar_name_s = NULL; 642 char **radar_definitionstring_s = NULL; 643 int **radar_ice_period_s = NULL; 644 645 /*Fetch name and definition, etc ... (see src/m/classes/radar.m): */ 646 iomodel->FetchMultipleData(&radar_definitionstring_s,&numout,"md.radar.definitionstring"); 647 iomodel->FetchMultipleData(&radar_name_s,&numout,"md.radar.name"); 648 if(numout>1) _error_("not suppored yet"); 649 /*Fetch necessary inputs for calculation*/ 650 //iomodel->FetchDataToInput(elements,"md.ice_period",RadarIcePeriodEnum); 651 652 /*Add to output definitions*/ 653 output_definitions->AddObject(new Radar(radar_name_s[0],StringToEnumx(radar_definitionstring_s[0]))); 654 /*}}}*/ 655 } 638 656 else _error_("output definition enum " << EnumToStringx(output_definition_enums[i]) << " not supported yet!"); 639 } 657 } 640 658 } 641 659 parameters->AddObject(new DataSetParam(OutputdefinitionEnum,output_definitions)); -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24168 r24205 498 498 syn keyword cConstant DamageFEnum 499 499 syn keyword cConstant DegreeOfChannelizationEnum 500 syn keyword cConstant DepthBelowSurfaceEnum 500 501 syn keyword cConstant DeviatoricStresseffectiveEnum 501 502 syn keyword cConstant DeviatoricStressxxEnum … … 631 632 syn keyword cConstant P1Enum 632 633 syn keyword cConstant PressureEnum 634 syn keyword cConstant RadarEnum 635 syn keyword cConstant RadarAttenuationMacGregorEnum 636 syn keyword cConstant RadarAttenuationWolffEnum 637 syn keyword cConstant RadarIcePeriodEnum 638 syn keyword cConstant RadarPowerMacGregorEnum 639 syn keyword cConstant RadarPowerWolffEnum 633 640 syn keyword cConstant RheologyBAbsGradientEnum 634 641 syn keyword cConstant RheologyBInitialguessEnum … … 1372 1379 syn keyword cType Profiler 1373 1380 syn keyword cType Quadtree 1381 syn keyword cType Radar 1374 1382 syn keyword cType Regionaloutput 1375 1383 syn keyword cType Results -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24168 r24205 494 494 DamageFEnum, 495 495 DegreeOfChannelizationEnum, 496 DepthBelowSurfaceEnum, 496 497 DeviatoricStresseffectiveEnum, 497 498 DeviatoricStressxxEnum, … … 627 628 P1Enum, 628 629 PressureEnum, 630 RadarEnum, 631 RadarAttenuationMacGregorEnum, 632 RadarAttenuationWolffEnum, 633 RadarIcePeriodEnum, 634 RadarPowerMacGregorEnum, 635 RadarPowerWolffEnum, 629 636 RheologyBAbsGradientEnum, 630 637 RheologyBInitialguessEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24168 r24205 500 500 case DamageFEnum : return "DamageF"; 501 501 case DegreeOfChannelizationEnum : return "DegreeOfChannelization"; 502 case DepthBelowSurfaceEnum : return "DepthBelowSurface"; 502 503 case DeviatoricStresseffectiveEnum : return "DeviatoricStresseffective"; 503 504 case DeviatoricStressxxEnum : return "DeviatoricStressxx"; … … 633 634 case P1Enum : return "P1"; 634 635 case PressureEnum : return "Pressure"; 636 case RadarEnum : return "Radar"; 637 case RadarAttenuationMacGregorEnum : return "RadarAttenuationMacGregor"; 638 case RadarAttenuationWolffEnum : return "RadarAttenuationWolff"; 639 case RadarIcePeriodEnum : return "RadarIcePeriod"; 640 case RadarPowerMacGregorEnum : return "RadarPowerMacGregor"; 641 case RadarPowerWolffEnum : return "RadarPowerWolff"; 635 642 case RheologyBAbsGradientEnum : return "RheologyBAbsGradient"; 636 643 case RheologyBInitialguessEnum : return "RheologyBInitialguess"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24168 r24205 512 512 else if (strcmp(name,"DamageF")==0) return DamageFEnum; 513 513 else if (strcmp(name,"DegreeOfChannelization")==0) return DegreeOfChannelizationEnum; 514 else if (strcmp(name,"DepthBelowSurface")==0) return DepthBelowSurfaceEnum; 514 515 else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum; 515 516 else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum; … … 628 629 else if (strcmp(name,"MaterialsRheologyE")==0) return MaterialsRheologyEEnum; 629 630 else if (strcmp(name,"MaterialsRheologyEbar")==0) return MaterialsRheologyEbarEnum; 630 else if (strcmp(name,"MaterialsRheologyEc")==0) return MaterialsRheologyEcEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"MaterialsRheologyEcbar")==0) return MaterialsRheologyEcbarEnum; 634 if (strcmp(name,"MaterialsRheologyEc")==0) return MaterialsRheologyEcEnum; 635 else if (strcmp(name,"MaterialsRheologyEcbar")==0) return MaterialsRheologyEcbarEnum; 635 636 else if (strcmp(name,"MaterialsRheologyEs")==0) return MaterialsRheologyEsEnum; 636 637 else if (strcmp(name,"MaterialsRheologyEsbar")==0) return MaterialsRheologyEsbarEnum; … … 648 649 else if (strcmp(name,"P1")==0) return P1Enum; 649 650 else if (strcmp(name,"Pressure")==0) return PressureEnum; 651 else if (strcmp(name,"Radar")==0) return RadarEnum; 652 else if (strcmp(name,"RadarAttenuationMacGregor")==0) return RadarAttenuationMacGregorEnum; 653 else if (strcmp(name,"RadarAttenuationWolff")==0) return RadarAttenuationWolffEnum; 654 else if (strcmp(name,"RadarIcePeriod")==0) return RadarIcePeriodEnum; 655 else if (strcmp(name,"RadarPowerMacGregor")==0) return RadarPowerMacGregorEnum; 656 else if (strcmp(name,"RadarPowerWolff")==0) return RadarPowerWolffEnum; 650 657 else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum; 651 658 else if (strcmp(name,"RheologyBInitialguess")==0) return RheologyBInitialguessEnum; … … 745 752 else if (strcmp(name,"SmbS0p")==0) return SmbS0pEnum; 746 753 else if (strcmp(name,"SmbS0t")==0) return SmbS0tEnum; 747 else if (strcmp(name,"SmbSizeini")==0) return SmbSizeiniEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"SmbSizeini")==0) return SmbSizeiniEnum; 748 758 else if (strcmp(name,"SmbSmbCorr")==0) return SmbSmbCorrEnum; 749 759 else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum; … … 752 762 else if (strcmp(name,"SmbTeValue")==0) return SmbTeValueEnum; 753 763 else if (strcmp(name,"SmbTemperaturesAnomaly")==0) return SmbTemperaturesAnomalyEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 764 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 758 765 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; 759 766 else if (strcmp(name,"SmbTemperaturesReconstructed")==0) return SmbTemperaturesReconstructedEnum; … … 868 875 else if (strcmp(name,"Outputdefinition41")==0) return Outputdefinition41Enum; 869 876 else if (strcmp(name,"Outputdefinition42")==0) return Outputdefinition42Enum; 870 else if (strcmp(name,"Outputdefinition43")==0) return Outputdefinition43Enum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition43")==0) return Outputdefinition43Enum; 871 881 else if (strcmp(name,"Outputdefinition44")==0) return Outputdefinition44Enum; 872 882 else if (strcmp(name,"Outputdefinition45")==0) return Outputdefinition45Enum; … … 875 885 else if (strcmp(name,"Outputdefinition48")==0) return Outputdefinition48Enum; 876 886 else if (strcmp(name,"Outputdefinition49")==0) return Outputdefinition49Enum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum; 887 else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum; 881 888 else if (strcmp(name,"Outputdefinition50")==0) return Outputdefinition50Enum; 882 889 else if (strcmp(name,"Outputdefinition51")==0) return Outputdefinition51Enum; … … 991 998 else if (strcmp(name,"CuffeyTemperate")==0) return CuffeyTemperateEnum; 992 999 else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum; 993 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 994 1004 else if (strcmp(name,"DataSet")==0) return DataSetEnum; 995 1005 else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum; … … 998 1008 else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum; 999 1009 else if (strcmp(name,"Dense")==0) return DenseEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"DependentObject")==0) return DependentObjectEnum; 1010 else if (strcmp(name,"DependentObject")==0) return DependentObjectEnum; 1004 1011 else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum; 1005 1012 else if (strcmp(name,"DeviatoricStressErrorEstimator")==0) return DeviatoricStressErrorEstimatorEnum; … … 1114 1121 else if (strcmp(name,"LoveKr")==0) return LoveKrEnum; 1115 1122 else if (strcmp(name,"LoveLi")==0) return LoveLiEnum; 1116 else if (strcmp(name,"LoveLr")==0) return LoveLrEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"LoveLr")==0) return LoveLrEnum; 1117 1127 else if (strcmp(name,"LoveSolution")==0) return LoveSolutionEnum; 1118 1128 else if (strcmp(name,"MINI")==0) return MINIEnum; … … 1121 1131 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum; 1122 1132 else if (strcmp(name,"Masscon")==0) return MassconEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum; 1133 else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum; 1127 1134 else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum; 1128 1135 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; … … 1237 1244 else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum; 1238 1245 else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum; 1239 else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum; 1240 1250 else if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum; 1241 1251 else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum; … … 1244 1254 else if (strcmp(name,"Sset")==0) return SsetEnum; 1245 1255 else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum; 1256 else if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum; 1250 1257 else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum; 1251 1258 else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum; -
issm/trunk-jpl/test/NightlyRun/test206.m
r21056 r24205 1 1 %Test Name: SquareShelfTherStea 2 md=triangle(model(),'../Exp/Square.exp', 180000.);2 md=triangle(model(),'../Exp/Square.exp',3000000.); %180000 3 3 md=setmask(md,'all',''); 4 4 md=parameterize(md,'../Par/SquareShelf.par'); 5 md=extrude(md, 3,1.);5 md=extrude(md,6,1.); %md=extrude(md,3,1.); 6 6 md=setflowequation(md,'SSA','all'); 7 7 md.timestepping.time_step=0; 8 md.cluster=generic('name',oshostname(),'np',3); 8 md.cluster=generic('name',oshostname(),'np',1); %3 9 md.thermal.requested_outputs={'default', 'RadarAttenuationMacGregor', 'RadarAttenuationWolff', 'RadarPowerMacGregor', 'RadarPowerWolff'}; 9 10 md=solve(md,'Thermal'); 10 11 11 12 %Fields and tolerances to track changes 12 field_names ={'Temperature','BasalforcingsGroundediceMeltingRate'};13 field_tolerances={1e-13,5e-6};14 field_values={...15 (md.results.ThermalSolution.Temperature),...16 (md.results.ThermalSolution.BasalforcingsGroundediceMeltingRate),...17 };13 %field_names ={'Temperature','BasalforcingsGroundediceMeltingRate'}; 14 %field_tolerances={1e-13,5e-6}; 15 %field_values={... 16 % (md.results.ThermalSolution.Temperature),... 17 % (md.results.ThermalSolution.BasalforcingsGroundediceMeltingRate),... 18 % };
Note:
See TracChangeset
for help on using the changeset viewer.