source:
issm/oecreview/Archive/24684-25833/ISSM-25415-25416.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 6.3 KB |
-
../trunk-jpl/jenkins/ross-debian_linux-codipack
72 72 # 73 73 # See documentation in test/NightlyRun/runme.* for more information. 74 74 # 75 MATLAB_NROPTIONS="'benchmark','all','id',[3015,3119,3480,3201 ]"75 MATLAB_NROPTIONS="'benchmark','all','id',[3015,3119,3480,3201,3202]" 76 76 PYTHON_NROPTIONS="--benchmark='all' -i 3015 3119 3480" -
../trunk-jpl/test/NightlyRun/test3202.m
1 %Test Name: SquareShelfTransientCalibrationNBVcodipack 2 3 %Generate observations 4 md = model; 5 md=triangle(model(),'../Exp/Square.exp',100000.); 6 md = setmask(md,'all',''); 7 md = parameterize(md,'../Par/SquareShelf.par'); 8 md = setflowequation(md,'SSA','all'); 9 md.cluster = generic('np',2); 10 11 %Create real time series for B 12 md.timestepping.interp_forcings = 0; 13 md.timestepping.final_time = 2*md.timestepping.time_step; 14 md.materials.rheology_B = 1.8e8*ones(md.mesh.numberofvertices,2); 15 md.materials.rheology_B(find(md.mesh.x<md.mesh.y),2)=1.4e8; 16 md.materials.rheology_B=[md.materials.rheology_B;0.01 2*md.timestepping.time_step]; 17 18 %Initial values 19 md.initialization.vx = zeros(md.mesh.numberofvertices,1); 20 md.initialization.vy = zeros(md.mesh.numberofvertices,1); 21 md.initialization.pressure = zeros(md.mesh.numberofvertices,1); 22 md.initialization.temperature = zeros(md.mesh.numberofvertices,1); 23 md.basalforcings.geothermalflux = zeros(md.mesh.numberofvertices,1); 24 md.thermal.spctemperature = NaN(md.mesh.numberofvertices,1); 25 26 md = solve(md,'tr'); 27 %plotmodel(md,'axis#all','tight','data',md.materials.rheology_B(1:end-1,1),'caxis#all',[ 1.3 1.9]*10^8,'title','"True" B',... 28 %'data',md.materials.rheology_B(1:end-1,2),'title','"True" B 2') 29 30 %Modify rheology, now constant 31 md.materials.rheology_B(1:end-1,:) = 1.8e8; 32 33 %Set cost function 34 count = 1; 35 for i=1:numel(md.results.TransientSolution) 36 vx_obs = md.results.TransientSolution(i).Vx; 37 vy_obs = md.results.TransientSolution(i).Vy; 38 z_obs = md.results.TransientSolution(i).Surface; 39 40 time = md.results.TransientSolution(i).time; 41 weights= ones(md.mesh.numberofvertices,1); 42 43 md.outputdefinition.definitions{count}=cfsurfacelogvel('name',['LogVelMis' num2str(count)],... 44 'definitionstring',['Outputdefinition' num2str(count)],... 45 'vxobs_string','VxObs','vxobs',vx_obs,... 46 'vyobs_string','VyObs','vyobs',vy_obs,... 47 'weights',weights,'weights_string','WeightsSurfaceObservation',... 48 'datatime',time); 49 md.autodiff.dependents{count} = dependent('name',['Outputdefinition' num2str(count)],'type','scalar','fos_reverse_index',1); 50 count = count+1; 51 52 md.outputdefinition.definitions{count}=cfsurfacesquare('name',['VyMisfit' num2str(count)],... 53 'definitionstring',['Outputdefinition' num2str(count)],... 54 'model_string','Vy','observation_string','VyObs',... 55 'observation',vy_obs/md.constants.yts,'weights',weights,'weights_string','WeightsSurfaceObservation',... 56 'datatime',time); 57 md.autodiff.dependents{count} = dependent('name',['Outputdefinition' num2str(count)],'type','scalar','fos_reverse_index',1); 58 count = count+1; 59 60 md.outputdefinition.definitions{count}=cfsurfacesquare('name',['VxMisfit' num2str(count)],... 61 'definitionstring',['Outputdefinition' num2str(count)],... 62 'model_string','Vx','observation_string','VxObs',... 63 'observation',vx_obs/md.constants.yts,'weights',500*weights,'weights_string','WeightsSurfaceObservation',... 64 'datatime',time); 65 md.autodiff.dependents{count} = dependent('name',['Outputdefinition' num2str(count)],'type','scalar','fos_reverse_index',1); 66 count = count+1; 67 68 md.outputdefinition.definitions{count}=cfsurfacesquare('name',['DEMMisfit' num2str(count)],... 69 'definitionstring',['Outputdefinition' num2str(count)],... 70 'model_string','Surface','observation_string','SurfaceObservation',... 71 'observation',z_obs,... 72 'weights',1/(md.constants.yts)*weights,... 73 'weights_string','WeightsSurfaceObservation',... 74 'datatime',time); 75 md.autodiff.dependents{count} = dependent('name',['Outputdefinition' num2str(count)],'type','scalar','fos_reverse_index',1); 76 count = count+1; 77 end 78 79 %Independent 80 min_params = md.materials.rheology_B; min_params(1:end-1,:) = cuffey(273); 81 max_params = md.materials.rheology_B; max_params(1:end-1,:) = cuffey(200); 82 md.autodiff.independents{1} = independent('name','MaterialsRheologyBbar',... 83 'md_name','md.materials.rheology_B',... 84 'control_size',size(md.materials.rheology_B,2),... 85 'type','vertex',... %Really needed?? 86 'min_parameters',min_params,... 87 'max_parameters',max_params,... 88 'control_scaling_factor',1e8); 89 90 md.inversion=adm1qn3inversion(md.inversion); 91 md.inversion.iscontrol=1; 92 md.inversion.maxiter=4; 93 md.inversion.maxsteps=md.inversion.maxiter; 94 md.inversion.dxmin=1e-5; 95 md.autodiff.isautodiff=1; 96 md.autodiff.driver='fos_reverse'; 97 98 %Go solve! 99 md.verbose=verbose(0); 100 md=solve(md,'tr'); 101 %plotmodel(md,'axis#all','tight','data',md.results.TransientSolution(1).MaterialsRheologyBbar(:,1),'caxis#all',[ 1.3 1.9]*10^8,'title','B1',... 102 %'data',md.results.TransientSolution(1).MaterialsRheologyBbar(:,2),'title','B2') 103 104 %Fields and tolerances to track changes 105 field_names ={'Gradient','Misfit','Rheology'}; 106 field_tolerances={1e-12,1e-12,1e-12}; 107 field_values={... 108 (md.results.TransientSolution(1).Gradient1),... 109 (md.results.TransientSolution(1).J),... 110 (md.results.TransientSolution(1).MaterialsRheologyBbar),... 111 }; -
../trunk-jpl/test/Archives/Archive3202.arch
Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
Note:
See TracBrowser
for help on using the repository browser.