source: issm/oecreview/Archive/24684-25833/ISSM-25415-25416.diff

Last change on this file was 25834, checked in by Mathieu Morlighem, 4 years ago

CHG: added 24684-25833

File size: 6.3 KB
  • ../trunk-jpl/jenkins/ross-debian_linux-codipack

     
    7272#
    7373# See documentation in test/NightlyRun/runme.* for more information.
    7474#
    75 MATLAB_NROPTIONS="'benchmark','all','id',[3015,3119,3480,3201]"
     75MATLAB_NROPTIONS="'benchmark','all','id',[3015,3119,3480,3201,3202]"
    7676PYTHON_NROPTIONS="--benchmark='all' -i 3015 3119 3480"
  • ../trunk-jpl/test/NightlyRun/test3202.m

     
     1%Test Name: SquareShelfTransientCalibrationNBVcodipack
     2
     3%Generate observations
     4md = model;
     5md=triangle(model(),'../Exp/Square.exp',100000.);
     6md = setmask(md,'all','');
     7md = parameterize(md,'../Par/SquareShelf.par');
     8md = setflowequation(md,'SSA','all');
     9md.cluster = generic('np',2);
     10
     11%Create real time series for B
     12md.timestepping.interp_forcings = 0;
     13md.timestepping.final_time = 2*md.timestepping.time_step;
     14md.materials.rheology_B = 1.8e8*ones(md.mesh.numberofvertices,2);
     15md.materials.rheology_B(find(md.mesh.x<md.mesh.y),2)=1.4e8;
     16md.materials.rheology_B=[md.materials.rheology_B;0.01 2*md.timestepping.time_step];
     17
     18%Initial values
     19md.initialization.vx = zeros(md.mesh.numberofvertices,1);
     20md.initialization.vy = zeros(md.mesh.numberofvertices,1);
     21md.initialization.pressure = zeros(md.mesh.numberofvertices,1);
     22md.initialization.temperature = zeros(md.mesh.numberofvertices,1);
     23md.basalforcings.geothermalflux = zeros(md.mesh.numberofvertices,1);
     24md.thermal.spctemperature = NaN(md.mesh.numberofvertices,1);
     25
     26md = 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
     31md.materials.rheology_B(1:end-1,:) = 1.8e8;
     32
     33%Set cost function
     34count = 1;
     35for 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;
     77end
     78
     79%Independent
     80min_params = md.materials.rheology_B; min_params(1:end-1,:) = cuffey(273);
     81max_params = md.materials.rheology_B; max_params(1:end-1,:) = cuffey(200);
     82md.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
     90md.inversion=adm1qn3inversion(md.inversion);
     91md.inversion.iscontrol=1;
     92md.inversion.maxiter=4;
     93md.inversion.maxsteps=md.inversion.maxiter;
     94md.inversion.dxmin=1e-5;
     95md.autodiff.isautodiff=1;
     96md.autodiff.driver='fos_reverse';
     97
     98%Go solve!
     99md.verbose=verbose(0);
     100md=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
     105field_names     ={'Gradient','Misfit','Rheology'};
     106field_tolerances={1e-12,1e-12,1e-12};
     107field_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.