Changeset 12773


Ignore:
Timestamp:
07/27/12 13:45:47 (13 years ago)
Author:
helsen
Message:

added an optional output: TotalSmb

Location:
issm/trunk-jpl
Files:
4 added
17 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/externalpackages/matlab/install.sh

    r12749 r12773  
    55
    66#Select or create a new simlink
    7 ln -s /usr/local/pkgs/matlab-7.6/ install
     7#ln -s /usr/local/pkgs/matlab-7.6/ install
    88#ln -s /discover/vis/mathworks/matlab_r2011b/ install
    99#ln -s /usr/local/matlab704/ install
     
    1616#ln -s /Applications/MATLAB_R2010a.app/ install
    1717#ln -s /Applications/MATLAB_R2012a.app/ install
     18ln -s /Applications/MATLAB_R2011a.app/ install
    1819#ln -s /Applications/MATLAB*.app/ install
  • issm/trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim

    r12704 r12773  
    694694syn keyword cConstant SettingsResultsAsPatchesEnum
    695695syn keyword cConstant SettingsWaitonlockEnum
    696 syn keyword cConstant DebugPetscProfilingEnum
    697 syn keyword cConstant PetscProfilingCurrentMemEnum
    698 syn keyword cConstant PetscProfilingCurrentFlopsEnum
    699 syn keyword cConstant PetscProfilingSolutionTimeEnum
     696syn keyword cConstant SurfaceforcingsDelta18oEnum
     697syn keyword cConstant SurfaceforcingsDelta18oTemperaturesPresentdayEnum
     698syn keyword cConstant SurfaceforcingsDelta18oTemperaturesLgmEnum
     699syn keyword cConstant SurfaceforcingsDelta18oSurfaceEnum
     700syn keyword cConstant SurfaceforcingsIsdelta18oEnum
     701syn keyword cConstant SurfaceforcingsPrecipitationsPresentdayEnum
     702syn keyword cConstant DebugProfilingEnum
     703syn keyword cConstant ProfilingCurrentMemEnum
     704syn keyword cConstant ProfilingCurrentFlopsEnum
     705syn keyword cConstant ProfilingSolutionTimeEnum
    700706syn keyword cConstant MaxIterationConvergenceFlagEnum
    701707syn keyword cConstant SteadystateMaxiterEnum
     
    797803syn keyword cConstant IntParamEnum
    798804syn keyword cConstant IntVecParamEnum
     805syn keyword cConstant TransientParamEnum
    799806syn keyword cConstant MacAyeal2dIceFrontEnum
    800807syn keyword cConstant MacAyeal3dIceFrontEnum
     
    916923syn keyword cConstant StressTensorzzEnum
    917924syn keyword cConstant IceVolumeEnum
     925syn keyword cConstant TotalSmbEnum
    918926syn keyword cConstant P0Enum
    919927syn keyword cConstant P1Enum
  • issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h

    r12771 r12773  
    402402        StressTensorzzEnum,
    403403        IceVolumeEnum,
     404        TotalSmbEnum,
    404405        /*}}}*/
    405406        /*Element Interpolations{{{1*/
  • issm/trunk-jpl/src/c/Makefile.am

    r12748 r12773  
    528528                                             ./modules/MinVzx/MinVzx.h\
    529529                                             ./modules/MinVzx/MinVzx.cpp\
     530                                             ./modules/TotalSmbx/TotalSmbx.h\
     531                                             ./modules/TotalSmbx/TotalSmbx.cpp\
    530532                                             ./modules/IceVolumex/IceVolumex.h\
    531533                                             ./modules/IceVolumex/IceVolumex.cpp\
  • issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r12771 r12773  
    393393                case StressTensorzzEnum : return "StressTensorzz";
    394394                case IceVolumeEnum : return "IceVolume";
     395                case TotalSmbEnum : return "TotalSmb";
    395396                case P0Enum : return "P0";
    396397                case P1Enum : return "P1";
  • issm/trunk-jpl/src/c/modules/RequestedOutputsx/RequestedOutputsx.cpp

    r12470 r12773  
    3232                                        results->AddObject(new DoubleExternalResult(results->Size()+1,IceVolumeEnum,output_value,step,time));
    3333                                        break;
     34                                case TotalSmbEnum:
     35                                        Responsex(&output_value,elements,nodes,vertices,loads,materials,parameters,"TotalSmb",false,0);
     36                                        results->AddObject(new DoubleExternalResult(results->Size()+1,TotalSmbEnum,output_value,step,time));
     37                                        break;
    3438                                default:
    3539                                        /*create this output in the element inputs, and then transfer to results:*/
  • issm/trunk-jpl/src/c/modules/Responsex/Responsex.cpp

    r12495 r12773  
    4141                case ThicknessAbsMisfitEnum:     ThicknessAbsMisfitx(      responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
    4242                case ThicknessAbsGradientEnum:   ThicknessAbsGradientx(    responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
     43                case TotalSmbEnum:                                      TotalSmbx(                responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
    4344                case RheologyBbarAbsGradientEnum:RheologyBbarAbsGradientx( responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
    4445                case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
  • issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r12771 r12773  
    403403              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
    404404              else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
     405              else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
    405406              else if (strcmp(name,"P0")==0) return P0Enum;
    406407              else if (strcmp(name,"P1")==0) return P1Enum;
  • issm/trunk-jpl/src/c/modules/modules.h

    r12748 r12773  
    3737#include "./GroundinglineMigrationx/GroundinglineMigrationx.h"
    3838#include "./HoleFillerx/HoleFillerx.h"
     39#include "./TotalSmbx/TotalSmbx.h"
    3940#include "./IceVolumex/IceVolumex.h"
    4041#include "./InputControlUpdatex/InputControlUpdatex.h"
  • issm/trunk-jpl/src/c/objects/Elements/Element.h

    r12748 r12773  
    9393                virtual void   ElementResponse(IssmDouble* presponse,int response_enum,bool process_units)=0;
    9494                virtual IssmDouble IceVolume(void)=0;
     95                virtual IssmDouble TotalSmb(void)=0;
    9596                #endif
    9697
  • issm/trunk-jpl/src/c/objects/Elements/Penta.cpp

    r12771 r12773  
    32353235}
    32363236/*}}}*/
     3237/*FUNCTION Penta::TotalSmb {{{*/
     3238IssmDouble Penta::TotalSmb(void){
     3239
     3240        /*The smb[Gt yr-1] of one element is area[m2] * smb [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
     3241        IssmDouble base,smb,rho_ice;
     3242        IssmDouble Total_Smb=0;
     3243        IssmDouble xyz_list[NUMVERTICES][3];
     3244
     3245        /*Get material parameters :*/
     3246        rho_ice=matpar->GetRhoIce();
     3247
     3248        if(IsOnWater())return 0;
     3249
     3250        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
     3251
     3252        /*First calculate the area of the base (cross section triangle)
     3253         * http://en.wikipedia.org/wiki/Triangle
     3254         * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
     3255        base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
     3256
     3257        /*Now get the average SMB over the element*/
     3258        Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
     3259        smb_input->GetInputAverage(&smb);
     3260        Total_Smb=rho_ice*base*smb;                                                                                                                                                                                                                     // smb on element in kg s-1
     3261       
     3262        /*Process units: */
     3263        Total_Smb=UnitConversion(Total_Smb,IuToExtEnum,TotalSmbEnum);                                                                                                                           // smb on element in GigaTon yr-1
     3264       
     3265        /*Return: */
     3266        return Total_Smb;
     3267}
     3268/*}}}*/
    32373269#endif
    32383270
  • issm/trunk-jpl/src/c/objects/Elements/Penta.h

    r12748 r12773  
    123123                 #ifdef _HAVE_RESPONSES_
    124124                IssmDouble IceVolume(void);
     125                IssmDouble TotalSmb(void);
    125126                void   MinVel(IssmDouble* pminvel, bool process_units);
    126127                void   MinVx(IssmDouble* pminvx, bool process_units);
  • issm/trunk-jpl/src/c/objects/Elements/Tria.cpp

    r12771 r12773  
    28042804        }
    28052805
     2806}
     2807/*}}}*/
     2808/*FUNCTION Tria::TotalSmb {{{*/
     2809IssmDouble Tria::TotalSmb(void){
     2810
     2811        /*The smb[kg yr-1] of one element is area[m2] * smb [kg m^-2 yr^-1]*/
     2812        IssmDouble base,smb,rho_ice;
     2813        IssmDouble Total_Smb=0;
     2814        IssmDouble xyz_list[NUMVERTICES][3];
     2815
     2816        /*Get material parameters :*/
     2817        rho_ice=matpar->GetRhoIce();
     2818
     2819   if(IsOnWater())return 0;
     2820
     2821        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
     2822
     2823        /*First calculate the area of the base (cross section triangle)
     2824         * http://en.wikipedia.org/wiki/Triangle
     2825         * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
     2826        base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1])); // area of element in m2
     2827
     2828        /*Now get the average SMB over the element*/
     2829        Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
     2830        smb_input->GetInputAverage(&smb);                                                                                                                                                                                               // average smb on element in m ice s-1
     2831   Total_Smb=rho_ice*base*smb;                                                                                                                                                                                                                  // smb on element in kg s-1
     2832       
     2833        /*Process units: */
     2834        Total_Smb=UnitConversion(Total_Smb,IuToExtEnum,TotalSmbEnum);                                                                                                                           // smb on element in GigaTon yr-1
     2835       
     2836        /*Return: */
     2837        return Total_Smb;
    28062838}
    28072839/*}}}*/
  • issm/trunk-jpl/src/c/objects/Elements/Tria.h

    r12748 r12773  
    121121                #ifdef _HAVE_RESPONSES_
    122122                IssmDouble IceVolume(void);
     123                IssmDouble TotalSmb(void);
    123124                void   MinVel(IssmDouble* pminvel, bool process_units);
    124125                void   MinVx(IssmDouble* pminvx, bool process_units);
  • issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp

    r12677 r12773  
    7474                case MisfitEnum:                             scale=pow(yts,2);break; //(m/yr)^2
    7575                case MassFluxEnum:                           scale=pow((IssmDouble)10,-12)*yts;break; // (GigaTon/year)
     76                case TotalSmbEnum:                           scale=pow((IssmDouble)10,-12)*yts;break; // (GigaTon/year)
    7677                default: scale=1.0; break;
    7778        }
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r12771 r12773  
    37673767        return StringToEnum('IceVolume')
    37683768
     3769def TotalSmbEnum():
     3770        """
     3771        TOTALSMBENUM - Enum of TotalSmb
     3772
     3773           Usage:
     3774              macro=TotalSmbEnum()
     3775        """
     3776
     3777        return StringToEnum('TotalSmb')
     3778
    37693779def P0Enum():
    37703780        """
     
    45654575        """
    45664576
    4567         return 455
    4568 
     4577        return 456
     4578
  • issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m

    r12748 r12773  
    99%      macro=MaximumNumberOfEnums()
    1010
    11 macro=455;
     11macro=456;
Note: See TracChangeset for help on using the changeset viewer.