Changeset 3796
- Timestamp:
- 05/18/10 10:05:26 (15 years ago)
- Location:
- issm/trunk/src/m/solutions/jpl
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk/src/m/solutions/jpl/SpawnCore.m ¶
r2330 r3796 7 7 8 8 %recover parameters 9 verbose=models.dh.parameters. verbose;9 verbose=models.dh.parameters.Verbose; 10 10 parameters=models.dh.parameters; 11 11 responsedescriptors=models.dh.parameters.responsedescriptors; 12 12 npart=models.dh.parameters.qmu_npart; 13 13 part=models.dh.parameters.qmu_part+1; %C indexing 14 numberofnodes=models.dh.parameters. numberofnodes;14 numberofnodes=models.dh.parameters.NumberOfNodes; 15 15 16 16 disp([' qmu iteration: ',num2str(counter)]); -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedthickness.m ¶
r3589 r3796 20 20 displaystring(md.verbose,'\n%s',['setup inputs...']); 21 21 inputs=inputlist; 22 inputs=add(inputs,'velocity',models.bt.parameters.u_g,'doublevec',3,models.bt.parameters. numberofnodes);23 inputs=add(inputs,'melting',models.bt.parameters.m_g,'doublevec',1,models.bt.parameters. numberofnodes);24 inputs=add(inputs,'accumulation',models.bt.parameters.a_g,'doublevec',1,models.bt.parameters. numberofnodes);22 inputs=add(inputs,'velocity',models.bt.parameters.u_g,'doublevec',3,models.bt.parameters.NumberOfNodes); 23 inputs=add(inputs,'melting',models.bt.parameters.m_g,'doublevec',1,models.bt.parameters.NumberOfNodes); 24 inputs=add(inputs,'accumulation',models.bt.parameters.a_g,'doublevec',1,models.bt.parameters.NumberOfNodes); 25 25 26 26 displaystring(md.verbose,'\n%s',['call computational core:']); -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedthickness2.m ¶
r3589 r3796 20 20 displaystring(md.verbose,'\n%s',['setup inputs...']); 21 21 inputs=inputlist; 22 inputs=add(inputs,'vx',models.p.parameters.vx_g,'doublevec',1,models.p.parameters. numberofvertices);23 inputs=add(inputs,'vy',models.p.parameters.vy_g,'doublevec',1,models.p.parameters. numberofvertices);24 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters. numberofvertices);25 inputs=add(inputs,'dhdt',models.p.parameters.dhdt_g,'doublevec',1,models.p.parameters. numberofvertices);26 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters. numberofvertices);27 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters. numberofvertices);22 inputs=add(inputs,'vx',models.p.parameters.vx_g,'doublevec',1,models.p.parameters.NumberOfVertices); 23 inputs=add(inputs,'vy',models.p.parameters.vy_g,'doublevec',1,models.p.parameters.NumberOfVertices); 24 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters.NumberOfVertices); 25 inputs=add(inputs,'dhdt',models.p.parameters.dhdt_g,'doublevec',1,models.p.parameters.NumberOfVertices); 26 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters.NumberOfVertices); 27 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters.NumberOfVertices); 28 28 29 29 displaystring(md.verbose,'\n%s',['call computational core:']); -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedthickness2_core.m ¶
r3589 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['depth averaging velocity...']);12 displaystring(m.parameters.Verbose,'\n%s',['depth averaging velocity...']); 13 13 %Take only the first two dofs of m.parameters.u_g 14 14 vx_g=get(inputs,'vx',1); … … 19 19 %vy_g=FieldDepthAverage(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,vy_g,'vy'); 20 20 21 inputs=add(inputs,'vx_average',vx_g,'doublevec',1,m.parameters. numberofvertices);22 inputs=add(inputs,'vy_average',vy_g,'doublevec',1,m.parameters. numberofvertices);21 inputs=add(inputs,'vx_average',vx_g,'doublevec',1,m.parameters.NumberOfVertices); 22 inputs=add(inputs,'vy_average',vy_g,'doublevec',1,m.parameters.NumberOfVertices); 23 23 24 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);24 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 25 25 results.h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 26 26 27 displaystring(m.parameters. verbose,'\n%s',['averaging over vertices']);27 displaystring(m.parameters.Verbose,'\n%s',['averaging over vertices']); 28 28 results.h_g=FieldAverageOntoVertices(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.h_g); 29 29 30 displaystring(m.parameters. verbose,'\n%s',['extrude computed thickness on all layers:']);30 displaystring(m.parameters.Verbose,'\n%s',['extrude computed thickness on all layers:']); 31 31 %results.h_g=FieldAverageOntoVertices(m.elements,m.nodes,m.loads,m.materials,m.parameters,results.h_g,'thickness'); 32 32 -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedthickness_core.m ¶
r3589 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['depth averaging velocity...']);12 displaystring(m.parameters.Verbose,'\n%s',['depth averaging velocity...']); 13 13 %Take only the first two dofs of m.parameters.u_g 14 14 u_g=get(inputs,'velocity',[1 1 0 0]); 15 15 u_g=FieldDepthAverage(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,u_g,'velocity'); 16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters. numberofnodes);16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters.NumberOfNodes); 17 17 18 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);18 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 19 19 results.h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 20 20 21 displaystring(m.parameters. verbose,'\n%s',['extrude computed thickness on all layers:']);21 displaystring(m.parameters.Verbose,'\n%s',['extrude computed thickness on all layers:']); 22 22 results.h_g=FieldExtrude(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.h_g,'thickness',0); 23 23 -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedvelocities.m ¶
r2722 r3796 20 20 displaystring(md.verbose,'\n%s',['setup inputs...']); 21 21 inputs=inputlist; 22 inputs=add(inputs,'velocity',models.p.parameters.u_g,'doublevec',3,models.p.parameters. numberofnodes);23 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters. numberofnodes);24 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters. numberofnodes);25 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters. numberofnodes);26 inputs=add(inputs,'dt',models.p.parameters. dt*models.p.parameters.yts,'double');22 inputs=add(inputs,'velocity',models.p.parameters.u_g,'doublevec',3,models.p.parameters.NumberOfNodes); 23 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters.NumberOfNodes); 24 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters.NumberOfNodes); 25 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters.NumberOfNodes); 26 inputs=add(inputs,'dt',models.p.parameters.Dt*models.p.parameters.Yts,'double'); 27 27 28 28 displaystring(md.verbose,'\n%s',['call computational core:']); -
TabularUnified issm/trunk/src/m/solutions/jpl/balancedvelocities_core.m ¶
r2722 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['depth averaging velocity...']);12 displaystring(m.parameters.Verbose,'\n%s',['depth averaging velocity...']); 13 13 %Take only the first two dofs of m.parameters.u_g 14 14 u_g=get(inputs,'velocity',[1 1 0 0]); 15 15 u_g=FieldDepthAverage(m.elements,m.nodes,m.loads,m.materials,m.parameters,u_g,'velocity'); 16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters. numberofnodes);16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters.NumberOfNodes); 17 17 18 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);18 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 19 19 results.h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 20 20 21 displaystring(m.parameters. verbose,'\n%s',['extrude computed thickness on all layers:']);21 displaystring(m.parameters.Verbose,'\n%s',['extrude computed thickness on all layers:']); 22 22 results.v_g=FieldExtrude(m.elements,m.nodes,m.loads,m.materials,m.parameters,results.h_g,'thickness',0); 23 23 -
TabularUnified issm/trunk/src/m/solutions/jpl/control_core.m ¶
r3524 r3796 12 12 model=models.active; 13 13 14 model.parameters 14 15 %recover parameters common to all solutions 15 verbose=model.parameters. verbose;16 dim=model.parameters. dim;17 isstokes=model.parameters. isstokes;16 verbose=model.parameters.Verbose; 17 dim=model.parameters.Dim; 18 isstokes=model.parameters.IsStokes; 18 19 19 20 %recover other parameters 20 eps_cm=model.parameters. eps_cm;21 fit=model.parameters. fit;21 eps_cm=model.parameters.EpsCm; 22 fit=model.parameters.Fit; 22 23 23 24 %initialize control parameters … … 27 28 options=ControlOptions(model.parameters); 28 29 29 for n=1:model.parameters. nsteps,30 for n=1:model.parameters.NSteps, 30 31 31 32 %set options 32 options=optimset(options,'MaxFunEvals',model.parameters. maxiter(n));33 options=optimset(options,'MaxFunEvals',model.parameters.MaxIter(n)); 33 34 34 disp(sprintf('\n%s%s%s%s\n',[' control method step ' num2str(n) '/' num2str(model.parameters. nsteps)]));35 disp(sprintf('\n%s%s%s%s\n',[' control method step ' num2str(n) '/' num2str(model.parameters.NSteps)])); 35 36 36 37 %In case we are running a steady state control method, compute new temperature field using new parameter distribution: 37 if model.parameters. control_steady;38 if model.parameters.ControlSteady; 38 39 steadystate_results=steadystate_core(models,inputs); t_g=steadystate_results.t_g; 39 inputs=add(inputs,'temperature',t_g,'doublevec',1,model.parameters. numberofnodes);40 inputs=add(inputs,'temperature',t_g,'doublevec',1,model.parameters.NumberOfNodes); 40 41 end 41 42 42 43 %update inputs with new fit 43 inputs=add(inputs,'fit',model.parameters. fit(n),'double');44 inputs=add(inputs,model.parameters. control_type,param_g,'doublevec',1,model.parameters.numberofnodes);44 inputs=add(inputs,'fit',model.parameters.Fit(n),'double'); 45 inputs=add(inputs,model.parameters.ControlType,param_g,'doublevec',1,model.parameters.NumberOfNodes); 45 46 46 47 %Update inputs in datasets … … 52 53 if dim==3, 53 54 if isstokes, 54 inputs=add(inputs,'velocity',u_g,'doublevec',4,model.parameters. numberofnodes);55 inputs=add(inputs,'velocity',u_g,'doublevec',4,model.parameters.NumberOfNodes); 55 56 else 56 if model.parameters. control_steady;57 inputs=add(inputs,'velocity',u_g,'doublevec',3,model.parameters. numberofnodes);57 if model.parameters.ControlSteady; 58 inputs=add(inputs,'velocity',u_g,'doublevec',3,model.parameters.NumberOfNodes); 58 59 else 59 inputs=add(inputs,'velocity',u_g,'doublevec',2,model.parameters. numberofnodes);60 inputs=add(inputs,'velocity',u_g,'doublevec',2,model.parameters.NumberOfNodes); 60 61 end 61 62 end 62 63 else 63 inputs=add(inputs,'velocity',u_g,'doublevec',2,model.parameters. numberofnodes);64 inputs=add(inputs,'velocity',u_g,'doublevec',2,model.parameters.NumberOfNodes); 64 65 end 65 66 … … 72 73 73 74 %visualize direction. 74 if model.parameters. plot75 if model.parameters.Plot 75 76 plot_direction; 76 77 end … … 80 81 81 82 displaystring(verbose,'\n%s',[' updating parameter using optimized search scalar...']); 82 param_g=param_g+search_scalar*model.parameters. optscal(n)*c(n).grad_g;83 param_g=param_g+search_scalar*model.parameters.Optscal(n)*c(n).grad_g; 83 84 84 85 displaystring(verbose,'\n%s',[' constraining the new distribution...']); … … 116 117 117 118 %compute final velocity from diagnostic_core (horiz+vertical) 118 if model.parameters. control_steady;119 inputs=add(inputs,model.parameters. control_type,param_g,'doublevec',1,model.parameters.numberofnodes);119 if model.parameters.ControlSteady; 120 inputs=add(inputs,model.parameters.ControlType,param_g,'doublevec',1,model.parameters.NumberOfNodes); 120 121 steadystate_results=steadystate_core(models,inputs); t_g=steadystate_results.t_g; 121 122 u_g=steadystate_results.u_g; … … 123 124 m_g=steadystate_results.m_g; 124 125 else 125 inputs=add(inputs,model.parameters. control_type,param_g,'doublevec',1,model.parameters.numberofnodes);126 inputs=add(inputs,model.parameters.ControlType,param_g,'doublevec',1,model.parameters.NumberOfNodes); 126 127 results_diag=diagnostic_core(models,inputs); 127 128 u_g=results_diag.u_g; … … 140 141 results.param_g=param_g; 141 142 results.u_g=u_g; 142 if model.parameters. control_steady,143 if model.parameters.ControlSteady, 143 144 results.t_g=t_g; 144 145 results.m_g=m_g; -
TabularUnified issm/trunk/src/m/solutions/jpl/diagnostic_core_linear.m ¶
r3589 r3796 17 17 %Reduce tangent matrix from g size to f size 18 18 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, m.Gmn, m.nodesets); 19 displaystring(m.parameters. verbose>1,'%s%g',' condition number of stiffness matrix: ',condest(K_ff));19 displaystring(m.parameters.Verbose>1,'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 20 20 21 21 %Reduce load from g size to f size -
TabularUnified issm/trunk/src/m/solutions/jpl/diagnostic_core_nonlinear.m ¶
r3612 r3796 11 11 m.parameters.kflag=1; m.parameters.pflag=1; 12 12 13 m.parameters 13 14 % initialize solution vector 14 15 converged=0; count=1; 15 soln(count).u_g=get(inputs,'velocity',[1 1 (m.parameters. numberofdofspernode>=3) (m.parameters.numberofdofspernode>=3)]); %only keep vz if running with more than 3 dofs per node16 soln(count).u_g=get(inputs,'velocity',[1 1 (m.parameters.NumberOfDofsPerNode>=3) (m.parameters.NumberOfDofsPerNode>=3)]); %only keep vz if running with more than 3 dofs per node 16 17 17 18 soln(count).u_f= Reducevectorgtof(soln(count).u_g,m.nodesets); … … 20 21 inputs=add(inputs,'converged',converged,'double'); 21 22 22 displaystring(m.parameters. verbose,'\n%s',[' starting direct shooting method']);23 displaystring(m.parameters.Verbose,'\n%s',[' starting direct shooting method']); 23 24 while(~converged), 24 25 25 26 %add velocity to inputs 26 inputs=add(inputs,'velocity',soln(count).u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);27 inputs=add(inputs,'velocity',soln(count).u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 27 28 if count>1, 28 inputs=add(inputs,'old_velocity',soln(count-1).u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);29 inputs=add(inputs,'old_velocity',soln(count-1).u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 29 30 else 30 inputs=add(inputs,'old_velocity',soln(count).u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);31 inputs=add(inputs,'old_velocity',soln(count).u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 31 32 end 32 33 … … 59 60 60 61 %Deal with penalty loads 61 inputs=add(inputs,'velocity',soln(count).u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);62 inputs=add(inputs,'velocity',soln(count).u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 62 63 63 64 %penalty constraints … … 65 66 error; 66 67 67 displaystring(m.parameters. verbose,'%s%i',' number of unstable constraints: ',num_unstable_constraints);68 displaystring(m.parameters.Verbose,'%s%i',' number of unstable constraints: ',num_unstable_constraints); 68 69 69 70 %Figure out if convergence have been reached … … 87 88 nout=max(nargout,1)-1; 88 89 if nout==2, 89 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);90 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 90 91 m.parameters.kflag=1; m.parameters.pflag=0; 91 92 [K_gg, p_g]=SystemMatrices(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); -
TabularUnified issm/trunk/src/m/solutions/jpl/gradjcompute_core.m ¶
r3524 r3796 5 5 6 6 %recover parameters 7 verbose=m.parameters. verbose;8 dim=m.parameters. dim;9 extrude_param=m.parameters. extrude_param;10 ishutter=m.parameters. ishutter;11 ismacayealpattyn=m.parameters. ismacayealpattyn;12 isstokes=m.parameters. isstokes;13 analysis_type=m.parameters. analysis_type;14 sub_analysis_type=m.parameters. sub_analysis_type;7 verbose=m.parameters.Verbose; 8 dim=m.parameters.Dim; 9 extrude_param=m.parameters.ExtrudeParam; 10 ishutter=m.parameters.IsHutter; 11 ismacayealpattyn=m.parameters.IsMacAyealPattyn; 12 isstokes=m.parameters.IsStokes; 13 analysis_type=m.parameters.AnalysisType; 14 sub_analysis_type=m.parameters.SubAnalysisType; 15 15 16 16 %Recover solution for this stiffness and right hand side: 17 17 displaystring(verbose,'%s',' computing velocities...'); 18 18 [u_g K_ff0 K_fs0 ]=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type); 19 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);19 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 20 20 21 21 %Buid Du, difference between observed velocity and model velocity. … … 32 32 %Merge back to g set 33 33 lambda_g= Mergesolutionfromftog( lambda_f, m.Gmn, m.ys0, m.nodesets ); 34 inputs=add(inputs,'adjoint',lambda_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);34 inputs=add(inputs,'adjoint',lambda_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 35 35 36 36 %Compute gradJ … … 41 41 end 42 42 43 if m.parameters. control_steady,43 if m.parameters.ControlSteady, 44 44 %compute initial velocity from diagnostic_core (horiz+vertical) 45 45 displaystring(verbose,'%s',' compute 3d initial velocity...'); -
TabularUnified issm/trunk/src/m/solutions/jpl/objectivefunctionC.m ¶
r3502 r3796 5 5 6 6 %recover some parameters 7 optscal=m.parameters. optscal(n);8 fit=m.parameters. fit(n);9 control_type=m.parameters. control_type;10 analysis_type=m.parameters. analysis_type;7 optscal=m.parameters.Optscal(n); 8 fit=m.parameters.Fit(n); 9 control_type=m.parameters.ControlType; 10 analysis_type=m.parameters.AnalysisType; 11 11 12 12 %Update along gradient using scalar supplied by fmincon optimization routine … … 14 14 15 15 %Plug parameter into inputs 16 inputs=add(inputs,m.parameters. control_type,parameter,'doublevec',1,m.parameters.numberofnodes);16 inputs=add(inputs,m.parameters.ControlType,parameter,'doublevec',1,m.parameters.NumberOfNodes); 17 17 18 18 %Run diagnostic with updated parameters. … … 20 20 21 21 %add velocity to inputs. 22 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);22 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 23 23 24 24 %Compute misfit for this velocity field. -
TabularUnified issm/trunk/src/m/solutions/jpl/processresults.m ¶
r3552 r3796 21 21 22 22 %some flags needed 23 dim=m_dhu.parameters. dim;24 ishutter=m_dhu.parameters. ishutter;25 ismacayealpattyn=m_dh.parameters. ismacayealpattyn;26 isstokes=m_ds.parameters. isstokes;23 dim=m_dhu.parameters.Dim; 24 ishutter=m_dhu.parameters.IsHutter; 25 ismacayealpattyn=m_dh.parameters.IsMacAyealPattyn; 26 isstokes=m_ds.parameters.IsStokes; 27 27 end 28 28 if (analysis_type==ControlAnalysisEnum()), … … 30 30 31 31 %some flags needed 32 dim=m_dh.parameters. dim;33 ishutter=m_dh.parameters. ishutter;34 ismacayealpattyn=m_dh.parameters. ismacayealpattyn;35 isstokes=m_dh.parameters. isstokes;32 dim=m_dh.parameters.Dim; 33 ishutter=m_dh.parameters.IsHutter; 34 ismacayealpattyn=m_dh.parameters.IsMacAyealPattyn; 35 isstokes=m_dh.parameters.IsStokes; 36 36 end 37 37 if (analysis_type==ThermalAnalysisEnum() | analysis_type==TransientAnalysisEnum() | analysis_type==SteadystateAnalysisEnum()), … … 52 52 53 53 u_g=results(i).u_g; 54 yts=m_dh.parameters. yts;54 yts=m_dh.parameters.Yts; 55 55 56 56 if dim==2, … … 93 93 94 94 m_g=results(i).m_g; 95 yts=m_m.parameters. yts;95 yts=m_m.parameters.Yts; 96 96 newresults(i).step=results(i).step; 97 97 newresults(i).time=results(i).time; -
TabularUnified issm/trunk/src/m/solutions/jpl/prognostic.m ¶
r2330 r3796 20 20 displaystring(md.verbose,'\n%s',['setup inputs...']); 21 21 inputs=inputlist; 22 inputs=add(inputs,'velocity',models.p.parameters.u_g,'doublevec',3,models.p.parameters. numberofnodes);23 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters. numberofnodes);24 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters. numberofnodes);25 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters. numberofnodes);26 inputs=add(inputs,'dt',models.p.parameters. dt*models.p.parameters.yts,'double');22 inputs=add(inputs,'velocity',models.p.parameters.u_g,'doublevec',3,models.p.parameters.NumberOfNodes); 23 inputs=add(inputs,'thickness',models.p.parameters.h_g,'doublevec',1,models.p.parameters.NumberOfNodes); 24 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters.NumberOfNodes); 25 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters.NumberOfNodes); 26 inputs=add(inputs,'dt',models.p.parameters.Dt*models.p.parameters.Yts,'double'); 27 27 28 28 displaystring(md.verbose,'\n%s',['call computational core:']); -
TabularUnified issm/trunk/src/m/solutions/jpl/prognostic2_core.m ¶
r3556 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['depth averaging velocity...']);12 displaystring(m.parameters.Verbose,'\n%s',['depth averaging velocity...']); 13 13 %Take only the first two dofs of m.parameters.u_g 14 14 vx_g=get(inputs,'vx',1); … … 19 19 %vy_g=FieldDepthAverage(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,vy_g,'vy'); 20 20 21 inputs=add(inputs,'vx_average',vx_g,'doublevec',1,m.parameters. numberofvertices);22 inputs=add(inputs,'vy_average',vy_g,'doublevec',1,m.parameters. numberofvertices);21 inputs=add(inputs,'vx_average',vx_g,'doublevec',1,m.parameters.NumberOfVertices); 22 inputs=add(inputs,'vy_average',vy_g,'doublevec',1,m.parameters.NumberOfVertices); 23 23 24 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);24 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 25 25 results.h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 26 26 27 displaystring(m.parameters. verbose,'\n%s',['averaging over vertices']);27 displaystring(m.parameters.Verbose,'\n%s',['averaging over vertices']); 28 28 results.h_g=FieldAverageOntoVertices(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.h_g); 29 29 30 displaystring(m.parameters. verbose,'\n%s',['extrude computed thickness on all layers:']);30 displaystring(m.parameters.Verbose,'\n%s',['extrude computed thickness on all layers:']); 31 31 %results.h_g=FieldAverageOntoVertices(m.elements,m.nodes,m.loads,m.materials,m.parameters,results.h_g,'thickness'); 32 32 -
TabularUnified issm/trunk/src/m/solutions/jpl/prognostic_core.m ¶
r3485 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['depth averaging velocity...']);12 displaystring(m.parameters.Verbose,'\n%s',['depth averaging velocity...']); 13 13 %Take only the first two dofs of m.parameters.u_g 14 14 u_g=get(inputs,'velocity',[1 1 0 0]); 15 15 u_g=FieldDepthAverage(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,u_g,'velocity'); 16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters. numberofnodes);16 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters.NumberOfNodes); 17 17 18 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);18 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 19 19 results.h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 20 20 21 displaystring(m.parameters. verbose,'\n%s',['extrude computed thickness on all layers:']);21 displaystring(m.parameters.Verbose,'\n%s',['extrude computed thickness on all layers:']); 22 22 results.h_g=FieldExtrude(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.h_g,'thickness',0); 23 23 -
TabularUnified issm/trunk/src/m/solutions/jpl/slopecompute_core.m ¶
r3485 r3796 10 10 results.step=1; 11 11 12 displaystring(m.parameters. verbose,'\n%s',['call computational core:']);12 displaystring(m.parameters.Verbose,'\n%s',['call computational core:']); 13 13 results.sx_g=diagnostic_core_linear(m,inputs,analysis_type,SurfaceXAnalysisEnum()); 14 14 results.sy_g=diagnostic_core_linear(m,inputs,analysis_type,SurfaceYAnalysisEnum()); 15 15 16 displaystring(m.parameters. verbose,'\n%s',['extrude computed slope on all layers:']);16 displaystring(m.parameters.Verbose,'\n%s',['extrude computed slope on all layers:']); 17 17 results.sx_g=FieldExtrude(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.sx_g,'slopex',0); 18 18 results.sy_g=FieldExtrude(m.elements,m.nodes,m.vertices,m.loads,m.materials,m.parameters,results.sy_g,'slopey',0); -
TabularUnified issm/trunk/src/m/solutions/jpl/steadystate.m ¶
r3524 r3796 40 40 displaystring(md.verbose,'\n%s',['setup inputs...']); 41 41 inputs=inputlist; 42 inputs=add(inputs,'velocity',models.dh.parameters.u_g,'doublevec',3,models.dh.parameters. numberofnodes);43 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters. numberofnodes);44 inputs=add(inputs,'dt',models.t.parameters. dt*models.t.parameters.yts,'double');42 inputs=add(inputs,'velocity',models.dh.parameters.u_g,'doublevec',3,models.dh.parameters.NumberOfNodes); 43 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters.NumberOfNodes); 44 inputs=add(inputs,'dt',models.t.parameters.Dt*models.t.parameters.Yts,'double'); 45 45 if md.control_analysis, 46 inputs=add(inputs,'velocity_obs',models.dh.parameters.u_g_obs,'doublevec',2,models.dh.parameters. numberofnodes);47 inputs=add(inputs,'weights',models.dh.parameters. weights,'doublevec',1,models.dh.parameters.numberofnodes);46 inputs=add(inputs,'velocity_obs',models.dh.parameters.u_g_obs,'doublevec',2,models.dh.parameters.NumberOfNodes); 47 inputs=add(inputs,'weights',models.dh.parameters.Weights,'doublevec',1,models.dh.parameters.NumberOfNodes); 48 48 end 49 49 50 50 %compute solution 51 if ~models.dh.parameters. qmu_analysis,51 if ~models.dh.parameters.QmuAnalysis, 52 52 if md.control_analysis, 53 53 %change control_steady to 1 54 models.dh.parameters. control_steady=1;55 models.ds.parameters. control_steady=1;54 models.dh.parameters.ControlSteady=1; 55 models.ds.parameters.ControlSteady=1; 56 56 %launch core of control solution. 57 57 results=control_core(models,inputs); -
TabularUnified issm/trunk/src/m/solutions/jpl/steadystate_core.m ¶
r3481 r3796 16 16 17 17 %recover parameters common to all solutions 18 verbose=m_dhu.parameters. verbose;19 dim=m_dhu.parameters. dim;20 eps_rel=m_dhu.parameters. eps_rel;21 ishutter=m_dhu.parameters. ishutter;22 ismacayealpattyn=m_dh.parameters. ismacayealpattyn;23 isstokes=m_ds.parameters. isstokes;18 verbose=m_dhu.parameters.Verbose; 19 dim=m_dhu.parameters.Dim; 20 eps_rel=m_dhu.parameters.EpsRel; 21 ishutter=m_dhu.parameters.IsHutter; 22 ismacayealpattyn=m_dh.parameters.IsMacAyealPattyn; 23 isstokes=m_ds.parameters.IsStokes; 24 24 25 25 %convergence … … 40 40 %first compute temperature at steady state. 41 41 if (step>1), 42 inputs=add(inputs,'velocity',results_diagnostic.u_g,'doublevec',ndof,m_t.parameters. numberofnodes);42 inputs=add(inputs,'velocity',results_diagnostic.u_g,'doublevec',ndof,m_t.parameters.NumberOfNodes); 43 43 end 44 44 results_thermal=thermal_core(models,inputs); … … 47 47 %Compute depth averaged temperature 48 48 temperature_average=FieldDepthAverage(m_t.elements,m_t.nodes,m_t.vertices,m_t.loads,m_t.materials,m_t.parameters,results_thermal.t_g,'temperature'); 49 inputs=add(inputs,'temperature_average',temperature_average,'doublevec',1,m_t.parameters. numberofnodes);50 inputs=add(inputs,'temperature',results_thermal.t_g,'doublevec',1,m_t.parameters. numberofnodes);49 inputs=add(inputs,'temperature_average',temperature_average,'doublevec',1,m_t.parameters.NumberOfNodes); 50 inputs=add(inputs,'temperature',results_thermal.t_g,'doublevec',1,m_t.parameters.NumberOfNodes); 51 51 52 52 %now compute diagnostic velocity using the steady state temperature. -
TabularUnified issm/trunk/src/m/solutions/jpl/thermal.m ¶
r2330 r3796 23 23 displaystring(md.verbose,'\n%s',['setup inputs...']); 24 24 inputs=inputlist; 25 inputs=add(inputs,'velocity',models.t.parameters.u_g,'doublevec',3,models.t.parameters. numberofnodes);26 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters. numberofnodes);27 inputs=add(inputs,'dt',models.t.parameters. dt*models.t.parameters.yts,'double');25 inputs=add(inputs,'velocity',models.t.parameters.u_g,'doublevec',3,models.t.parameters.NumberOfNodes); 26 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters.NumberOfNodes); 27 inputs=add(inputs,'dt',models.t.parameters.Dt*models.t.parameters.Yts,'double'); 28 28 29 29 %compute solution 30 if ~models.t.parameters. qmu_analysis,30 if ~models.t.parameters.QmuAnalysis, 31 31 %launch core of diagnostic solution. 32 32 results=thermal_core(models,inputs); -
TabularUnified issm/trunk/src/m/solutions/jpl/thermal_core.m ¶
r2330 r3796 9 9 m_m=models.m; 10 10 11 if m_t.parameters. dt==0,11 if m_t.parameters.Dt==0, 12 12 13 13 results.time=0; 14 14 results.step=1; 15 15 16 displaystring(m_t.parameters. verbose,'\n%s',['computing temperatures...']);16 displaystring(m_t.parameters.Verbose,'\n%s',['computing temperatures...']); 17 17 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 18 18 19 displaystring(m_t.parameters. verbose,'\n%s',['computing melting...']);19 displaystring(m_t.parameters.Verbose,'\n%s',['computing melting...']); 20 20 inputs=add(inputs,'melting_offset',melting_offset,'double'); 21 inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters. numberofnodes);21 inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.NumberOfNodes); 22 22 results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); 23 23 … … 27 27 t_g=m_t.parameters.t_g; 28 28 m_g=m_m.parameters.m_g; 29 nsteps=m_t.parameters. ndt/m_t.parameters.dt;29 nsteps=m_t.parameters.Ndt/m_t.parameters.Dt; 30 30 31 31 %initialize temperature and melting … … 37 37 for n=1:nsteps, 38 38 39 displaystring(m_t.parameters. verbose,'\n%s%i/%i\n','time step: ',n,nsteps);39 displaystring(m_t.parameters.Verbose,'\n%s%i/%i\n','time step: ',n,nsteps); 40 40 results(n+1).step=n+1; 41 results(n+1).time=n*m_t.parameters. dt;41 results(n+1).time=n*m_t.parameters.Dt; 42 42 43 displaystring(m_t.parameters. verbose,'\n%s',[' computing temperatures...']);44 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters. numberofnodes);43 displaystring(m_t.parameters.Verbose,'\n%s',[' computing temperatures...']); 44 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters.NumberOfNodes); 45 45 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 46 46 47 displaystring(m_t.parameters. verbose,'\n%s',[' computing melting...']);48 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters. numberofnodes);47 displaystring(m_t.parameters.Verbose,'\n%s',[' computing melting...']); 48 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters.NumberOfNodes); 49 49 inputs=add(inputs,'melting_offset',melting_offset,'double'); 50 50 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); -
TabularUnified issm/trunk/src/m/solutions/jpl/thermal_core_nonlinear.m ¶
r3493 r3796 18 18 m.parameters.kflag=1; m.parameters.pflag=1; 19 19 20 displaystring(m.parameters. verbose,'\n%s',[' starting direct shooting method']);20 displaystring(m.parameters.Verbose,'\n%s',[' starting direct shooting method']); 21 21 22 22 while(~converged), … … 26 26 27 27 %system matrices 28 if ~m.parameters. lowmem28 if ~m.parameters.Lowmem 29 29 if count==1 30 displaystring(m.parameters. verbose,'%s',[' system matrices']);30 displaystring(m.parameters.Verbose,'%s',[' system matrices']); 31 31 [K_gg_nopenalty, p_g_nopenalty]=SystemMatrices(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 32 32 end 33 displaystring(m.parameters. verbose,'%s',[' penalty system matrices']);33 displaystring(m.parameters.Verbose,'%s',[' penalty system matrices']); 34 34 [K_gg , p_g, melting_offset]=PenaltySystemMatrices(K_gg_nopenalty,p_g_nopenalty,m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 35 35 else 36 displaystring(m.parameters. verbose,'%s',[' system matrices']);36 displaystring(m.parameters.Verbose,'%s',[' system matrices']); 37 37 [K_gg , p_g]=SystemMatrices(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 38 displaystring(m.parameters. verbose,'%s',[' penalty system matrices']);38 displaystring(m.parameters.Verbose,'%s',[' penalty system matrices']); 39 39 [K_gg , p_g, melting_offset]=PenaltySystemMatrices(K_gg,p_g,m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 40 40 end … … 47 47 48 48 %Solve 49 displaystring(m.parameters. verbose,'%s%g',' condition number of stiffness matrix: ',condest(K_ff));49 displaystring(m.parameters.Verbose,'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 50 50 [t_f]=Solver(K_ff,p_f,[],m.parameters); 51 51 52 52 %Merge back to g set 53 displaystring(m.parameters. verbose,'%s',[' merging solution back to g set']);53 displaystring(m.parameters.Verbose,'%s',[' merging solution back to g set']); 54 54 [t_g]= Mergesolutionfromftog( t_f, m.Gmn, m.ys, m.nodesets ); 55 55 56 56 %Update inputs in datasets 57 inputs=add(inputs,'temperature',t_g,'doublevec',m.parameters. numberofdofspernode,m.parameters.numberofnodes);58 displaystring(m.parameters. verbose,'%s',[' update inputs']);57 inputs=add(inputs,'temperature',t_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes); 58 displaystring(m.parameters.Verbose,'%s',[' update inputs']); 59 59 [m.elements,m.nodes,m.vertices, loads,m.materials,m.parameters]=UpdateFromInputs(m.elements,m.nodes,m.vertices, loads,m.materials,m.parameters,inputs); 60 60 61 61 %penalty constraints 62 displaystring(m.parameters. verbose,'%s',[' penalty constraints']);62 displaystring(m.parameters.Verbose,'%s',[' penalty constraints']); 63 63 [loads,constraints_converged,num_unstable_constraints] =PenaltyConstraints(m.elements,m.nodes,m.vertices,loads, m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 64 64 65 65 if ~converged, 66 displaystring(m.parameters. verbose,'%s%i',' #unstable constraints ',num_unstable_constraints);66 displaystring(m.parameters.Verbose,'%s%i',' #unstable constraints ',num_unstable_constraints); 67 67 68 if num_unstable_constraints<=m.parameters. min_thermal_constraints,68 if num_unstable_constraints<=m.parameters.MinThermalConstraints, 69 69 converged=1; 70 70 end -
TabularUnified issm/trunk/src/m/solutions/jpl/transient2d.m ¶
r3498 r3796 41 41 displaystring(md.verbose,'\n%s',['setup inputs...']); 42 42 inputs=inputlist; 43 inputs=add(inputs,'velocity',solution.u_g,'doublevec',2,models.p.parameters. numberofnodes);44 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters. numberofnodes);45 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters. numberofnodes);46 inputs=add(inputs,'dt',models.p.parameters. dt*models.p.parameters.yts,'double'); %change time from yrs to sec43 inputs=add(inputs,'velocity',solution.u_g,'doublevec',2,models.p.parameters.NumberOfNodes); 44 inputs=add(inputs,'melting',models.p.parameters.m_g,'doublevec',1,models.p.parameters.NumberOfNodes); 45 inputs=add(inputs,'accumulation',models.p.parameters.a_g,'doublevec',1,models.p.parameters.NumberOfNodes); 46 inputs=add(inputs,'dt',models.p.parameters.Dt*models.p.parameters.Yts,'double'); %change time from yrs to sec 47 47 48 48 % figure out number of dof: just for information purposes. … … 50 50 51 51 %first time step is given by model. 52 dt=models.p.parameters. dt;53 finaltime=models.p.parameters. ndt;52 dt=models.p.parameters.Dt; 53 finaltime=models.p.parameters.Ndt; 54 54 time=dt; 55 yts=models.p.parameters. yts;55 yts=models.p.parameters.Yts; 56 56 n=1; %counter 57 57 … … 64 64 65 65 %update inputs 66 inputs=add(inputs,'thickness',solution(n).h_g,'doublevec',1,models.p.parameters. numberofnodes);67 inputs=add(inputs,'surface',solution(n).s_g,'doublevec',1,models.p.parameters. numberofnodes);68 inputs=add(inputs,'bed',solution(n).b_g,'doublevec',1,models.p.parameters. numberofnodes);66 inputs=add(inputs,'thickness',solution(n).h_g,'doublevec',1,models.p.parameters.NumberOfNodes); 67 inputs=add(inputs,'surface',solution(n).s_g,'doublevec',1,models.p.parameters.NumberOfNodes); 68 inputs=add(inputs,'bed',solution(n).b_g,'doublevec',1,models.p.parameters.NumberOfNodes); 69 69 70 70 %Deal with velocities. … … 76 76 %compute new thickness 77 77 disp(sprintf('%s',' computing new thickness...')); 78 inputs=add(inputs,'velocity',solution(n+1).u_g,'doublevec',2,models.p.parameters. numberofnodes);78 inputs=add(inputs,'velocity',solution(n+1).u_g,'doublevec',2,models.p.parameters.NumberOfNodes); 79 79 rawresults=prognostic_core(models,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum()); 80 80 new_thickness=rawresults.h_g; -
TabularUnified issm/trunk/src/m/solutions/jpl/transient3d.m ¶
r3505 r3796 52 52 displaystring(md.verbose,'\n%s',['setup inputs...']); 53 53 inputs=inputlist; 54 inputs=add(inputs,'velocity',results.u_g,'doublevec',3,models.p.parameters. numberofnodes);55 inputs=add(inputs,'melting',results.m_g,'doublevec',1,models.p.parameters. numberofnodes);56 inputs=add(inputs,'accumulation',results.a_g,'doublevec',1,models.p.parameters. numberofnodes);57 inputs=add(inputs,'dt',models.p.parameters. dt*models.p.parameters.yts,'double');54 inputs=add(inputs,'velocity',results.u_g,'doublevec',3,models.p.parameters.NumberOfNodes); 55 inputs=add(inputs,'melting',results.m_g,'doublevec',1,models.p.parameters.NumberOfNodes); 56 inputs=add(inputs,'accumulation',results.a_g,'doublevec',1,models.p.parameters.NumberOfNodes); 57 inputs=add(inputs,'dt',models.p.parameters.Dt*models.p.parameters.Yts,'double'); 58 58 59 59 % figure out number of dof: just for information purposes. … … 61 61 62 62 %first time step is given by model. 63 dt=models.p.parameters. dt;64 finaltime=models.p.parameters. ndt;63 dt=models.p.parameters.Dt; 64 finaltime=models.p.parameters.Ndt; 65 65 time=dt; 66 yts=models.p.parameters. yts;66 yts=models.p.parameters.Yts; 67 67 n=1; %counter 68 68 … … 75 75 76 76 %update inputs 77 inputs=add(inputs,'thickness',results(n).h_g,'doublevec',1,models.p.parameters. numberofnodes);78 inputs=add(inputs,'surface',results(n).s_g,'doublevec',1,models.p.parameters. numberofnodes);79 inputs=add(inputs,'bed',results(n).b_g,'doublevec',1,models.p.parameters. numberofnodes);80 inputs=add(inputs,'velocity',results(n).u_g,'doublevec',3,models.p.parameters. numberofnodes);81 inputs=add(inputs,'pressure',results(n).p_g,'doublevec',1,models.p.parameters. numberofnodes);82 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,models.t.parameters. numberofnodes);77 inputs=add(inputs,'thickness',results(n).h_g,'doublevec',1,models.p.parameters.NumberOfNodes); 78 inputs=add(inputs,'surface',results(n).s_g,'doublevec',1,models.p.parameters.NumberOfNodes); 79 inputs=add(inputs,'bed',results(n).b_g,'doublevec',1,models.p.parameters.NumberOfNodes); 80 inputs=add(inputs,'velocity',results(n).u_g,'doublevec',3,models.p.parameters.NumberOfNodes); 81 inputs=add(inputs,'pressure',results(n).p_g,'doublevec',1,models.p.parameters.NumberOfNodes); 82 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,models.t.parameters.NumberOfNodes); 83 83 84 84 %Deal with temperature first 85 85 displaystring(md.verbose,'\n%s',[' computing temperatures...']); 86 86 [results(n+1).t_g models.t.loads melting_offset]=thermal_core_nonlinear(models.t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum()); 87 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,models.t.parameters. numberofnodes);87 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,models.t.parameters.NumberOfNodes); 88 88 89 89 displaystring(md.verbose,'\n%s',[' computing melting...']); … … 93 93 %Compute depth averaged temperature 94 94 temperature_average=FieldDepthAverage(models.t.elements,models.t.nodes,models.t.vertices,models.t.loads,models.t.materials,models.t.parameters,results(n+1).t_g,'temperature'); 95 inputs=add(inputs,'temperature_average',temperature_average,'doublevec',1,models.t.parameters. numberofnodes);95 inputs=add(inputs,'temperature_average',temperature_average,'doublevec',1,models.t.parameters.NumberOfNodes); 96 96 97 97 %Deal with velocities. … … 101 101 %compute new thickness 102 102 displaystring(md.verbose,'\n%s',[' computing new thickness...']); 103 inputs=add(inputs,'velocity',results(n+1).u_g,'doublevec',3,models.p.parameters. numberofnodes);103 inputs=add(inputs,'velocity',results(n+1).u_g,'doublevec',3,models.p.parameters.NumberOfNodes); 104 104 rawresults=prognostic_core(models,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum()); 105 105 new_thickness=rawresults.h_g;
Note:
See TracChangeset
for help on using the changeset viewer.