Changeset 2881


Ignore:
Timestamp:
01/21/10 10:00:29 (15 years ago)
Author:
Eric.Larour
Message:

PropagateFlagsUntilDistance: new extractor of element flags, augmented by distance.
Moved queuing scripts to queue/ directory
effectivepressure: compute effective pressure of water
misfit: compute misfit.
new multisolve routine to solve multiple models in batch mode

Location:
issm/trunk/src/m/classes/public
Files:
4 added
10 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/public/display/displaycontrol.m

    r2535 r2881  
    2626        fielddisplay(md,'cm_min','absolute minimum acceptable value of the inversed parameter');
    2727        fielddisplay(md,'cm_max','absolute maximum acceptable value of the inversed parameter');
     28        fielddisplay(md,'cm_gradient','stop control method solution at gradient');
    2829        fielddisplay(md,'meanvel','velocity scaling factor when evaluating relative or logarithmic misfit');
    2930        fielddisplay(md,'epsvel','for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity');
  • issm/trunk/src/m/classes/public/isresultconsistent.m

    r2354 r2881  
    6161if analysis_type==DiagnosticAnalysisEnum() & md.control_analysis==1,
    6262
    63         fields1={'results.diagnostic.vx','results.diagnostic.vy','results.diagnostic.vel','results.diagnostic.parameter'};
    64         fields2={'results.diagnostic.vel','results.diagnostic.J'};
    65 
    66         %check size
    67         if ~testsize(md,fields1,md.numberofgrids),
    68                 bool=0; return
    69         end
    70 
    71         %no NAN
    72         if ~testnan(md,fields1),
    73                 bool=0; return
    74         end
    75 
    76         %check value is real
    77         if ~testreal(md,fields1),
    78                 bool=0; return
    79         end
    80 
    81         %check value>=0
    82         if ~testpositive(md,fields2),
    83                 bool=0; return
    84         end
    85 
    86         %check inversed parameter
    87         if ~isnan(md.cm_max),
    88                 if any(md.results.diagnostic.parameter>md.cm_max)
    89                         disp(['''control'' result not consistent: inverse parameter is greater than ' num2str(md.cm_max)]);
    90                         bool=0; return;
    91                 end
    92         end
    93         if ~isnan(md.cm_min),
    94                 if any(md.results.diagnostic.parameter<md.cm_min)
    95                         disp(['''control'' result not consistent: inverse parameter is smaller than ' num2str(md.cm_min)]);
    96                         bool=0; return;
    97                 end
    98         end
    99 
     63        if ~md.cm_gradient,
     64                fields1={'results.diagnostic.vx','results.diagnostic.vy','results.diagnostic.vel','results.diagnostic.parameter'};
     65                fields2={'results.diagnostic.vel','results.diagnostic.J'};
     66
     67                %check size
     68                if ~testsize(md,fields1,md.numberofgrids),
     69                        bool=0; return
     70                end
     71
     72                %no NAN
     73                if ~testnan(md,fields1),
     74                        bool=0; return
     75                end
     76
     77                %check value is real
     78                if ~testreal(md,fields1),
     79                        bool=0; return
     80                end
     81
     82                %check value>=0
     83                if ~testpositive(md,fields2),
     84                        bool=0; return
     85                end
     86
     87                %check inversed parameter
     88                if ~isnan(md.cm_max),
     89                        if any(md.results.diagnostic.parameter>md.cm_max)
     90                                disp(['''control'' result not consistent: inverse parameter is greater than ' num2str(md.cm_max)]);
     91                                bool=0; return;
     92                        end
     93                end
     94                if ~isnan(md.cm_min),
     95                        if any(md.results.diagnostic.parameter<md.cm_min)
     96                                disp(['''control'' result not consistent: inverse parameter is smaller than ' num2str(md.cm_min)]);
     97                                bool=0; return;
     98                        end
     99                end
     100        else
     101                fields={'results.diagnostic.gradient'};
     102                %check size
     103                if ~testsize(md,fields,md.numberofgrids),
     104                        bool=0; return
     105                end
     106
     107                %no NAN
     108                if ~testnan(md,fields),
     109                        bool=0; return
     110                end
     111
     112                %check value is real
     113                if ~testreal(md,fields),
     114                        bool=0; return
     115                end
     116        end
    100117end
    101118
  • issm/trunk/src/m/classes/public/loadresultsfromcluster.m

    r2617 r2881  
    2828%read log files onto  fields
    2929md.errlog=char(textread([md.name '.errlog'],'%s','delimiter','\n'));
    30 md.outlog=char(textread([md.name '.outlog'],'%s','delimiter','\n'));
     30%md.outlog=char(textread([md.name '.outlog'],'%s','delimiter','\n'));
    3131
    3232if ~isempty(md.errlog),
     
    4242delete([md.name '.outbin']);
    4343
    44 %erase input files
    45 delete([md.name '.bin']);
    46 delete([md.name '.queue']);
     44%erase input file if run was carried out on same platform.
     45hostname=oshostname();
     46if strcmpi(hostname,md.cluster),
     47        delete([md.name '.lock']);
     48        delete([md.name '.bin']);
     49        delete([md.name '.queue']);
     50end
    4751
    4852%post solve phase
  • issm/trunk/src/m/classes/public/marshall.m

    r2586 r2881  
    119119WriteData(fid,md.cm_min,'Scalar','cm_min');
    120120WriteData(fid,md.cm_max,'Scalar','cm_max');
     121WriteData(fid,md.cm_gradient,'Integer','cm_gradient');
    121122WriteData(fid,md.eps_res,'Scalar','eps_res');
    122123WriteData(fid,md.eps_rel,'Scalar','eps_rel');
  • issm/trunk/src/m/classes/public/plot/applyoptions.m

    r2874 r2881  
    229229                set(gcf,'Position',[1604 4 1594 1177]);
    230230        end
     231        if strcmpi(positionstring,'larour2'),
     232                set(gcf,'Position',[813 226 750 623]);
     233        end
     234
    231235end
    232236
  • issm/trunk/src/m/classes/public/radarpower.m

    r2829 r2881  
    4444        %Read and crop file
    4545        im=imread(jpgim);
     46        save temp im geom
    4647        im=im(toplefty:toplefty+sizey,topleftx:topleftx+sizex);
    4748        md.sarpwr=double(flipud(im));
  • issm/trunk/src/m/classes/public/tres.m

    r2762 r2881  
    2222        if isfield(md.results.diagnostic,'vz'),
    2323                md.vz=md.results.diagnostic.vz;
     24        else
     25                md.vz=zeros(md.numberofgrids,1);
    2426        end
    2527        md.vel=md.results.diagnostic.vel;
Note: See TracChangeset for help on using the changeset viewer.