Changeset 1207
- Timestamp:
- 07/01/09 17:09:41 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/control_core.m
r1205 r1207 8 8 %recover models 9 9 m_dh=models.dh; 10 m_dv=models.dv; 11 m_ds=models.ds; 12 m_sl=models.sl; 10 13 11 14 %recover parameters common to all solutions … … 22 25 options=ControlOptions(m_dh.parameters); 23 26 27 %Take car of Stokes : compute slope and get spc once for all 28 if isstokes, 29 [inputs m_ds]=ControlProcessStokes(models,inputs); 30 end 31 24 32 for n=1:m_dh.parameters.nsteps, 25 33 … … 34 42 35 43 %Update inputs in datasets 36 [m_dh.elements,m_dh.nodes,m_dh.loads,m_dh.materials]=UpdateFromInputs(m_dh.elements,m_dh.nodes,m_dh.loads,m_dh.materials,inputs); 44 if isstokes, 45 [m_ds.elements,m_ds.nodes,m_ds.loads,m_ds.materials]=UpdateFromInputs(m_ds.elements,m_ds.nodes,m_ds.loads,m_ds.materials,inputs); 46 else 47 [m_dh.elements,m_dh.nodes,m_dh.loads,m_dh.materials]=UpdateFromInputs(m_dh.elements,m_dh.nodes,m_dh.loads,m_dh.materials,inputs); 48 end 37 49 38 50 displaystring(debug,'\n%s',[' computing gradJ...']); 39 [u_g c(n).grad_g]=GradJCompute(m_dh,inputs,'diagnostic','horiz'); 40 inputs=add(inputs,'velocity',u_g,'doublevec',2,m_dh.parameters.numberofnodes); 51 if isstokes, 52 [u_g c(n).grad_g]=GradJCompute(m_ds,inputs,'diagnostic','stokes'); 53 inputs=add(inputs,'velocity',u_g,'doublevec',4,m_ds.parameters.numberofnodes); 54 else 55 [u_g c(n).grad_g]=GradJCompute(m_dh,inputs,'diagnostic','horiz'); 56 inputs=add(inputs,'velocity',u_g,'doublevec',2,m_dh.parameters.numberofnodes); 57 end 41 58 42 59 displaystring(debug,'\n%s',[' normalizing directions...']); … … 53 70 54 71 displaystring(debug,'\n%s',[' optimizing along gradient direction...']); 55 [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,m_dh,inputs,param_g,c(n).grad_g,n,'diagnostic','horiz'); 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'); 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'); 76 end 56 77 57 78 displaystring(debug,'\n%s',[' updating parameter using optimized search scalar...']); -
issm/trunk/src/m/solutions/cielo/objectivefunctionC.m
r1185 r1207 14 14 %Run diagnostic with updated parameters. 15 15 u_g=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type); 16 inputs=add(inputs,'velocity',u_g,'doublevec', 2,m.parameters.numberofnodes);16 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.numberofdofspernode,m.parameters.numberofnodes); 17 17 18 18 %Compute misfit for this velocity field.
Note:
See TracChangeset
for help on using the changeset viewer.