Changeset 19363


Ignore:
Timestamp:
05/13/15 13:11:09 (10 years ago)
Author:
lemorzad
Message:

fix surface temperature forcing bug for pdd method

Location:
issm/trunk-jpl/src
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r19325 r19363  
    14951495                                name==InversionVzObsEnum ||
    14961496                                name==TemperatureEnum ||
     1497                                name==TemperaturePDDEnum ||
    14971498                                name==EnthalpyEnum ||
    14981499                                name==EnthalpyPicardEnum ||
     
    17721773        switch(this->ObjectEnum()){
    17731774                case TriaEnum: 
    1774                         this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
     1775                        // this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
     1776                        this->inputs->AddInput(new TriaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
    17751777                        this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
    17761778                        this->inputs->AddInput(new TriaInput(SurfaceforcingsAccumulationEnum,&accu[0],P1Enum));
    17771779                        this->inputs->AddInput(new TriaInput(SurfaceforcingsMeltEnum,&melt[0],P1Enum));
    17781780                        break;
    1779                 case PentaEnum:
    1780                         this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
    1781                         this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
    1782                         this->InputExtrude(TemperatureEnum,-1);
    1783                         this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
    1784                         break;
     1781                case PentaEnum:
     1782                        if(IsOnSurface()){
     1783                              GetInputListOnVertices(&s[0],TemperatureEnum);
     1784                              yearlytemperatures[0] = s[0];
     1785                              yearlytemperatures[1] = s[1];
     1786                              yearlytemperatures[2] = s[2];
     1787                              this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
     1788                        }
     1789                        this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
     1790                        this->inputs->AddInput(new PentaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
     1791                        this->InputExtrude(TemperaturePDDEnum,-1);
     1792                        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
     1793                        break;
    17851794                case TetraEnum:
    1786                         this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
    1787                         this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
    1788                         this->InputExtrude(TemperatureEnum,-1);
    1789                         this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
    1790                         break;
     1795                        if(IsOnSurface()){
     1796                              GetInputListOnVertices(&s[0],TemperatureEnum);
     1797                              yearlytemperatures[0] = s[0];
     1798                              yearlytemperatures[1] = s[1];
     1799                              yearlytemperatures[2] = s[2];
     1800                              this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
     1801                        }
     1802                        this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
     1803                        this->inputs->AddInput(new TetraInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
     1804                        this->InputExtrude(TemperaturePDDEnum,-1);
     1805                        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
     1806                        break;
    17911807                default: _error_("Not implemented yet");
    17921808        }
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19317 r19363  
    587587        TemperatureEnum,
    588588        TemperaturePicardEnum,
     589        TemperaturePDDEnum,
    589590        ThicknessAbsMisfitEnum,
    590591        SurfaceAbsMisfitEnum,
  • issm/trunk-jpl/src/m/classes/clusters/acenet.m

    r19335 r19363  
    1515                 np=10;
    1616                 port=0;
    17                  queue='shortq';
     17                 queue='longq';
    1818                 time=10;
    1919                 % codepath='/usr/local/issm-r11321/bin'; % this one is for issm on acenet global
     
    2121                 %executionpath='/home/klemorza/issm/trunk-jpl/execution';
    2222                 %executionpath='/home/klemorza/scratch/issmres.dir';
    23                  executionpath='/net/glacdyn-data/glacdyn/1/klemorza/issm.dir';
     23                 executionpath='/net/glacdyn-data/glacdyn/1/klemorza/issm.dir';                 
    2424                 %}}}
    2525         end
     
    2828                         %use provided options to change fields
    2929                         options=pairoptions(varargin{:});
    30 
    3130                         %initialize cluster using user settings if provided
    3231                         if (exist([cluster.name '_settings'])==2), eval([cluster.name '_settings']); end
     
    3534                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    3635                 end
    37                  %}}}
     36                 %}}} 
    3837                 function disp(cluster) % {{{
    3938                         %  display the object
     
    4746                         disp(sprintf('    codepath: %s',cluster.codepath));
    4847                         disp(sprintf('    executionpath: %s',cluster.executionpath));
    49                 end
     48                end
    5049                 %}}}
    5150                 function md = checkconsistency(cluster,md,solution,analyses) % {{{
    5251
    5352                         available_queues={'debug','shortq','longq'};
    54                          queue_requirements_time=[48*1 48*2 48*5];
     53                         queue_requirements_time=[48*1 48*7 48*15];
    5554                         queue_requirements_np=[32 128 256];
    56 
    5755                         QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
    5856                 end
     
    6765                         fprintf(fid,'#!/bin/bash\n');
    6866                         fprintf(fid,'#$ -cwd\n');
    69           fprintf(fid,'#$ -N issm\n');
    70           fprintf(fid,'#$ -l h_rt=00:15:00\n');
    71           % fprintf(fid,'#$ -l h_rt=25:00:0\n');
    72           % fprintf(fid,'#$ -l h_rt=47:59:00\n');
    73           % fprintf(fid,'#$ -l h_rt=72:00:0\n');
    74           fprintf(fid,'#$ -l h_rt=96:00:0\n');
    75           % fprintf(fid,'#$ -l h_rt=336:00:0\n');
    7667
    77           fprintf(fid,'#$ -l h_vmem=2G\n');
     68                         fprintf(fid,'#$ -N issm\n');
     69                         % fprintf(fid,'#$ -l h_rt=00:15:00\n');
     70                         % fprintf(fid,'#$ -l h_rt=5:00:0\n');
     71                         % fprintf(fid,'#$ -l h_rt=25:00:0\n');
     72                         % fprintf(fid,'#$ -l h_rt=47:59:00\n');
     73                         % fprintf(fid,'#$ -l h_rt=72:00:0\n');
     74                         % fprintf(fid,'#$ -l h_rt=96:00:0\n');
     75                         % fprintf(fid,'#$ -l h_rt=336:00:0\n');
     76                         tstr = sprintf('#$ -l h_rt=%i:00:00\n',cluster.time);
     77                         fprintf(fid,tstr);
    7878
    79           % ---- Which queue to use ----
    80           %fprintf(fid,'#$ -q tarasov.q\n'); %
    81           fprintf(fid,'#$ -q short.q@*,medium.q@*\n');
    82           %fprintf(fid,'#$ -q medium.q@*\n');
    83           %fprintf(fid,'#$ -q short.q@*\n');
     79                         fprintf(fid,'#$ -l h_vmem=2G\n');
    8480
    85           % ---- Which node are selected ----
    86           % fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
    87           %fprintf(fid,'#$ -l h=cl0* \n');
    88           % fprintf(fid,'#$ -l h=cl338 \n');
    89           % Acenet nodes with 16cpus and more than 60G mem
    90           % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
    91  
    92           % ---- cpus on different nodes ----
    93            fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
    94           % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
    95           %fprintf(fid,'#$ -pe 4per* %i\n',cluster.np);
    96           % -------- All cpus in the same node --------         
    97           % fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
    98          
    99           % ---- misc ----
    100           fprintf(fid,'#$ -j y\n');       
    101                  
    102           fprintf(fid,'module purge\n');
    103           %fprintf(fid,'module load gcc openmpi/gcc\n');
    104           %fprintf(fid,'module unload openmpi\n');
    105           fprintf(fid,'module load intel/12.1.7.367\n');
    106           fprintf(fid,'module load openmpi/intel/1.2.9\n');
     81                         if strcmp(cluster.executionpath,'/home/klemorza/scratch/issmres.dir')
     82                             % ---- Which acent queue to use ----
     83                             fprintf(fid,'#$ -q short.q@*,medium.q@*\n');
     84                             %fprintf(fid,'#$ -q medium.q@*,long.q@*\n');
     85                             %fprintf(fid,'#$ -q medium.q@*\n');
     86                             %fprintf(fid,'#$ -q short.q@*\n');
     87                             % Acenet nodes with 16cpus and more than 60G mem
     88                             % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
     89                             % ---- cpus on different nodes ----
     90                             if cluster.np==4
     91                                 % -------- All cpus in the same node --------         
     92                                 fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
     93                             else
     94                                 fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
     95                             end
     96                         
     97                         elseif strcmp(cluster.executionpath,'/net/glacdyn-data/glacdyn/1/klemorza/issm.dir')
     98                             % ---- Which node for Lev's queue are selected ----
     99                             fprintf(fid,'#$ -q tarasov.q\n');
     100                             fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
     101                             %fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269 \n');
     102                             %fprintf(fid,'#$ -l h=cl0* \n');
     103                             % fprintf(fid,'#$ -l h=cl338 \n');
     104                             
     105                             if cluster.np==4
     106                                 % -------- All cpus in the same node --------         
     107                                 fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
     108                             else
     109                                 fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
     110                                 %fprintf(fid,'#$ -pe 4per %i\n',cluster.np);
     111                                 %fprintf(fid,'#$ -pe 8per %i\n',cluster.np);
     112                             end
     113                         end
     114                                                 
     115                         % ---- misc ----
     116                         fprintf(fid,'#$ -j y\n');
     117                         
     118                         fprintf(fid,'module purge\n');
     119                         %fprintf(fid,'module load gcc openmpi/gcc\n');
     120                         %fprintf(fid,'module unload openmpi\n');
     121                         fprintf(fid,'module load intel/12.1.7.367\n');
     122                         fprintf(fid,'module load openmpi/intel/1.2.9\n');
    107123
    108           fprintf(fid,'module load gsl\n');
    109           %fprintf(fid,'module load issm\n');
    110           fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
    111           fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
    112           fprintf(fid,'\n');
    113           fprintf(fid,'mpiexec %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog\n',...
    114                    cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
    115           %fprintf(fid,'echo $HOSTNAME >>%s.outlog',modelname);
     124                         fprintf(fid,'module load gsl\n');
     125                         %fprintf(fid,'module load issm\n');
     126                         fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
     127                         fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
     128                         fprintf(fid,'\n');
     129                         fprintf(fid,'mpiexec %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog\n',...
     130                                 cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
     131                         %fprintf(fid,'echo $HOSTNAME >>%s.outlog',modelname);
    116132                         fclose(fid);
    117133
     
    131147
    132148                 end %}}}
     149
    133150                 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
    134151
     
    142159                         issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
    143160                 end %}}}
     161
    144162                 function Download(cluster,dirname,filelist)% {{{
    145163
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19317 r19363  
    568568def TemperatureEnum(): return StringToEnum("Temperature")[0]
    569569def TemperaturePicardEnum(): return StringToEnum("TemperaturePicard")[0]
     570def TemperaturePDDEnum(): return StringToEnum("TemperaturePDD")[0]
    570571def ThicknessAbsMisfitEnum(): return StringToEnum("ThicknessAbsMisfit")[0]
    571572def SurfaceAbsMisfitEnum(): return StringToEnum("SurfaceAbsMisfit")[0]
Note: See TracChangeset for help on using the changeset viewer.