Changeset 18271
- Timestamp:
- 07/21/14 14:32:09 (11 years ago)
- Location:
- issm/trunk-jpl/examples/Inversion
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/examples/Inversion/runme.m
r18203 r18271 1 step= 3;1 step=1; 2 2 if step==1 3 3 %Generate observation 4 4 md = model; 5 5 md = triangle(md,'DomainOutline.exp',100000); 6 7 md = setmask(md,'',''); 8 6 md = setmask(md,'all',''); 9 7 md = parameterize(md,'Square.par'); 10 8 md = setflowequation(md,'SSA','all'); 11 9 md.cluster = generic('np',2); 12 13 md.geometry.surface=md.geometry.surface+100;14 md.geometry.base = md.geometry.base+100;15 md.materials.rheology_B(:)=1.8*10^8;16 md.friction.coefficient(:)=50;17 md.friction.coefficient(find(md.mesh.x>400000 & md.mesh.x<600000))=10;18 19 10 md = solve(md,StressbalanceSolutionEnum); 20 plotmodel(md,'data',md. friction.coefficient,'caxis',[0 100],'figure',1);11 plotmodel(md,'data',md.materials.rheology_B,'caxis',[ 1.3 1.9]*10^8,'figure',1); 21 12 plotmodel(md,'data',md.results.StressbalanceSolution.Vel,'figure',2); 22 13 save model1 md … … 25 16 %Modify rheology, now constant 26 17 loadmodel('model1.mat'); 27 md. friction.coefficient(:)=50;18 md.materials.rheology_B(:) = 1.8*10^8; 28 19 29 20 %results of previous run are taken as observations … … 34 25 35 26 md = solve(md,StressbalanceSolutionEnum); 36 plotmodel(md,'data',md. friction.coefficient,'caxis',[0 100],'figure',1);27 plotmodel(md,'data',md.materials.rheology_B,'caxis',[ 1.3 1.9]*10^8,'figure',1); 37 28 plotmodel(md,'data',md.results.StressbalanceSolution.Vel,'figure',2); 38 29 save model2 md … … 45 36 maxsteps = 20; 46 37 md.inversion.iscontrol = 1; 47 md.inversion.control_parameters = {' FrictionCoefficient'};38 md.inversion.control_parameters = {'MaterialsRheologyBbar'}; 48 39 md.inversion.maxsteps = maxsteps; 49 md.inversion.dxmin=10^-6; 50 md.inversion.cost_functions = [103 501]; 51 md.inversion.cost_functions_coefficients = ones(md.mesh.numberofvertices,2); 52 md.inversion.cost_functions_coefficients(:,2)=0; 53 md.inversion.min_parameters = 10^-5*ones(md.mesh.numberofvertices,1); 54 md.inversion.max_parameters = 100*ones(md.mesh.numberofvertices,1); 40 md.inversion.cost_functions = 101; 41 md.inversion.cost_functions_coefficients = ones(md.mesh.numberofvertices,1); 42 md.inversion.min_parameters = paterson(273)*ones(md.mesh.numberofvertices,1); 43 md.inversion.max_parameters = paterson(200)*ones(md.mesh.numberofvertices,1); 55 44 56 45 %Go solve! 57 46 md.verbose=verbose(0); 58 47 md=solve(md,StressbalanceSolutionEnum); 59 plotmodel(md,'data',md.results.StressbalanceSolution. FrictionCoefficient,'caxis',[0 100],'figure',1);48 plotmodel(md,'data',md.results.StressbalanceSolution.MaterialsRheologyBbar,'caxis',[ 1.3 1.9]*10^8,'figure',1); 60 49 plotmodel(md,'data',md.results.StressbalanceSolution.Vel,'figure',2); 61 50 end 51 if step==4 52 %invert for ice rigidity 53 loadmodel('model2.mat'); 54 55 %Set up inversion parameters 56 maxsteps = 20; 57 md.inversion.iscontrol = 1; 58 md.inversion.control_parameters = {'MaterialsRheologyBbar'}; 59 md.inversion.maxsteps = maxsteps; 60 md.inversion.cost_functions = [101 502]; 61 md.inversion.cost_functions_coefficients = ones(md.mesh.numberofvertices,1); 62 md.inversion.cost_functions_coefficients(:,2) = 10^-16*ones(md.mesh.numberofvertices,1); 63 md.inversion.min_parameters = paterson(273)*ones(md.mesh.numberofvertices,1); 64 md.inversion.max_parameters = paterson(200)*ones(md.mesh.numberofvertices,1); 65 66 %Go solve! 67 md.verbose=verbose(0); 68 md=solve(md,StressbalanceSolutionEnum); 69 plotmodel(md,'data',md.results.StressbalanceSolution.MaterialsRheologyBbar,'caxis',[ 1.3 1.9]*10^8,'figure',1); 70 plotmodel(md,'data',md.results.StressbalanceSolution.Vel,'figure',2); 71 end
Note:
See TracChangeset
for help on using the changeset viewer.