Changeset 1850


Ignore:
Timestamp:
08/24/09 18:05:31 (16 years ago)
Author:
Eric.Larour
Message:

Brachning back from issm.controlstatic, by hand

Location:
issm/trunk/src/m/solutions/cielo
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/cielo/control.m

    r1647 r1850  
    2727        md.analysis_type=SlopeComputeAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.sl=CreateFemModel(md);
    2828
     29        displaystring(md.debug,'\n%s',['reading thermal model data']);
     30        md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.t=CreateFemModel(md);
     31
     32        displaystring(md.debug,'\n%s',['reading melting model data']);
     33        md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.m=CreateFemModel(md);
     34
     35
    2936        % figure out number of dof: just for information purposes.
    3037        md.dof=modelsize(models);
     
    3441        inputs=add(inputs,'velocity',models.dh.parameters.u_g,'doublevec',3,models.dh.parameters.numberofnodes);
    3542        inputs=add(inputs,'velocity_obs',models.dh.parameters.u_g_obs,'doublevec',2,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');
    3645
    3746        %compute solution
  • issm/trunk/src/m/solutions/cielo/objectivefunctionC.m

    r1207 r1850  
    1 function J =objectivefunctionC(search_scalar,m,inputs,p_g,grad_g,n,analysis_type,sub_analysis_type);
    2        
     1function J =objectivefunctionC(search_scalar,models,inputs,p_g,grad_g,n,analysis_type,sub_analysis_type);
     2
     3%recover active model.
     4m=models.active;
     5
    36%recover some parameters
    47optscal=m.parameters.optscal(n);
    58fit=m.parameters.fit(n);
    69control_type=m.parameters.control_type;
     10thermalstatic=m.parameters.thermalstatic;
    711
    812%Update along gradient using scalar supplied by fmincon optimization routine
     
    1317
    1418%Run diagnostic with updated parameters.
    15 u_g=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type);
     19if ~thermalstatic,
     20        %do a simple diagnostic, with the current temperature profile, do not look for steady state.
     21        u_g=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type);
     22else
     23        %do a full thermal mechanical steady state converged computation, much slower!
     24        results=thermalstatic_core(models,inputs); u_g=results.u_g;
     25
     26        %u_g ships with 3 or 4 dofs, we only want the horizontal ones!
     27        if ~models.dh.parameters.isstokes,
     28                u_g=u_g(dofsetgen([1,2],3,m.parameters.numberofnodes*3));
     29        end
     30end
     31
     32%add velocity to inputs.
    1633inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.numberofdofspernode,m.parameters.numberofnodes);
    1734
  • issm/trunk/src/m/solutions/cielo/thermalstatic_core.m

    r1805 r1850  
    1616
    1717%recover parameters common to all solutions
    18 debug=m_dhu.parameters.debug;debug=1;
     18debug=m_dhu.parameters.debug;
    1919dim=m_dhu.parameters.dim;
    2020eps_rel=m_dhu.parameters.eps_rel;
     
    4040        %first compute temperature at steady state.
    4141        if (step>1),
    42                 inputs=add(inputs,'velocity',results.u_g,'doublevec',ndof,m_t.parameters.numberofnodes);
     42                inputs=add(inputs,'velocity',results_diagnostic.u_g,'doublevec',ndof,m_t.parameters.numberofnodes);
    4343        end
    4444        results_thermal=thermal_core(models,inputs);
Note: See TracChangeset for help on using the changeset viewer.