Changeset 24205


Ignore:
Timestamp:
10/04/19 11:25:03 (5 years ago)
Author:
wchu28
Message:

added attenuation calculation

Location:
issm/trunk-jpl
Files:
3 added
15 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r24099 r24205  
    9090                                        ./classes/Vertex.cpp\
    9191                                        ./classes/Hook.cpp\
     92                                        ./classes/Radar.cpp\
    9293                                        ./classes/ExternalResults/Results.cpp\
    9394                                        ./classes/Elements/Element.cpp\
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r24145 r24205  
    219219                virtual void       ComputeStressTensor(void)=0;
    220220                virtual void       ComputeEsaStrainAndVorticity(void)=0;
     221           virtual void          ComputeRadarAttenuation(void){_error_("not implemented yet");};
     222                virtual void       ComputeRadarPower(void)=0;           
    221223                virtual void       Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0;
    222224                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  
    784784        /*Clean up and return*/
    785785        delete gauss;
     786}
     787/*}}}*/
     788void       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/*}}}*/
     899void       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;
    786979}
    787980/*}}}*/
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r24137 r24205  
    5858                void           ComputeSigmaNN(){_error_("not implemented yet");};
    5959                void           ComputeStressTensor();
     60                void                            ComputeRadarAttenuation();
     61                void           ComputeRadarPower();
    6062                void           Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
    6163                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  
    4949                void        ComputeSigmaNN(){_error_("not implemented yet");};
    5050                void        ComputeStressTensor(){_error_("not implemented yet");};
     51                void        ComputeRadarAttenuation(){_error_("not implemented yet");};
     52                void        ComputeRadarPower(){_error_("not implemented yet");};
    5153                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
    5254                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  
    4949                void        ComputeDeviatoricStressTensor(){_error_("not implemented yet");};
    5050                void        ComputeEsaStrainAndVorticity(){_error_("not implemented yet!");};
     51                void        ComputeRadarAttenuation(){_error_("not implemented yet!");};
     52                void        ComputeRadarPower(){_error_("not implemented yet");};
    5153                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
    5254                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  
    6363                void        ComputeStressTensor();
    6464                void        ComputeSurfaceNormalVelocity();
     65                void        ComputeRadarAttenuation(){_error_("not implemented yet");};
     66                void        ComputeRadarPower(){_error_("not implemented yet");};               
    6567                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
    6668                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  
    22162216/*}}}*/
    22172217void FemModel::RequestedOutputsx(Results **presults,char** requested_outputs, int numoutputs, bool save_results){/*{{{*/
    2218 
     2218       
    22192219        /*Intermediaries*/
    22202220        bool        isvec,results_on_nodes;
  • issm/trunk-jpl/src/c/classes/classes.h

    r23946 r24205  
    2626#include "./Massconaxpby.h"
    2727#include "./Regionaloutput.h"
     28#include "./Radar.h"
    2829
    2930/*Constraints: */
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp

    r23066 r24205  
    1818        /*Create output_definitions dataset: */
    1919        output_definitions=new DataSet();
    20 
    2120        char** out_strings = NULL;
    2221        iomodel->FetchData(&out_strings,&num_output_definitions,"md.outputdefinition.list");
     
    2726                }
    2827        }
    29         // free data
     28        // free data:
    3029        for(int i=0;i<num_output_definitions;i++) xDelete<char>(out_strings[i]);
    3130        xDelete<char*>(out_strings);
     
    221220                                }
    222221
    223                                 /*Free ressources:*/
     222                                  /*Free ressources:*/
    224223                                for(j=0;j<num_cfsurfacesquares;j++){
    225224                                        char* string=NULL;
     
    634633                                xDelete<int>(cost_functions_weights_N);
    635634                                xDelete<IssmDouble*>(cost_functions_weights);
    636                         }
     635                       
    637636                        /*}}}*/
     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                        }
    638656                else _error_("output definition enum " << EnumToStringx(output_definition_enums[i]) << " not supported yet!");
    639                 }
     657                }               
    640658        }
    641659        parameters->AddObject(new DataSetParam(OutputdefinitionEnum,output_definitions));
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24168 r24205  
    498498syn keyword cConstant DamageFEnum
    499499syn keyword cConstant DegreeOfChannelizationEnum
     500syn keyword cConstant DepthBelowSurfaceEnum
    500501syn keyword cConstant DeviatoricStresseffectiveEnum
    501502syn keyword cConstant DeviatoricStressxxEnum
     
    631632syn keyword cConstant P1Enum
    632633syn keyword cConstant PressureEnum
     634syn keyword cConstant RadarEnum
     635syn keyword cConstant RadarAttenuationMacGregorEnum
     636syn keyword cConstant RadarAttenuationWolffEnum
     637syn keyword cConstant RadarIcePeriodEnum
     638syn keyword cConstant RadarPowerMacGregorEnum
     639syn keyword cConstant RadarPowerWolffEnum
    633640syn keyword cConstant RheologyBAbsGradientEnum
    634641syn keyword cConstant RheologyBInitialguessEnum
     
    13721379syn keyword cType Profiler
    13731380syn keyword cType Quadtree
     1381syn keyword cType Radar
    13741382syn keyword cType Regionaloutput
    13751383syn keyword cType Results
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24168 r24205  
    494494        DamageFEnum,
    495495        DegreeOfChannelizationEnum,
     496        DepthBelowSurfaceEnum,
    496497        DeviatoricStresseffectiveEnum,
    497498        DeviatoricStressxxEnum,
     
    627628        P1Enum,
    628629        PressureEnum,
     630        RadarEnum,
     631        RadarAttenuationMacGregorEnum,
     632        RadarAttenuationWolffEnum,
     633        RadarIcePeriodEnum,
     634        RadarPowerMacGregorEnum,
     635        RadarPowerWolffEnum,
    629636        RheologyBAbsGradientEnum,
    630637        RheologyBInitialguessEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24168 r24205  
    500500                case DamageFEnum : return "DamageF";
    501501                case DegreeOfChannelizationEnum : return "DegreeOfChannelization";
     502                case DepthBelowSurfaceEnum : return "DepthBelowSurface";
    502503                case DeviatoricStresseffectiveEnum : return "DeviatoricStresseffective";
    503504                case DeviatoricStressxxEnum : return "DeviatoricStressxx";
     
    633634                case P1Enum : return "P1";
    634635                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";
    635642                case RheologyBAbsGradientEnum : return "RheologyBAbsGradient";
    636643                case RheologyBInitialguessEnum : return "RheologyBInitialguess";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24168 r24205  
    512512              else if (strcmp(name,"DamageF")==0) return DamageFEnum;
    513513              else if (strcmp(name,"DegreeOfChannelization")==0) return DegreeOfChannelizationEnum;
     514              else if (strcmp(name,"DepthBelowSurface")==0) return DepthBelowSurfaceEnum;
    514515              else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum;
    515516              else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
     
    628629              else if (strcmp(name,"MaterialsRheologyE")==0) return MaterialsRheologyEEnum;
    629630              else if (strcmp(name,"MaterialsRheologyEbar")==0) return MaterialsRheologyEbarEnum;
    630               else if (strcmp(name,"MaterialsRheologyEc")==0) return MaterialsRheologyEcEnum;
    631631         else stage=6;
    632632   }
    633633   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;
    635636              else if (strcmp(name,"MaterialsRheologyEs")==0) return MaterialsRheologyEsEnum;
    636637              else if (strcmp(name,"MaterialsRheologyEsbar")==0) return MaterialsRheologyEsbarEnum;
     
    648649              else if (strcmp(name,"P1")==0) return P1Enum;
    649650              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;
    650657              else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum;
    651658              else if (strcmp(name,"RheologyBInitialguess")==0) return RheologyBInitialguessEnum;
     
    745752              else if (strcmp(name,"SmbS0p")==0) return SmbS0pEnum;
    746753              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;
    748758              else if (strcmp(name,"SmbSmbCorr")==0) return SmbSmbCorrEnum;
    749759              else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum;
     
    752762              else if (strcmp(name,"SmbTeValue")==0) return SmbTeValueEnum;
    753763              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;
    758765              else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum;
    759766              else if (strcmp(name,"SmbTemperaturesReconstructed")==0) return SmbTemperaturesReconstructedEnum;
     
    868875              else if (strcmp(name,"Outputdefinition41")==0) return Outputdefinition41Enum;
    869876              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;
    871881              else if (strcmp(name,"Outputdefinition44")==0) return Outputdefinition44Enum;
    872882              else if (strcmp(name,"Outputdefinition45")==0) return Outputdefinition45Enum;
     
    875885              else if (strcmp(name,"Outputdefinition48")==0) return Outputdefinition48Enum;
    876886              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;
    881888              else if (strcmp(name,"Outputdefinition50")==0) return Outputdefinition50Enum;
    882889              else if (strcmp(name,"Outputdefinition51")==0) return Outputdefinition51Enum;
     
    991998              else if (strcmp(name,"CuffeyTemperate")==0) return CuffeyTemperateEnum;
    992999              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;
    9941004              else if (strcmp(name,"DataSet")==0) return DataSetEnum;
    9951005              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
     
    9981008              else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
    9991009              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;
    10041011              else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
    10051012              else if (strcmp(name,"DeviatoricStressErrorEstimator")==0) return DeviatoricStressErrorEstimatorEnum;
     
    11141121              else if (strcmp(name,"LoveKr")==0) return LoveKrEnum;
    11151122              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;
    11171127              else if (strcmp(name,"LoveSolution")==0) return LoveSolutionEnum;
    11181128              else if (strcmp(name,"MINI")==0) return MINIEnum;
     
    11211131              else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
    11221132              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;
    11271134              else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
    11281135              else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
     
    12371244              else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
    12381245              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;
    12401250              else if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum;
    12411251              else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
     
    12441254              else if (strcmp(name,"Sset")==0) return SsetEnum;
    12451255              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;
    12501257              else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
    12511258              else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum;
  • issm/trunk-jpl/test/NightlyRun/test206.m

    r21056 r24205  
    11%Test Name: SquareShelfTherStea
    2 md=triangle(model(),'../Exp/Square.exp',180000.);
     2md=triangle(model(),'../Exp/Square.exp',3000000.);   %180000
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=extrude(md,3,1.);
     5md=extrude(md,6,1.);                                                                            %md=extrude(md,3,1.);
    66md=setflowequation(md,'SSA','all');
    77md.timestepping.time_step=0;
    8 md.cluster=generic('name',oshostname(),'np',3);
     8md.cluster=generic('name',oshostname(),'np',1);   %3
     9md.thermal.requested_outputs={'default', 'RadarAttenuationMacGregor', 'RadarAttenuationWolff', 'RadarPowerMacGregor', 'RadarPowerWolff'};
    910md=solve(md,'Thermal');
    1011
    1112%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.