disp(' Step 1: Mesh creation');
md=triangle(model,'russellareaAMPT01.exp',2000); %%%%%%
ncdata='amplt_Edisp3s_o.nc';
x1 = ncread(ncdata,'x');
y1 = ncread(ncdata,'y');
y1=flipud(y1);
velx = ncread(ncdata,'amplt_edisp_o');
velx(velx==min(min(velx)))=0;
max(max(velx))
min(min(velx))
vx = InterpFromGridToMesh(x1,y1,velx',md.mesh.x,md.mesh.y,0);
ncdata2='amplt_Ndisp3s_o.nc';
x2 = ncread(ncdata2,'x');
y2 = ncread(ncdata2,'y');
y2=flipud(y2);
vely = ncread(ncdata2,'amplt_ndisp_o');
vely(vely==min(min(vely)))=0;
vy = InterpFromGridToMesh(x2,y2,vely',md.mesh.x,md.mesh.y,0);
vel = sqrt(vx.^2+vy.^2);
md=bamg(md,'hmin',500,'hmax',2000,'field',vel,'err',8);
plotmodel(md,'data','mesh');
=xy2ll(md.mesh.x,md.mesh.y,+1,39,71);
plotmodel (md,'data','mesh');
save RUSSELL.mdl md
disp(' Step 2: Parameterization');
md=loadmodel('RUSSELL.mdl');
md=setmask(md,'','');
md=parameterize(md,'AMTdata.par');
md=parameterize(md,'Jks_noV.par');
weakb=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,'shear2.exp','node',2);
pos=find(weakb);
md.materials.rheology_B(pos)=.3*md.materials.rheology_B(pos);
plotmodel(md,'data',weakb,'edgecolor','w');
save RUSSELL.mdl md
disp(' Step 3: Control method friction');
md=loadmodel('RUSSELL.mdl');
md=setflowequation(md,'SSA','all');
% Control general
md.inversion.iscontrol=1;
md.inversion.nsteps=20;
md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
md.inversion.maxiter_per_step=5*ones(md.inversion.nsteps,1);
md.verbose=verbose('solution',true,'control',true);
% Cost functions
md.inversion.cost_functions=;
md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2);
md.inversion.cost_functions_coefficients(:,1)=40;
md.inversion.cost_functions_coefficients(:,2)=1;
% Controls
md.inversion.control_parameters={'FrictionCoefficient'};
md.inversion.gradient_scaling(1.inversion.nsteps)=30;
md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
% Additional parameters
md.stressbalance.restol=0.01;
md.stressbalance.reltol=0.1;
md.stressbalance.abstol=NaN;
% Go solve
md.cluster=generic('name',oshostname,'np',4);
md=solve(md,StressbalanceSolutionEnum);
%%% Error message: NaN found in solution vectorloading results from cluster
%%% Error using parseresultsfromdisk>parseresultsfromdiskioserial (line 29)
%%% no results found in binary file russell.outbin
%%% Error in parseresultsfromdisk (line 10)
%%% results=parseresultsfromdiskioserial(filename);
%%% Error in loadresultsfromdisk (line 26)
%%% structure=parseresultsfromdisk(filename,~md.settings.io_gather);
%%% Error in loadresultsfromcluster (line 30)
%%% md=loadresultsfromdisk(md,);
%%% Error in solve (line 146)
%%% md=loadresultsfromcluster(md);
%%% >> md.cluster
%%% class 'generic' object 'ans' =
%%% name: AllenTsai-PC
%%% login:
%%% np: 4
%%% port: 0
%%% codepath: C:\ISSM\bin
%%% executionpath: C:\ISSM\execution
%%% etcpath: C:\ISSM\etc
%%% valgrind: C:\ISSM/externalpackages/valgrind/install/bin/valgrind
%%% valgrindlib: C:\ISSM/externalpackages/valgrind/install/lib/libmpidebug.so
%%% valgrindsup: C:\ISSM/externalpackages/valgrind/issm.supp
%%% verbose:
%%% shell: /bin/sh