Changeset 20548
- Timestamp:
- 04/25/16 10:08:11 (9 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 deleted
- 47 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 20501-20506,20508-20509,20511-20544
- Property svn:mergeinfo changed
-
issm/trunk/examples/Greenland/runme.m
r20500 r20548 1 1 clear all; 2 steps=[1 2 3 4 5];2 steps=[1]; 3 3 4 4 %Location of SeaRISE dataset … … 146 146 lat = ncread(ncbox,'lat'); 147 147 lon = ncread(ncbox,'lon'); 148 smbbox = ncread(ncbox,' SMB');148 smbbox = ncread(ncbox,'MassFlux'); 149 149 [x1 y1]=ll2xy(lat,lon,+1,45,70); 150 150 -
issm/trunk/examples/ISMIP/CheatyRunme.m
r19105 r20548 3 3 %step 8 is specific to ISMIPF 4 4 5 steps=[1 :7];5 steps=[1]; 6 6 7 7 % parameter file to be used, choose between CheatyIsmipA.par or CheatyIsmipF.par -
issm/trunk/examples/IceBridge/Greenland.par
r19171 r20548 62 62 63 63 disp(' Interpolating surface mass balance'); 64 md.s urfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);65 md.s urfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;64 md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0); 65 md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice; 66 66 67 67 disp(' Construct basal friction parameters'); -
issm/trunk/examples/IceBridge/Greenland_cheatsheet.par
r19171 r20548 66 66 67 67 disp(' Interpolating surface mass balance'); 68 md.s urfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);69 md.s urfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;68 md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0); 69 md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice; 70 70 71 71 disp(' Construct basal friction parameters'); -
issm/trunk/examples/IceBridge/Greenland_noOIB.par
r19171 r20548 40 40 41 41 disp(' Interpolating surface mass balance'); 42 md.s urfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);43 md.s urfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;42 md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0); 43 md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice; 44 44 45 45 disp(' Construct basal friction parameters'); -
issm/trunk/examples/IceBridge/runme.m
r18267 r20548 46 46 47 47 md = setmask(md,'',''); 48 md = parameterize(md,'./Greenland _cheatsheet.par');48 md = parameterize(md,'./Greenland.par'); 49 49 %md = parameterize(md,'./Greenland_noOIB.par'); 50 50 md = setflowequation(md,'SSA','all'); … … 108 108 smb = InterpFromGridToMesh(x1,y1,smb',md.mesh.x,md.mesh.y,0)*1000/md.materials.rho_ice; 109 109 smb = [smb smb smb-1.0]; 110 md.s urfaceforcings.mass_balance = [smb;1 10 20];110 md.smb.mass_balance = [smb;1 10 20]; 111 111 112 112 %Set transient options, run for 20 years, saving every year … … 117 117 %Additional options 118 118 md.inversion.iscontrol=0; 119 md.transient.requested_outputs={'IceVolume','TotalSmb','S urfaceforcingsMassBalance'};119 md.transient.requested_outputs={'IceVolume','TotalSmb','SmbMassBalance'}; 120 120 md.verbose=verbose('solution',true,'module',true,'convergence',true); 121 121 … … 134 134 plotmodel(md,'data',md.results.TransientSolution(end).Vel,'caxis',[1e-1 6000],... 135 135 'log', 10, 'title', 'Velocity (m/y)','gridded',1, ... 136 'data', md.results.TransientSolution(end).S urfaceforcingsMassBalance, ...136 'data', md.results.TransientSolution(end).SmbMassBalance, ... 137 137 'title', 'Surface mass balance (m/y)','gridded',1, ... 138 138 'data',md.results.TransientSolution(end).Thickness,... … … 146 146 %Plot surface mass balance 147 147 surfmb=[]; for i=1:100; surfmb=[surfmb ... 148 md.results.TransientSolution(i).S urfaceforcingsMassBalance]; end148 md.results.TransientSolution(i).SmbMassBalance]; end 149 149 subplot(3,1,1); plot([0.2:0.2:20],mean(surfmb)); title('Mean Surface mass balance'); 150 150 -
issm/trunk/examples/IceflowModels/EISMINT.par
r18198 r20548 29 29 sb=10^-2/1000.; %m/yr/m 30 30 rel=450.*1000.; %m 31 md.s urfaceforcings.mass_balance=min(smb_max,sb*(rel-radius));31 md.smb.mass_balance=min(smb_max,sb*(rel-radius)); 32 32 33 33 disp(' creating velocities'); -
issm/trunk/examples/Jakobshavn/Jks.par
r19171 r20548 38 38 39 39 disp(' Interpolating surface mass balance'); 40 md.s urfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);41 md.s urfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;40 md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0); 41 md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice; 42 42 43 43 disp(' Construct basal friction parameters'); -
issm/trunk/examples/Jakobshavn/runme.m
r18301 r20548 1 steps=[ 4];1 steps=[1]; 2 2 3 3 if any(steps==1) -
issm/trunk/examples/UncertaintyQuantification/runme.m
r18269 r20548 1 1 %PIG Uncertainty Quantification Application 2 steps=[1 :3];2 steps=[1]; 3 3 4 4 if any(steps==1) … … 140 140 141 141 md.stressbalance.restol=10^-5; %tighten tolerances for UQ analyses 142 143 %Turn off verbosity 144 md.verbose=verbose(0); 142 145 143 146 %solve 144 147 md.qmu.isdakota=1; md.inversion.iscontrol=0; 145 148 md.cluster=generic('name',oshostname,'np',4); 149 150 %Dakota runs in parallel with a master/slave configuration. 151 % At least 2 cpu's are needed to run the UQ 152 md.qmu.params.evaluation_scheduling='master'; 153 md.qmu.params.processors_per_evaluation=md.cluster.np-1; 154 146 155 md=solve(md,StressbalanceSolutionEnum,'overwrite','y'); 147 156 … … 217 226 md.inversion.iscontrol=0; 218 227 md.cluster=generic('name',oshostname,'np',2); 228 229 %Dakota runs in parallel with a master/slave configuration. 230 % At least 2 cpu's are needed to run the UQ 231 md.qmu.params.evaluation_scheduling='master'; 232 md.qmu.params.processors_per_evaluation=md.cluster.np-1 233 219 234 md.verbose=verbose('qmu',true); 220 235 md=solve(md,StressbalanceSolutionEnum,'overwrite','y'); -
issm/trunk/jenkins/jenkins.sh
r20507 r20548 7 7 rm -rf $ISSM_DIR/nightlylog 8 8 mkdir $ISSM_DIR/nightlylog 9 10 #Server URI 11 SERVER='https://ross.ics.uci.edu:8080' 9 12 10 13 #Get configuration … … 44 47 #Get changes from jenkins itself (svn requires credentials) 45 48 rm -rf changes 46 wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&149 wget $SERVER/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1 47 50 48 51 #Process html page and get the list of files that has changed (tricky...) … … 60 63 if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ] ; then 61 64 echo " -- checking for changed externalpackages... yes"; 62 ISSM_EXTERNALPACKAGES=" install"65 ISSM_EXTERNALPACKAGES="yes" 63 66 else 64 67 echo " -- checking for changed externalpackages... no"; 65 ISSM_EXTERNALPACKAGES="no ne"68 ISSM_EXTERNALPACKAGES="no" 66 69 fi 67 70 … … 89 92 echo " -- checking for reconfiguration... yes"; 90 93 echo " -- checking for recompilation... yes"; 91 ISSM_EXTERNALPACKAGES=" install"94 ISSM_EXTERNALPACKAGES="yes" 92 95 ISSM_RECONFIGURE="yes" 93 96 ISSM_COMPILATION="yes" … … 97 100 echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old 98 101 #}}} 99 # install/noneexternal packages (ISSM_EXTERNALPACKAGES){{{102 #Install external packages (ISSM_EXTERNALPACKAGES){{{ 100 103 101 104 #Jenkins xml files for individual packages … … 115 118 cd $ISSM_DIR/externalpackages/$PACKAGENAME 116 119 117 #install if requested or if install does not exist 118 if [ "$ISSM_EXTERNALPACKAGES" == "install" ] || [ ! -d install ] || [ ! "$(ls -A install)" ]; 119 then 120 #install if requested or if previous install has not been successful 121 if [ "$ISSM_EXTERNALPACKAGES" == "yes" ] || [ ! -f SUCCESS ]; then 120 122 echo "======================================================"; 121 123 echo " Installing $PACKAGENAME "; … … 126 128 echo " ERROR: installation of $PACKAGENAME failed "; 127 129 echo "======================================================"; 128 #erase install directory, so that next time, we still try and compile this!129 rm -rf install130 130 echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE 131 131 echo '<failure message="failure">External packages did not install right. Check it.</failure>' >> $EXTERNAL_TEST_FILE 132 132 echo '</testcase>' >> $EXTERNAL_TEST_FILE 133 exit 1 133 134 else 134 135 echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE 136 touch SUCCESS 135 137 fi 136 138 source $ISSM_DIR/etc/environment.sh -
issm/trunk/src
- Property svn:mergeinfo changed
/issm/trunk-jpl/src merged: 20501-20503,20505,20511-20520,20522-20524,20526,20528-20531,20533-20542,20544
- Property svn:mergeinfo changed
-
issm/trunk/src/c/Makefile.am
r20500 r20548 534 534 ./shared/TriMesh/SplitMeshForRifts.cpp\ 535 535 ./shared/TriMesh/TriMeshUtils.cpp\ 536 ./modules/TriaSearchx/TriaSearchx.cpp\537 536 ./modules/TriMeshx/TriMeshx.cpp\ 538 537 ./modules/TriMeshProcessRiftsx/TriMeshProcessRiftsx.cpp\ … … 594 593 if !STANDALONE_LIBRARIES 595 594 libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) 595 if FORTRAN 596 libISSMCore_la_LIBADD += $(FLIBS) $(FORTRANLIB) 597 endif 596 598 endif 597 599 endif … … 645 647 libISSMOverload_la_CFLAGS = -D_C_ -fPIC $(COPTFLAGS) $(CFLAGS) 646 648 #}}} 647 648 649 #Executable {{{ 649 650 if ANDROID -
issm/trunk/src/c/analyses/LevelsetAnalysis.cpp
r20500 r20548 77 77 /*Finite element Analysis*/ 78 78 void LevelsetAnalysis::Core(FemModel* femmodel){/*{{{*/ 79 80 #if !defined(_DEVELOPMENT_)81 _error_("Not implemented yet");82 #endif83 79 84 80 /*parameters: */ -
issm/trunk/src/c/classes/Elements/PentaRef.cpp
r19105 r20548 443 443 444 444 /*Get nodal functions derivatives in reference triangle*/ 445 IssmDouble * dbasis_ref=xNew<IssmDouble>(3*numnodes);445 IssmDouble dbasis_ref[3*NUMNODESMAX]; 446 446 GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 447 447 … … 461 461 dbasis[numnodes*2+i]=Jinv[2][0]*dbasis_ref[0*numnodes+i]+Jinv[2][1]*dbasis_ref[1*numnodes+i]+Jinv[2][2]*dbasis_ref[2*numnodes+i]; 462 462 } 463 464 /*Clean up*/465 xDelete<IssmDouble>(dbasis_ref);466 463 } 467 464 /*}}}*/ -
issm/trunk/src/c/classes/Elements/SegRef.cpp
r19105 r20548 146 146 147 147 /*Get nodal functions derivatives in reference triangle*/ 148 IssmDouble * dbasis_ref=xNew<IssmDouble>(numnodes);148 IssmDouble dbasis_ref[1*NUMNODESMAX]; 149 149 GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 150 150 … … 158 158 dbasis[i] = Jinv*dbasis_ref[i]; 159 159 } 160 161 /*Clean up*/162 xDelete<IssmDouble>(dbasis_ref);163 164 160 } 165 161 /*}}}*/ -
issm/trunk/src/c/classes/Elements/TetraRef.cpp
r19105 r20548 225 225 226 226 /*Get nodal functions derivatives in reference triangle*/ 227 IssmDouble * dbasis_ref=xNew<IssmDouble>(3*numnodes);227 IssmDouble dbasis_ref[3*NUMNODESMAX]; 228 228 GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 229 229 … … 243 243 dbasis[numnodes*2+i]=Jinv[2][0]*dbasis_ref[0*numnodes+i]+Jinv[2][1]*dbasis_ref[1*numnodes+i]+Jinv[2][2]*dbasis_ref[2*numnodes+i]; 244 244 } 245 246 /*Clean up*/247 xDelete<IssmDouble>(dbasis_ref);248 245 } 249 246 /*}}}*/ -
issm/trunk/src/c/classes/Elements/TriaRef.cpp
r19105 r20548 197 197 198 198 /*Get nodal functions derivatives in reference triangle*/ 199 IssmDouble * dbasis_ref=xNew<IssmDouble>(2*numnodes);199 IssmDouble dbasis_ref[2*NUMNODESMAX]; 200 200 GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 201 201 … … 211 211 dbasis[numnodes*1+i] = Jinv[1][0]*dbasis_ref[0*numnodes+i]+Jinv[1][1]*dbasis_ref[1*numnodes+i]; 212 212 } 213 214 /*Clean up*/215 xDelete<IssmDouble>(dbasis_ref);216 213 217 214 } -
issm/trunk/src/c/modules/modules.h
r20500 r20548 89 89 #include "./SpcNodesx/SpcNodesx.h" 90 90 #include "./SurfaceAreax/SurfaceAreax.h" 91 #include "./TriaSearchx/TriaSearchx.h"92 91 #include "./TriMeshx/TriMeshx.h" 93 92 #include "./TriMeshProcessRiftsx/TriMeshProcessRiftsx.h" -
issm/trunk/src/m/boundaryconditions/SetMarineIceSheetBC.m
r20500 r20548 40 40 pos=find(md.mesh.vertexonboundary & ~vertexonicefront); 41 41 if isempty(pos), 42 warning('SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually')42 disp('SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet applied') 43 43 end 44 44 md.stressbalance.spcvx=NaN*ones(md.mesh.numberofvertices,1); -
issm/trunk/src/m/classes/calving.m
r20500 r20548 39 39 if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end 40 40 41 md = checkfield(md,'fieldname','calving.calvingrate (1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);42 md = checkfield(md,'fieldname','calving.meltingrate (1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);41 md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); 42 md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); 43 43 end % }}} 44 44 function disp(self) % {{{ -
issm/trunk/src/m/classes/clusters/generic_static.m
r20500 r20548 51 51 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{ 52 52 53 %Check that issm.exe exists in the right path 54 if ~exist([cluster.codepath '/issm.exe'],'file'), 55 error(['File ' cluster.codepath '/issm.exe does not exist']); 56 end 57 58 %Now process codepath and replace empty spaces with \ to avoid errors in queuing script 59 codepath2=strrep(cluster.codepath,' ','\ '); 60 61 %write queuing script 62 %what is the executable being called? 63 executable='issm.exe'; 64 if isdakota, 65 version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3)); 66 if (version>=6), 67 executable='issm_dakota.exe'; 68 end 69 end 70 53 71 %write queuing script 54 72 fid=fopen([modelname '.queue'],'w'); 55 73 fprintf(fid,'#!%s\n',cluster.shell); 56 fprintf(fid,[ cluster.codepath '/mpiexec -np %i %s/issm.exe %s %s %s \n'],cluster.np,cluster.codepath,EnumToString(solution),'./',modelname);74 fprintf(fid,['%s/mpiexec -np %i %s/%s %s %s %s \n'],codepath2,cluster.np,codepath2,executable,EnumToString(solution),'./',modelname); 57 75 fclose(fid); 58 76 -
issm/trunk/src/m/classes/clusters/lonestar.m
r20500 r20548 123 123 fprintf(fid,['module load ' cluster.modules{i} '\n']); 124 124 end 125 126 %fprintf(fid,'export KMP_AFFINITY="granularity=fine,compact,verbose" \n\n'); 127 125 128 if length(find(cluster.email=='@'))>0 126 fprintf(fid,'#SBATCH --mail-user=%s \n',cluster.email); 127 fprintf(fid,'#SBATCH --mail-type=end \n\n'); 129 %fprintf(fid,'#SBATCH --mail-user=%s \n',cluster.email); 130 %fprintf(fid,'#SBATCH --mail-type=end \n\n'); 131 132 fprintf(fid,'ssh login1 "mail -s ''SLURM Jobid=${SLURM_JOBID} Name=${SLURM_JOB_NAME} Began on Lonestar 5.'' %s <<< ''Job Started'' " \n\n',cluster.email); 128 133 end 134 129 135 fprintf(fid,'export PATH="$PATH:."\n\n'); 130 136 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME … … 134 140 if ~io_gather, %concatenate the output files: 135 141 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname); 142 end 143 144 if length(find(cluster.email=='@'))>0 145 fprintf(fid,'\n'); 146 fprintf(fid,'ssh login1 "mail -s ''SLURM Jobid=${SLURM_JOBID} Name=${SLURM_JOB_NAME} Ended on Lonestar 5.'' %s <<< ''Job Ended'' " \n\n',cluster.email); 136 147 end 137 148 fclose(fid); -
issm/trunk/src/m/classes/clusters/pfe.m
r20500 r20548 92 92 end 93 93 end 94 94 elseif strcmpi(cluster.processor,'bro'), 95 if cluster.hyperthreading, 96 if ((cluster.cpuspernode>56 ) | (cluster.cpuspernode<1)), 97 md = checkmessage(md,'cpuspernode should be between 1 and 56 for ''bro'' processors in hyperthreading mode'); 98 end 99 else 100 if ((cluster.cpuspernode>28 ) | (cluster.cpuspernode<1)), 101 md = checkmessage(md,'cpuspernode should be between 1 and 28 for ''bro'' processors'); 102 end 103 end 95 104 elseif strcmpi(cluster.processor,'has'), 96 105 if cluster.hyperthreading, -
issm/trunk/src/m/classes/independent.py
r20500 r20548 2 2 from pairoptions import pairoptions 3 3 from fielddisplay import fielddisplay 4 from checkfield import checkfield 4 5 from MatlabFuncs import * 5 6 from EnumDefinitions import * … … 52 53 raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable") 53 54 54 if self.fov_forward_indices:55 if len(self.fov_forward_indices) > 0: 55 56 if not strcmpi(driver,'fov_forward'): 56 57 raise TypeError("cannot declare an independent with fov_forward_indices when the driver is not fov_forward!") -
issm/trunk/src/m/classes/miscellaneous.m
r20500 r20548 39 39 end % }}} 40 40 function savemodeljs(self,fid,modelname) % {{{ 41 41 42 42 writejsstring(fid,[modelname '.miscellaneous.notes'],self.notes); 43 43 writejsstring(fid,[modelname '.miscellaneous.name'],self.name); 44 44 if strcmpi(class(self.dummy),'double'), 45 writejs1Darray(fid,[modelname '.miscellaneous.dummy'],self.dummy); 45 if size(self.dummy,2)==1, 46 writejs1Darray(fid,[modelname '.miscellaneous.dummy'],self.dummy); 47 else 48 writejs2Darray(fid,[modelname '.miscellaneous.dummy'],self.dummy); 49 end 46 50 end 47 51 -
issm/trunk/src/m/classes/model.m
r20500 r20548 208 208 md.smb.smbref=project2d(md,md.smb.smbref,md.mesh.numberoflayers); 209 209 end; 210 if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers); end;211 210 212 211 %results -
issm/trunk/src/m/classes/model.py
r20500 r20548 687 687 md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers) 688 688 689 if not numpy.isnan(md.balancethickness.thickening_rate).all(): md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers)690 691 689 #results 692 690 if not numpy.isnan(md.initialization.vx).all(): md.initialization.vx=DepthAverage(md,md.initialization.vx) -
issm/trunk/src/m/coordsystems/gdaltransform.m
r20500 r20548 6 6 % 7 7 % Example: 8 % [x,y] = gdaltransform(md.mesh.l at,md.mesh.long,'EPSG:3184','EPSG:3411');8 % [x,y] = gdaltransform(md.mesh.long,md.mesh.lat,'EPSG:4326','EPSG:3031') 9 9 % 10 10 % For reference: 11 % EPSG: 4326 (lat,long) 12 % EPSG: 3411 (greenland, +proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs) 13 % EPSG: 3031 (antarctica, +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs) 11 % EPSG: 4326 (lat,long) 12 % EPSG: 3411 (Greenland, UPS 45W, 70N) 13 % EPSG: 3031 (Antarctica, UPS 0E, 71S) 14 % 15 % ll2xy default projection Antarctica: 16 % +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.448564109 +units=m +no_defs 17 % ll2xy default projection Greenland: 18 % +proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.448564109 +units=m +no_defs 19 % Bamber's Greeland projection 20 % +proj=stere +lat_0=90 +lat_ts=71 +lon_0=-39 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.448564109 +units=m +no_defs 21 % 22 % To get proj.4 string from EPSG, use gdalsrsinfo. Example: gdalsrsinfo "EPSG:4326" | grep "PROJ.4" 14 23 15 24 %give ourselves a unique temporary directory: … … 17 26 18 27 fid=fopen([temproot '/.rand1234.txt'],'w'); 19 for i=1:length(x), 20 fprintf(fid,'%g %g\n',x(i),y(i)); 21 end 28 fprintf(fid,'%8g %8g\n',[x(:) y(:)]'); 22 29 fclose(fid); 23 30 24 31 [s,r]=system(['gdaltransform -s_srs ',proj_in,' -t_srs ',proj_out,' < ' temproot '/.rand1234.txt > ' temproot '/.rand1235.txt']); 25 A=textread([temproot '/.rand1235.txt']); 26 xout=A(:,1); 27 yout=A(:,2); 32 if s~=0 | ~isempty(deblank(r)), 33 error(r); 34 end 35 A=load([temproot '/.rand1235.txt']); 36 xout=A(:,1); xout=reshape(xout,size(x)); 37 yout=A(:,2); yout=reshape(yout,size(y)); -
issm/trunk/src/m/exp/flowlines.m
r15396 r20548 3 3 % 4 4 % Usage: 5 % flowpath=flowlines(index,x,y,u,v,x0,y0 )5 % flowpath=flowlines(index,x,y,u,v,x0,y0,varargin) 6 6 % 7 7 % the velocity field is given by the couple (u,v) and the coordinates … … 10 10 % 11 11 % Example: 12 % flowpath=flowlines(md.mesh.elements,md.mesh.x,md.mesh.y,md. vx,md.initialization.vy,x0,y0)13 14 % check input size15 if nargin>8 | nargin<7, 16 help flowlines 17 error('flowlines error message: bad usage'); 18 end 12 % flowpath=flowlines(md.mesh.elements,md.mesh.x,md.mesh.y,md.initialization.vx,md.initialization.vy,x0,y0) 13 % 14 % Options: 15 % - 'maxiter': how many steps upstream and downstream of the seed points (default: 200) 16 % - 'precision': division of each segment (higer precision increases number of segments, default: 1) 17 % - 'downstream':flow line upstream of the seed points (default: 1) 18 % - 'upstream': flow line upstream of the seed points (default: 1) 19 19 20 20 %check input … … 29 29 end 30 30 31 %get maxiter and precision 32 if nargin==8 33 maxiter=varargin{1}; 34 else 35 maxiter=200; %maximum number of iterations 36 end 37 precision=1; %division of each segment (higer precision increases number of segments) 31 %process options 32 options = pairoptions(varargin{:}); 33 maxiter = getfieldvalue(options,'maxiter',200); 34 precision = getfieldvalue(options,'precision',1); 35 downstream = getfieldvalue(options,'downstream',1); 36 upstream = getfieldvalue(options,'upstream',1); 38 37 39 % check seed points40 tr ia=TriaSearch(index,x,y,x0,y0);41 %tria=tsearch(x,y,index,x0,y0);38 %Create triangulation once for all and check seed points 39 trep = triangulation(index,x,y); 40 tria = pointLocation(trep,[x0 y0]); 42 41 pos=find(isnan(tria)); 43 42 x0(pos)=[]; … … 63 62 v=v(index)*[1;1;1]/3; 64 63 65 %initialization: 66 counter=1; 64 if downstream, 65 %initialization: 66 counter=1; 67 67 68 while any(~done)68 while any(~done) 69 69 70 %find current triangle 71 queue=find(~done); 72 tria=TriaSearch(index,x,y,X(queue),Y(queue)); 73 %tria=tsearch(x,y,index,X(queue),Y(queue)); 70 %find current triangle 71 queue=find(~done); 72 tria = pointLocation(trep,[X(queue),Y(queue)]); 74 73 75 %check that the point is actually inside a triangle of the mesh76 listnan=find(isnan(tria));77 for i=1:length(listnan)78 %remove the last point79 flowpath(queue(listnan(i))).x(end)=[];80 flowpath(queue(listnan(i))).y(end)=[];81 done(queue(listnan(i)))=1;82 end83 tria(listnan)=[];84 queue(listnan)=[];74 %check that the point is actually inside a triangle of the mesh 75 listnan=find(isnan(tria)); 76 for i=1:length(listnan) 77 %remove the last point 78 flowpath(queue(listnan(i))).x(end)=[]; 79 flowpath(queue(listnan(i))).y(end)=[]; 80 done(queue(listnan(i)))=1; 81 end 82 tria(listnan)=[]; 83 queue(listnan)=[]; 85 84 86 if isempty(tria),87 break;88 end85 if isempty(tria), 86 break; 87 end 89 88 90 %velocity of the current triangle and norm it91 ut=u(tria); vt=v(tria); normv=sqrt(ut.^2+vt.^2);92 ut=ut./normv;vt=vt./normv;89 %velocity of the current triangle and norm it 90 ut=u(tria); vt=v(tria); normv=max(eps,sqrt(ut.^2+vt.^2)); 91 ut=ut./normv;vt=vt./normv; 93 92 94 %check counter95 if counter>maxiter96 disp(['Maximum number of iterations (' num2str(maxiter) ') reached while going forward'])97 break98 end99 counter=counter+1;93 %check counter 94 if counter>maxiter 95 disp(['Maximum number of iterations (' num2str(maxiter) ') reached while going forward']) 96 break 97 end 98 counter=counter+1; 100 99 101 %remove stagnant point102 done(queue(find(ut==0 & vt==0)))=1;100 %remove stagnant point 101 done(queue(find(ut==0 & vt==0)))=1; 103 102 104 %build next point 105 for i=1:length(queue) 106 X(queue(i))=flowpath(queue(i)).x(end)+ut(i)*length_tria(tria(i))/precision; 107 Y(queue(i))=flowpath(queue(i)).y(end)+vt(i)*length_tria(tria(i))/precision; 108 flowpath(queue(i)).x=[flowpath(queue(i)).x;flowpath(queue(i)).x(end)+ut(i)*length_tria(tria(i))/precision]; 109 flowpath(queue(i)).y=[flowpath(queue(i)).y;flowpath(queue(i)).y(end)+vt(i)*length_tria(tria(i))/precision]; 103 %build next point 104 for i=1:length(queue) 105 X(queue(i))=flowpath(queue(i)).x(end)+ut(i)*length_tria(tria(i))/precision; 106 Y(queue(i))=flowpath(queue(i)).y(end)+vt(i)*length_tria(tria(i))/precision; 107 flowpath(queue(i)).x=[flowpath(queue(i)).x;flowpath(queue(i)).x(end)+ut(i)*length_tria(tria(i))/precision]; 108 flowpath(queue(i)).y=[flowpath(queue(i)).y;flowpath(queue(i)).y(end)+vt(i)*length_tria(tria(i))/precision]; 109 end 110 110 end 111 111 end 112 112 113 113 %same process but reverse (vel=-vel) to have a vcomplete flow line 114 queue=[]; 115 counter=1; 116 X=x0; Y=y0; 117 done=zeros(N,1); 114 if upstream, 115 queue=[]; 116 counter=1; 117 X=x0; Y=y0; 118 done=zeros(N,1); 118 119 119 while any(~done)120 while any(~done) 120 121 121 %find current triangle 122 queue=find(~done); 123 tria=TriaSearch(index,x,y,X(queue),Y(queue)); 124 %tria=tsearch(x,y,index,X(queue),Y(queue)); 122 %find current triangle 123 queue=find(~done); 124 tria = pointLocation(trep,[X(queue),Y(queue)]); 125 125 126 %check that the point is actually inside a triangle of the mesh127 listnan=find(isnan(tria));128 for i=1:length(listnan)129 %remove the last point130 flowpath(queue(listnan(i))).x(1)=[];131 flowpath(queue(listnan(i))).y(1)=[];132 done(queue(listnan(i)))=1;133 end134 tria(listnan)=[];135 queue(listnan)=[];126 %check that the point is actually inside a triangle of the mesh 127 listnan=find(isnan(tria)); 128 for i=1:length(listnan) 129 %remove the last point 130 flowpath(queue(listnan(i))).x(1)=[]; 131 flowpath(queue(listnan(i))).y(1)=[]; 132 done(queue(listnan(i)))=1; 133 end 134 tria(listnan)=[]; 135 queue(listnan)=[]; 136 136 137 if isempty(tria),138 break;139 end137 if isempty(tria), 138 break; 139 end 140 140 141 %velocity of the current triangle and norm it142 ut=-u(tria); vt=-v(tria); normv=sqrt(ut.^2+vt.^2);143 ut=ut./normv;vt=vt./normv;141 %velocity of the current triangle and norm it 142 ut=-u(tria); vt=-v(tria); normv=max(eps,sqrt(ut.^2+vt.^2)); 143 ut=ut./normv;vt=vt./normv; 144 144 145 %check counter146 if counter>maxiter147 disp(['Maximum number of iterations (' num2str(maxiter) ') reached while going backward'])148 break149 end150 counter=counter+1;145 %check counter 146 if counter>maxiter 147 disp(['Maximum number of iterations (' num2str(maxiter) ') reached while going backward']) 148 break 149 end 150 counter=counter+1; 151 151 152 %remove stagnant point153 done(queue(find(ut==0 & vt==0)))=1;152 %remove stagnant point 153 done(queue(find(ut==0 & vt==0)))=1; 154 154 155 %build next point 156 for i=1:length(queue) 157 X(queue(i))=flowpath(queue(i)).x(1)+ut(i)*length_tria(tria(i))/precision; 158 Y(queue(i))=flowpath(queue(i)).y(1)+vt(i)*length_tria(tria(i))/precision; 159 flowpath(queue(i)).x=[flowpath(queue(i)).x(1)+ut(i)*length_tria(tria(i))/precision; flowpath(queue(i)).x]; 160 flowpath(queue(i)).y=[flowpath(queue(i)).y(1)+vt(i)*length_tria(tria(i))/precision; flowpath(queue(i)).y]; 155 %build next point 156 for i=1:length(queue) 157 X(queue(i))=flowpath(queue(i)).x(1)+ut(i)*length_tria(tria(i))/precision; 158 Y(queue(i))=flowpath(queue(i)).y(1)+vt(i)*length_tria(tria(i))/precision; 159 flowpath(queue(i)).x=[flowpath(queue(i)).x(1)+ut(i)*length_tria(tria(i))/precision; flowpath(queue(i)).x]; 160 flowpath(queue(i)).y=[flowpath(queue(i)).y(1)+vt(i)*length_tria(tria(i))/precision; flowpath(queue(i)).y]; 161 end 161 162 end 162 163 end 163 164 164 %EXP compatibility 165 %EXP compatibility (add name) 165 166 for i=1:length(queue) 166 167 flowpath(queue(i)).name=['flowline' num2str(i)]; -
issm/trunk/src/m/mesh/patchglobe.m
r20500 r20548 6 6 %recover basic options: 7 7 bandwidth=getfieldvalue(options,'bandwidth',100000); 8 9 %some checks on the mesh: 10 if (isempty(mh.x) | isempty(mh.y) | isempty(mh.z) | isempty(mh.lat) | isempty(mh.long) | isempty(mh.r) ) 11 error('patchglobe error message: 3D planet mesh has one of the following empty: ''x'',''y'',''z'',''lat'',''long'' or ''r'''); 12 end 13 if (isempty(mh2d.x) | isempty(mh2d.y) | isempty(mh2d.lat) | isempty(mh2d.long)) 14 error('patchglobe error message: 3D planet mesh has one of the following empty: ''x'',''y'',''lat'' or ''long'''); 15 end 8 16 9 17 %give ourselves a unique temporary directory: -
issm/trunk/src/m/miscellaneous/transientrestart.m
r20500 r20548 18 18 19 19 %Change time 20 md.timestepping.start_time = results.time /md.constants.yts;20 md.timestepping.start_time = results.time; 21 21 22 22 %Change initialization fields -
issm/trunk/src/m/plot/applyoptions.js
r20500 r20548 11 11 if (options.getfieldvalue('colorbar')==1) { 12 12 //Handle movie data {{{ 13 if (typeof data == 'string') {13 if (typeof data == 'string') { 14 14 //throw Error('plot error message: data of type string'); 15 15 return; … … 25 25 }) 26 26 }); 27 data = data[ node['movieFrame']].slice(0,-1);27 data = data[0].slice(0,-1); 28 28 } //}}} 29 29 //Variable options initialization {{{ 30 30 31 var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]); 31 32 var canvassize = options.getfieldvalue('canvassize',480); … … 47 48 var clabelitem; 48 49 var precision=options.getfieldvalue('colorbarprecision',3); 49 if (options.exist('log')) { 50 51 if (options.getfieldvalue('log',10)!='off') { 50 52 for (var i = cdivisions; i >= 0; i--) { 51 if (caxisdelta*i/cdivisions==min) { 52 labels[i] = (caxis[0]).toPrecision(precision); 53 } 54 else { 55 labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(precision); 56 } 53 var scale = Math.log(caxis[1])-Math.log(caxis[0]); 54 labels[i] = (Math.exp(Math.log(caxis[0])+scale*(cdivisions-i)/cdivisions)).toPrecision(precision); 57 55 } 58 56 } else { … … 228 226 var cmap = options.getfieldvalue('cmap','jet'); 229 227 var colorbar = colorbars[cmap]; 230 for (var i = 0; i < colorbar.length; i++) { 231 color = colorbar[colorbar.length-i-1]; 232 color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)]; 233 tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)'); 228 if (options.getfieldvalue('log',10)!='off') { 229 for (var i = 0; i < colorbar.length; i++) { 230 color = colorbar[colorbar.length-i-1]; 231 color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)]; 232 tgradient.addColorStop(1.0-Math.exp(Math.log((colorbar.length-i)/colorbar.length)/Math.log(options.getfieldvalue('log',10))*i/colorbar.length),'rgba('+color.toString()+',1.0)'); 233 } 234 } else { 235 for (var i = 0; i < colorbar.length; i++) { 236 color = colorbar[colorbar.length-i-1]; 237 color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)]; 238 tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)'); 239 } 234 240 } 235 241 -
issm/trunk/src/m/plot/manualcb.m
r20500 r20548 62 62 ytick = (ztick-zmin)/(zmax-zmin); 63 63 else 64 ztick = getfieldvalue(options,'tick',round(logspace(log(zmin)/log(10),log(zmax)/log(10),8))); 64 %old method 65 ztick = getfieldvalue(options,'tick',round( logspace(log10(zmin),log10(zmax),8) )); 65 66 ytick = linspace(0,1,numel(ztick)); 67 68 %New method 69 test=logspace(-10,10,21); 70 pos=find(test>=zmin & test<=zmax); 71 ztick= test(pos); 72 ytick= (log(ztick) - log(zmin))/(log(zmax) - log(zmin)); 66 73 end 67 74 … … 69 76 hold on 70 77 numcolors=size(cmap,1); 71 if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'),72 image_rgb = ind2rgb(repmat((1:numcolors)',1,2),cmap);73 else74 image_rgb = ind2rgb(repmat((1:numcolors)',1,2)',cmap);75 end76 78 if 1, 77 79 %disappears somtimes 78 imagesc([0 1],[0 1],repmat(image_rgb,[1 10 1])); 80 if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'), 81 image_rgb = ind2rgb(repmat((1:numcolors)',1,10),cmap); 82 else 83 image_rgb = ind2rgb(repmat((1:numcolors),10,1),cmap); 84 end 85 86 imagesc([0 1],[0 1],image_rgb); 79 87 else 80 88 %Creates triangles when exported as pdf 81 for i=1:numcolors, 82 patch([0,0,1,1],[(i-1)/numcolors,i/numcolors,i/numcolors,(i-1)/numcolors],'none','FaceColor',cmap(i,:),'Clipping','off','EdgeColor','none') 89 if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'), 90 for i=1:numcolors, 91 patch([0,0,1,1],[(i-1)/numcolors,i/numcolors,i/numcolors,(i-1)/numcolors],0,'FaceColor',cmap(i,:),'Clipping','off','EdgeColor','none') 92 end 93 else 94 for i=1:numcolors, 95 patch([(i-1)/numcolors,i/numcolors,i/numcolors,(i-1)/numcolors],[0,0,1,1],0,'FaceColor',cmap(i,:),'Clipping','off','EdgeColor','none') 96 end 83 97 end 84 98 end -
issm/trunk/src/m/plot/plot_overlay.js
r20500 r20548 127 127 vertices[vertices.length] = vertex[2]; 128 128 129 texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange; 130 texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange; 129 if (md.mesh.classname() == 'mesh3dsurface') { 130 texcoords[texcoords.length] = degrees(Math.atan2(y[i], x[i])) / 360 + 0.5; 131 texcoords[texcoords.length] = degrees(Math.asin(z[i] / magnitude)) / 180 + 0.5; 132 } 133 else { 134 texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange; 135 texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange; 136 } 131 137 } 132 138 -
issm/trunk/src/m/plot/plot_unit.js
r20500 r20548 96 96 else{ //triangular elements 97 97 caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]); 98 if (options.getfieldvalue('log','off')!='off') caxis = [Math.log10(caxis[0])/Math.log10(options.getfieldvalue('log',10)),Math.log10(caxis[1])/Math.log10(options.getfieldvalue('log',10))]; 98 99 datamin = caxis[0]; 99 100 datamax = caxis[1]; … … 196 197 }) 197 198 }); 198 199 for(var i = 0; i < data.length; i++){ 200 //Prevent evaluation of datasubarray min/max if caxis exists 201 if (options.exist('caxis')) { 202 caxis = options.getfieldvalue('caxis'); 203 } 204 else { 205 caxis = [ArrayMin(data[i]),ArrayMax(data[i].slice(0,-1))]; 206 } 199 //Prevent evaluation of datasubarray min/max if caxis exists 200 if (options.exist('caxis')) { 201 caxis = options.getfieldvalue('caxis'); 202 } 203 else { 204 caxis = [ArrayMin(data[0]),ArrayMax(data[0].slice(0,-1))]; 205 } 206 if (options.getfieldvalue('log','off')!='off') caxis = [Math.log10(caxis[0])/Math.log10(options.getfieldvalue('log',10)),Math.log10(caxis[1])/Math.log10(options.getfieldvalue('log',10))]; 207 208 for(var i = 0; i < data.length; i++){ 207 209 datamin = caxis[0]; 208 210 datamax = caxis[1]; -
issm/trunk/src/m/plot/processdata.js
r20500 r20548 143 143 144 144 //log? 145 if (options. exist('log')){145 if (options.getfieldvalue('log','off')!='off'){ 146 146 var bounds=options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]); 147 147 for(var i=0;i<md.mesh.numberofelements;i++)if(data[i]<bounds[0])data[i]=bounds[0]; … … 151 151 for(var i=0;i<md.mesh.numberofelements;i++){ 152 152 if(!IsNaN(data[i])){ 153 data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log' ));153 data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log',10)); 154 154 } 155 155 } … … 184 184 185 185 //log? 186 if (options. exist('log')){186 if (options.getfieldvalue('log','off')!='off'){ 187 187 var bounds=options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]); 188 188 for(var i=0;i<md.mesh.numberofvertices;i++)if(data[i]<bounds[0])data[i]=bounds[0]; … … 191 191 throw Error("Log option cannot be applied on negative values. Use caxis option (Rignot''s settings: [1.5 max(data)])"); 192 192 } 193 194 data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log' ));195 193 for(var i=0;i<md.mesh.numberofvertices;i++){ 194 data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log',10)); 195 } 196 196 } 197 197 } … … 200 200 if (datasize==md.mesh.numberofvertices+1){ 201 201 datatype=5; 202 203 //log? 204 if (options.getfieldvalue('log','off')!='off'){ 205 var bounds=options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]); 206 for(var i=0;i<md.mesh.numberofvertices;i++) { 207 for(var j=0;j<data[i].length;j++) { 208 if(data[i][j]<bounds[0])data[i][j]=bounds[0]; 209 } 210 } 211 for(var i=0;i<md.mesh.numberofvertices;i++) { 212 for(var j=0;j<data[i].length;j++) { 213 if(data[i][j]>bounds[1])data[i][j]=bounds[1]; 214 } 215 } 216 for(var i=0;i<md.mesh.numberofvertices;i++) { 217 for(var j=0;j<data[i].length;j++) { 218 if(data[i][j]<=0) { 219 throw Error("Log option cannot be applied on negative values. Use caxis option (Rignot''s settings: [1.5 max(data)])"); 220 } 221 } 222 } 223 for(var i=0;i<md.mesh.numberofvertices;i++){ 224 for(var j=0;j<data[i].length;j++) { 225 data[i][j]=Math.log10(data[i][j])/Math.log10(options.getfieldvalue('log',10)); 226 } 227 } 228 } 202 229 } 203 230 -
issm/trunk/src/wrappers/matlab/Makefile.am
r20500 r20548 61 61 PropagateFlagsFromConnectivity.la\ 62 62 StringToEnum.la\ 63 TriaSearch.la\64 63 TriMesh.la\ 65 64 TriMeshProcessRifts.la\ … … 250 249 Shp2Kml_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) 251 250 252 TriaSearch_la_SOURCES = ../TriaSearch/TriaSearch.cpp253 TriaSearch_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)254 255 251 TriMesh_la_SOURCES = ../TriMesh/TriMesh.cpp 256 252 TriMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB) -
issm/trunk/test
- Property svn:mergeinfo changed
/issm/trunk-jpl/test merged: 20501,20504,20521,20525,20527
- Property svn:mergeinfo changed
-
issm/trunk/test/NightlyRun/test124.m
r20500 r20548 21 21 'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'}; 22 22 field_tolerances={... 23 2e-09,3 .0e-9,3.0e-9,1e-10,1e-13,1e-12,1e-12,...24 1e-09,3e-10,8e-10,1e-10,1e-10,1e-10,1e-10,...25 1e-09,3e-10,8e-10,1e-10,1e-10,1e-10,1e-10};23 2e-09,3e-9,3.0e-9,1e-10,1e-13,1e-12,1e-12,... 24 2e-09,3e-9,8e-10,1e-10,1e-10,1e-10,1e-10,... 25 2e-09,3e-9,8e-10,1e-10,1e-10,1e-10,1e-10}; 26 26 field_values={... 27 27 (md.results.TransientSolution(1).Vx),... -
issm/trunk/test/NightlyRun/test211.py
r19105 r20548 28 28 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'] 29 29 field_tolerances=[\ 30 2e-08,2e-08, 1e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,\31 5e-07,5e-07,5e-05, 1e-07,1e-08,1e-08,1e-08,1e-08,5e-08,2e-06,\32 5e-06,5e-06,5e-05,5e-06, 1e-07,5e-07,5e-07,5e-07,5e-06,5e-05]30 2e-08,2e-08,2e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,\ 31 5e-07,5e-07,5e-05,2e-07,1e-08,1e-08,1e-08,1e-08,6e-08,2e-06,\ 32 5e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05] 33 33 field_values=[\ 34 34 md.results.TransientSolution[0].Vx,\ -
issm/trunk/test/NightlyRun/test3020.py
r20500 r20548 62 62 63 63 md=solve(md,TransientSolutionEnum()) 64 V0=md.results.TransientSolution[ 2].IceVolume65 MaxV0=md.results.TransientSolution[ 2].MaxVel64 V0=md.results.TransientSolution[-1].IceVolume 65 MaxV0=md.results.TransientSolution[-1].MaxVel 66 66 67 67 #backward … … 74 74 75 75 md=solve(md,TransientSolutionEnum()) 76 V2=md.results.TransientSolution[ 2].IceVolume77 MaxV2=md.results.TransientSolution[ 2].MaxVel76 V2=md.results.TransientSolution[-1].IceVolume 77 MaxV2=md.results.TransientSolution[-1].MaxVel 78 78 79 79 #compute resulting derivative -
issm/trunk/test/NightlyRun/test404.m
r20500 r20548 10 10 %Fields and tolerances to track changes 11 11 field_names ={'Vx','Vy','Vz','Vel','Pressure'}; 12 field_tolerances={6e-07,6e-07,2e-06,1e-06, 3e-07};12 field_tolerances={6e-07,6e-07,2e-06,1e-06,5e-07}; 13 13 field_values={... 14 14 (md.results.StressbalanceSolution.Vx),... -
issm/trunk/test/NightlyRun/test404.py
r20500 r20548 20 20 #Fields and tolerances to track changes 21 21 field_names =['Vx','Vy','Vz','Vel','Pressure'] 22 field_tolerances=[6e-07,6e-07,2e-06,1e-06, 3e-07]22 field_tolerances=[6e-07,6e-07,2e-06,1e-06,5e-07] 23 23 field_values=[\ 24 24 md.results.StressbalanceSolution.Vx,\ -
issm/trunk/test/NightlyRun/test422.m
r20500 r20548 11 11 %Fields and tolerances to track changes 12 12 field_names ={'Vx','Vy','Vz','Vel','Pressure'}; 13 field_tolerances={4e-07,4e-07,2e-06, 2e-07,5e-07};13 field_tolerances={4e-07,4e-07,2e-06,4e-07,5e-07}; 14 14 field_values={... 15 15 (md.results.StressbalanceSolution.Vx),... -
issm/trunk/test/NightlyRun/test422.py
r20500 r20548 21 21 #Fields and tolerances to track changes 22 22 field_names =['Vx','Vy','Vz','Vel','Pressure'] 23 field_tolerances=[4e-07,4e-07,2e-06, 2e-07,5e-07]23 field_tolerances=[4e-07,4e-07,2e-06,4e-07,5e-07] 24 24 field_values=[\ 25 25 md.results.StressbalanceSolution.Vx,\
Note:
See TracChangeset
for help on using the changeset viewer.