Changeset 21408 for issm/trunk-jpl/test/NightlyRun/test1205.py
- Timestamp:
- 11/22/16 02:31:19 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/test/NightlyRun/test1205.py
r21060 r21408 1 1 #Test Name: EISMINTRoundIceSheetStaticSIA 2 import numpy 2 import numpy as np 3 3 from model import * 4 from socket import gethostname 4 5 from roundmesh import * 5 6 from setmask import * … … 7 8 from setflowequation import * 8 9 from solve import * 9 from MatlabFuncs import * 10 10 11 11 12 """ … … 28 29 vx_obs=constant/2.*md.mesh.x*(md.geometry.thickness)**-1 29 30 vy_obs=constant/2.*md.mesh.y*(md.geometry.thickness)**-1 30 vel_obs=n umpy.sqrt((md.inversion.vx_obs)**2+(md.inversion.vy_obs)**2)31 vel_obs=np.sqrt((md.inversion.vx_obs)**2+(md.inversion.vy_obs)**2) 31 32 32 33 #We extrude the model to have a 3d model 33 md.extrude(numlayers,1.) ;34 md.extrude(numlayers,1.) 34 35 md=setflowequation(md,'SIA','all') 35 36 36 37 #Spc the nodes on the bed 37 pos=n umpy.nonzero(md.mesh.vertexonbase)38 pos=np.where(md.mesh.vertexonbase) 38 39 md.stressbalance.spcvx[pos]=0. 39 40 md.stressbalance.spcvy[pos]=0. … … 41 42 42 43 #Now we can solve the problem 43 md.cluster=generic('name', oshostname(),'np',8)44 md.cluster=generic('name',gethostname(),'np',8) 44 45 md=solve(md,'Stressbalance') 45 46 … … 47 48 vx=md.results.StressbalanceSolution.Vx 48 49 vy=md.results.StressbalanceSolution.Vy 49 vel=n umpy.zeros((md.mesh.numberofvertices2d,1))50 vel=np.zeros((md.mesh.numberofvertices2d)) 50 51 51 52 for i in xrange(0,md.mesh.numberofvertices2d): 52 53 node_vel=0. 53 54 for j in xrange(0,md.mesh.numberoflayers-1): 54 node_vel=node_vel+1./(2.*(md.mesh.numberoflayers-1))*\ 55 (numpy.sqrt(vx[i+(j+1)*md.mesh.numberofvertices2d,0]**2+vy[i+(j+1)*md.mesh.numberofvertices2d,0]**2)+\ 56 numpy.sqrt(vx[i+j*md.mesh.numberofvertices2d,0]**2+vy[i+j*md.mesh.numberofvertices2d,0]**2)) 57 vel[i,0]=node_vel 55 node_vel=node_vel+1./(2.*(md.mesh.numberoflayers-1))*(np.sqrt(vx[i+(j+1)*md.mesh.numberofvertices2d,0]**2+vy[i+(j+1)*md.mesh.numberofvertices2d,0]**2)+np.sqrt(vx[i+j*md.mesh.numberofvertices2d,0]**2+vy[i+j*md.mesh.numberofvertices2d,0]**2)) 56 vel[i]=node_vel 58 57 59 58 #Plot of the velocity from the exact and calculated solutions … … 62 61 #subplot(2,2,1) 63 62 #p=patch('Faces',md.mesh.elements2d,'Vertices',[md.mesh.x2d md.mesh.y2d],'FaceVertexCData',... 64 #vel,'FaceColor','interp','EdgeColor','none') ;63 #vel,'FaceColor','interp','EdgeColor','none') 65 64 #title('Modelled velocity','FontSize',14,'FontWeight','bold') 66 #colorbar ;67 #caxis([0 200]) ;65 #colorbar 66 #caxis([0 200]) 68 67 69 68 #subplot(2,2,2) 70 69 #p=patch('Faces',md.mesh.elements2d,'Vertices',[md.mesh.x2d md.mesh.y2d],'FaceVertexCData',... 71 #vel_obs,'FaceColor','interp','EdgeColor','none') ;70 #vel_obs,'FaceColor','interp','EdgeColor','none') 72 71 #title('Analytical velocity','FontSize',14,'FontWeight','bold') 73 #colorbar ;74 #caxis([0 200]) ;72 #colorbar 73 #caxis([0 200]) 75 74 76 75 #subplot(2,2,3) 77 #hold on ;78 #plot(sqrt((md.mesh.x(1:md.mesh.numberofvertices2d)).^2+(md.mesh.y(1:md.mesh.numberofvertices2d)).^2),vel,'r.') ;79 #plot(sqrt((md.mesh.x2d).^2+(md.mesh.y2d).^2),vel_obs,'b.') ;80 #title('Analytical vs calculated velocity','FontSize',14,'FontWeight','bold') ;81 #xlabel('distance to the center of the icesheet [m]','FontSize',14,'FontWeight','bold') ;82 #ylabel('velocity [m/yr]','FontSize',14,'FontWeight','bold') ;83 #legend('calculated velocity','exact velocity') ;84 #axis([0 750000 0 200]) ;85 #hold off ;76 #hold on 77 #plot(sqrt((md.mesh.x(1:md.mesh.numberofvertices2d)).^2+(md.mesh.y(1:md.mesh.numberofvertices2d)).^2),vel,'r.') 78 #plot(sqrt((md.mesh.x2d).^2+(md.mesh.y2d).^2),vel_obs,'b.') 79 #title('Analytical vs calculated velocity','FontSize',14,'FontWeight','bold') 80 #xlabel('distance to the center of the icesheet [m]','FontSize',14,'FontWeight','bold') 81 #ylabel('velocity [m/yr]','FontSize',14,'FontWeight','bold') 82 #legend('calculated velocity','exact velocity') 83 #axis([0 750000 0 200]) 84 #hold off 86 85 87 86 #subplot(2,2,4) 88 87 #p=patch('Faces',md.mesh.elements2d,'Vertices',[md.mesh.x2d md.mesh.y2d],'FaceVertexCData',... 89 #abs(vel-vel_obs)./vel_obs*100,'FaceColor','interp','EdgeColor','none') ;88 #abs(vel-vel_obs)./vel_obs*100,'FaceColor','interp','EdgeColor','none') 90 89 #title('Relative misfit [%]','FontSize',14,'FontWeight','bold') 91 #colorbar ;92 #caxis([0 100]) ;90 #colorbar 91 #caxis([0 100]) 93 92 94 93 if printingflag: 95 94 pass 96 95 # set(gcf,'Color','w') 97 # printmodel('SIAstatic','png','margin','on','marginsize',25,'frame','off','resolution',0.7,'hardcopy','off') ;98 # system(['mv SIAstatic.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceSheet']) ;96 # printmodel('SIAstatic','png','margin','on','marginsize',25,'frame','off','resolution',0.7,'hardcopy','off') 97 # system(['mv SIAstatic.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceSheet']) 99 98 100 99 #Fields and tolerances to track changes 101 field_names =[ \ 102 'Vx','Vy','Vel', \ 103 ] 104 field_tolerances=[ \ 105 1e-13,1e-13,1e-13, \ 106 ] 107 field_values=[ \ 108 vx,vy,vel, \ 109 ] 100 field_names =['Vx','Vy','Vel'] 101 field_tolerances=[1e-13,1e-13,1e-13] 102 field_values=[vx,vy,vel]
Note:
See TracChangeset
for help on using the changeset viewer.