Changeset 1647
- Timestamp:
- 08/11/09 15:12:36 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/control.m
r1184 r1647 10 10 11 11 %Build all models requested for control simulation 12 models.analysis_type= 'control'; %needed for processresults12 models.analysis_type=ControlAnalysisEnum(); %needed for processresults 13 13 14 14 displaystring(md.debug,'%s',['reading control horiz model data']); 15 md.analysis_type= 'control'; md.sub_analysis_type='horiz'; models.dh=CreateFemModel(md);15 md.analysis_type=ControlAnalysisEnum(); md.sub_analysis_type=HorizAnalysisEnum(); models.dh=CreateFemModel(md); 16 16 17 17 displaystring(md.debug,'\n%s',['reading control vert model data']); 18 md.analysis_type= 'control'; md.sub_analysis_type='vert'; models.dv=CreateFemModel(md);18 md.analysis_type=ControlAnalysisEnum(); md.sub_analysis_type=VertAnalysisEnum(); models.dv=CreateFemModel(md); 19 19 20 20 displaystring(md.debug,'\n%s',['reading control stokes model data']); 21 md.analysis_type= 'control'; md.sub_analysis_type='stokes'; models.ds=CreateFemModel(md);21 md.analysis_type=ControlAnalysisEnum(); md.sub_analysis_type=StokesAnalysisEnum(); models.ds=CreateFemModel(md); 22 22 23 23 displaystring(md.debug,'\n%s',['reading control hutter model data']); 24 md.analysis_type= 'control'; md.sub_analysis_type='hutter'; models.dhu=CreateFemModel(md);24 md.analysis_type=ControlAnalysisEnum(); md.sub_analysis_type=HutterAnalysisEnum(); models.dhu=CreateFemModel(md); 25 25 26 26 displaystring(md.debug,'\n%s',['reading surface and bed slope computation model data']); 27 md.analysis_type= 'slope_compute'; md.sub_analysis_type=''; models.sl=CreateFemModel(md);27 md.analysis_type=SlopeComputeAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.sl=CreateFemModel(md); 28 28 29 29 % figure out number of dof: just for information purposes. -
issm/trunk/src/m/solutions/cielo/control_core.m
r1225 r1647 50 50 displaystring(debug,'\n%s',[' computing gradJ...']); 51 51 if isstokes, 52 [u_g c(n).grad_g]=GradJCompute(m_ds,inputs, 'diagnostic','stokes');52 [u_g c(n).grad_g]=GradJCompute(m_ds,inputs,DiagnosticAnalysisEnum(),StokesAnalysisEnum()); 53 53 inputs=add(inputs,'velocity',u_g,'doublevec',4,m_ds.parameters.numberofnodes); 54 54 else 55 [u_g c(n).grad_g]=GradJCompute(m_dh,inputs, 'diagnostic','horiz');55 [u_g c(n).grad_g]=GradJCompute(m_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 56 56 inputs=add(inputs,'velocity',u_g,'doublevec',2,m_dh.parameters.numberofnodes); 57 57 end … … 71 71 displaystring(debug,'\n%s',[' optimizing along gradient direction...']); 72 72 if isstokes, 73 [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,m_ds,inputs,param_g,c(n).grad_g,n, 'diagnostic','stokes');73 [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,m_ds,inputs,param_g,c(n).grad_g,n,DiagnosticAnalysisEnum(),StokesAnalysisEnum()); 74 74 else 75 [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,m_dh,inputs,param_g,c(n).grad_g,n, 'diagnostic','horiz');75 [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,m_dh,inputs,param_g,c(n).grad_g,n,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 76 76 end 77 77 -
issm/trunk/src/m/solutions/cielo/diagnostic.m
r1629 r1647 10 10 11 11 %Build all models requested for diagnostic simulation 12 models.analysis_type= 'diagnostic'; %needed for processresults12 models.analysis_type=DiagnosticAnalysisEnum; %needed for processresults 13 13 14 14 displaystring(md.debug,'%s',['reading diagnostic horiz model data']); 15 md.analysis_type= 'diagnostic'; md.sub_analysis_type='horiz'; models.dh=CreateFemModel(md);15 md.analysis_type=DiagnosticAnalysisEnum; md.sub_analysis_type=HorizAnalysisEnum; models.dh=CreateFemModel(md); 16 16 17 17 displaystring(md.debug,'\n%s',['reading diagnostic vert model data']); 18 md.analysis_type= 'diagnostic'; md.sub_analysis_type='vert'; models.dv=CreateFemModel(md);18 md.analysis_type=DiagnosticAnalysisEnum; md.sub_analysis_type=VertAnalysisEnum; models.dv=CreateFemModel(md); 19 19 20 20 displaystring(md.debug,'\n%s',['reading diagnostic stokes model data']); 21 md.analysis_type= 'diagnostic'; md.sub_analysis_type='stokes'; models.ds=CreateFemModel(md);21 md.analysis_type=DiagnosticAnalysisEnum; md.sub_analysis_type=StokesAnalysisEnum; models.ds=CreateFemModel(md); 22 22 23 23 displaystring(md.debug,'\n%s',['reading diagnostic hutter model data']); 24 md.analysis_type= 'diagnostic'; md.sub_analysis_type='hutter'; models.dhu=CreateFemModel(md);24 md.analysis_type=DiagnosticAnalysisEnum; md.sub_analysis_type=HutterAnalysisEnum; models.dhu=CreateFemModel(md); 25 25 26 26 displaystring(md.debug,'\n%s',['reading surface and bed slope computation model data']); 27 md.analysis_type= 'slope_compute'; md.sub_analysis_type=''; models.sl=CreateFemModel(md);27 md.analysis_type=SlopeComputeAnalysisEnum; md.sub_analysis_type=NoneAnalysisEnum; models.sl=CreateFemModel(md); 28 28 29 29 % figure out number of dof: just for information purposes. -
issm/trunk/src/m/solutions/cielo/diagnostic_core.m
r1042 r1647 53 53 54 54 displaystring(debug,'\n%s',['computing horizontal velocities...']); 55 u_g=diagnostic_core_nonlinear(m_dh,inputs, 'diagnostic','horiz');55 u_g=diagnostic_core_nonlinear(m_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 56 56 57 57 displaystring(debug,'\n%s',['computing pressure according to MacAyeal...']); … … 66 66 displaystring(debug,'\n%s',['computing vertical velocities...']); 67 67 inputs=add(inputs,'velocity',u_g_horiz,'doublevec',m_dh.parameters.numberofdofspernode,m_dh.parameters.numberofnodes); 68 u_g_vert=diagnostic_core_linear(m_dv,inputs, 'diagnostic','vert');68 u_g_vert=diagnostic_core_linear(m_dv,inputs,DiagnosticAnalysisEnum(),VertAnalysisEnum()); 69 69 70 70 displaystring(debug,'\n%s',['combining horizontal and vertical velocities...']); … … 103 103 104 104 displaystring(debug,'\n%s',['computing stokes velocities and pressure ...']); 105 u_g=diagnostic_core_nonlinear(m_ds,inputs, 'diagnostic','stokes');105 u_g=diagnostic_core_nonlinear(m_ds,inputs,DiagnosticAnalysisEnum(),StokesAnalysisEnum()); 106 106 107 107 %"decondition" pressure -
issm/trunk/src/m/solutions/cielo/processresults.m
r1046 r1647 15 15 16 16 %recover models first 17 if ( strcmpi(analysis_type,'diagnostic') | strcmpi(analysis_type,'transient')),17 if (analysis_type==DiagnosticAnalysisEnum | analysis_type==TransientAnalysisEnum), 18 18 m_dh=models.dh; 19 19 m_ds=models.ds; … … 26 26 isstokes=m_ds.parameters.isstokes; 27 27 end 28 if strcmpi(analysis_type,'control'),28 if (analysis_type==ControlAnalysisEnum()), 29 29 m_dh=models.dh; 30 30 … … 35 35 isstokes=m_dh.parameters.isstokes; 36 36 end 37 if ( strcmpi(analysis_type,'thermal') | strcmpi(analysis_type,'transient')),37 if (analysis_type==ThermalAnalysisEnum() | analysis_type==TransientAnalysisEnum()), 38 38 m_m=models.m; 39 39 end -
issm/trunk/src/m/solutions/cielo/prognostic.m
r972 r1647 9 9 10 10 %Build all models requested for diagnostic simulation 11 models.analysis_type= 'prognostic'; %needed for processresults11 models.analysis_type=PrognosticAnalysisEnum; %needed for processresults 12 12 13 13 displaystring(md.debug,'%s',['reading prognostic model data']); 14 md.analysis_type= 'prognostic'; models.p=CreateFemModel(md);14 md.analysis_type=PrognosticAnalysisEnum; models.p=CreateFemModel(md); 15 15 16 16 % figure out number of dof: just for information purposes. … … 27 27 28 28 displaystring(md.debug,'\n%s',['call computational core:']); 29 results=prognostic_core(models,inputs, 'prognostic','');29 results=prognostic_core(models,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum()); 30 30 31 31 displaystring(md.debug,'\n%s',['load results...']); -
issm/trunk/src/m/solutions/cielo/thermal.m
r972 r1647 8 8 t1=clock; 9 9 10 models.analysis_type= 'thermal'; %needed for processresults10 models.analysis_type=ThermalAnalysisEnum(); %needed for processresults 11 11 12 12 %Build all models requested for diagnostic simulation 13 13 displaystring(md.debug,'%s',['reading thermal model data']); 14 md.analysis_type= 'thermal'; models.t=CreateFemModel(md);14 md.analysis_type=ThermalAnalysisEnum(); models.t=CreateFemModel(md); 15 15 16 16 displaystring(md.debug,'%s',['reading melting model data']); 17 md.analysis_type= 'melting'; models.m=CreateFemModel(md);17 md.analysis_type=MeltingAnalysisEnum(); models.m=CreateFemModel(md); 18 18 19 19 % figure out number of dof: just for information purposes. -
issm/trunk/src/m/solutions/cielo/thermal_core.m
r1299 r1647 15 15 16 16 displaystring(m_t.parameters.debug,'\n%s',['computing temperatures...']); 17 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs, 'thermal','steady');17 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),SteadyAnalysisEnum()); 18 18 19 19 displaystring(m_t.parameters.debug,'\n%s',['computing melting...']); 20 20 inputs=add(inputs,'melting_offset',melting_offset,'double'); 21 21 inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.numberofnodes); 22 results.m_g=diagnostic_core_linear(m_m,inputs, 'melting','steady');22 results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),SteadyAnalysisEnum()); 23 23 24 24 else … … 43 43 displaystring(m_t.parameters.debug,'\n%s',[' computing temperatures...']); 44 44 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters.numberofnodes); 45 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs, 'thermal','transient');45 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum()); 46 46 47 47 displaystring(m_t.parameters.debug,'\n%s',[' computing melting...']); 48 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 results(n+1).m_g=diagnostic_core_linear(m_m,inputs, 'melting','transient');50 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),TransientAnalysisEnum()); 51 51 52 52 end -
issm/trunk/src/m/solutions/cielo/transient2d.m
r971 r1647 11 11 12 12 displaystring(md.debug,'%s',['reading diagnostic horiz model data']); 13 md.analysis_type= 'diagnostic'; md.sub_analysis_type='horiz'; models.dh=CreateFemModel(md);13 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=HorizAnalysisEnum(); models.dh=CreateFemModel(md); 14 14 15 15 displaystring(md.debug,'\n%s',['reading diagnostic vert model data']); 16 md.analysis_type= 'diagnostic'; md.sub_analysis_type='vert'; models.dv=CreateFemModel(md);16 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=VertAnalysisEnum(); models.dv=CreateFemModel(md); 17 17 18 18 displaystring(md.debug,'\n%s',['reading diagnostic stokes model data']); 19 md.analysis_type= 'diagnostic'; md.sub_analysis_type='stokes'; models.ds=CreateFemModel(md);19 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=StokesAnalysisEnum(); models.ds=CreateFemModel(md); 20 20 21 21 displaystring(md.debug,'\n%s',['reading diagnostic hutter model data']); 22 md.analysis_type= 'diagnostic'; md.sub_analysis_type='hutter'; models.dhu=CreateFemModel(md);22 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=HutterAnalysisEnum(); models.dhu=CreateFemModel(md); 23 23 24 24 displaystring(md.debug,'\n%s',['reading surface and bed slope computation model data']); 25 md.analysis_type= 'slope_compute'; md.sub_analysis_type=''; models.sl=CreateFemModel(md);25 md.analysis_type=SlopeComputeAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.sl=CreateFemModel(md); 26 26 27 27 displaystring(md.debug,'%s',['reading prognostic model data']); 28 md.analysis_type= 'prognostic'; models.p=CreateFemModel(md);28 md.analysis_type=PrognosticAnalysisEnum(); models.p=CreateFemModel(md); 29 29 30 30 %initialize solution … … 77 77 disp(sprintf('%s',' computing new thickness...')); 78 78 inputs=add(inputs,'velocity',solution(n+1).u_g,'doublevec',2,models.p.parameters.numberofnodes); 79 rawresults=prognostic_core(models,inputs, 'prognostic','');79 rawresults=prognostic_core(models,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum()); 80 80 new_thickness=rawresults.h_g; 81 81 -
issm/trunk/src/m/solutions/cielo/transient3d.m
r987 r1647 8 8 9 9 %Build all models related to diagnostic 10 models.analysis_type= 'transient'; %needed for processresults10 models.analysis_type=TransientAnalysisEnum(); %needed for processresults 11 11 12 12 displaystring(md.debug,'%s',['reading diagnostic horiz model data']); 13 md.analysis_type= 'diagnostic'; md.sub_analysis_type='horiz'; models.dh=CreateFemModel(md);13 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=HorizAnalysisEnum(); models.dh=CreateFemModel(md); 14 14 15 15 displaystring(md.debug,'\n%s',['reading diagnostic vert model data']); 16 md.analysis_type= 'diagnostic'; md.sub_analysis_type='vert'; models.dv=CreateFemModel(md);16 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=VertAnalysisEnum(); models.dv=CreateFemModel(md); 17 17 18 18 displaystring(md.debug,'\n%s',['reading diagnostic stokes model data']); 19 md.analysis_type= 'diagnostic'; md.sub_analysis_type='stokes'; models.ds=CreateFemModel(md);19 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=StokesAnalysisEnum(); models.ds=CreateFemModel(md); 20 20 21 21 displaystring(md.debug,'\n%s',['reading diagnostic hutter model data']); 22 md.analysis_type= 'diagnostic'; md.sub_analysis_type='hutter'; models.dhu=CreateFemModel(md);22 md.analysis_type=DiagnosticAnalysisEnum(); md.sub_analysis_type=HutterAnalysisEnum(); models.dhu=CreateFemModel(md); 23 23 24 24 displaystring(md.debug,'\n%s',['reading surface and bed slope computation model data']); 25 md.analysis_type= 'slope_compute'; md.sub_analysis_type=''; models.sl=CreateFemModel(md);25 md.analysis_type=SlopeComputeAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.sl=CreateFemModel(md); 26 26 27 27 displaystring(md.debug,'%s',['reading prognostic model data']); 28 md.analysis_type= 'prognostic'; models.p=CreateFemModel(md);28 md.analysis_type=PrognosticAnalysisEnum(); models.p=CreateFemModel(md); 29 29 30 30 %Build all models related to thermal 31 31 displaystring(md.debug,'%s',['reading thermal model data']); 32 md.analysis_type= 'thermal'; models.t=CreateFemModel(md);32 md.analysis_type=ThermalAnalysisEnum(); models.t=CreateFemModel(md); 33 33 34 34 displaystring(md.debug,'%s',['reading melting model data']); 35 md.analysis_type= 'melting'; models.m=CreateFemModel(md);35 md.analysis_type=MeltingAnalysisEnum(); models.m=CreateFemModel(md); 36 36 37 37 … … 85 85 %Deal with temperature first 86 86 displaystring(md.debug,'\n%s',[' computing temperatures...']); 87 [results(n+1).t_g models.t.loads melting_offset]=thermal_core_nonlinear(models.t,inputs, 'thermal','transient');87 [results(n+1).t_g models.t.loads melting_offset]=thermal_core_nonlinear(models.t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum()); 88 88 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,models.t.parameters.numberofnodes); 89 89 90 90 displaystring(md.debug,'\n%s',[' computing melting...']); 91 91 inputs=add(inputs,'melting_offset',melting_offset,'double'); 92 results(n+1).m_g=diagnostic_core_linear(models.m,inputs, 'melting','transient');92 results(n+1).m_g=diagnostic_core_linear(models.m,inputs,MeltingAnalysisEnum(),TransientAnalysisEnum()); 93 93 94 94 %Compute depth averaged temperature … … 103 103 displaystring(md.debug,'\n%s',[' computing new thickness...']); 104 104 inputs=add(inputs,'velocity',results(n+1).u_g,'doublevec',3,models.p.parameters.numberofnodes); 105 rawresults=prognostic_core(models,inputs, 'prognostic','');105 rawresults=prognostic_core(models,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum()); 106 106 new_thickness=rawresults.h_g; 107 107
Note:
See TracChangeset
for help on using the changeset viewer.