Changeset 2219


Ignore:
Timestamp:
09/11/09 15:13:19 (16 years ago)
Author:
Eric.Larour
Message:

Simplified steady state control.

Location:
issm/trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/parallel/control_core.cpp

    r2211 r2219  
    2222        DataSet* diagnostic_results=NULL;
    2323        DataSet* gradjcompute_results=NULL;
     24        DataSet* steadystate_results=NULL;
    2425        Vec     u_g=NULL;
    2526        double  search_scalar;
     
    4849        int analysis_type;
    4950        int sub_analysis_type;
     51        int     control_steady;
    5052        int debug=0;
    5153        int convergence=0;
     
    7173        model->FindParam(&sub_analysis_type,"sub_analysis_type");
    7274        model->FindParam(&numberofnodes,"numberofnodes");
     75        model->FindParam(&control_steady,"control_steady");
    7376        gsize=fem_model->nodes->NumberOfDofs();
    7477
     
    121124                ControlConstrainx(param_g,numberofnodes,mincontrolconstraint,maxcontrolconstraint,control_type);
    122125                _printf_("%s\n","      done.");
     126
     127                /*In case we are running a steady state control method, compute new temperature field using new parameter
     128                 * distribution: */
     129                steadystate_results=new DataSet(ResultsEnum());
     130                steadystate_core(steadystate_results,model,inputs);
     131                VecFree(&t_g); steadystate_results->FindResult(&t_g,"t_g");
     132                delete results_steadystate;
     133                inputs->Add("temperature",t_g,1,numberofnodes);
    123134
    124135                _printf_("%s%i%s%g\n","      value of misfit J after optimization #",n+1,": ",J[n]);
  • issm/trunk/src/m/solutions/cielo/control_core.m

    r2211 r2219  
    7575        param_g=ControlConstrain(param_g,model.parameters);
    7676
     77        %In case we are running a steady state control method, compute new temperature field using new parameter distribution:
     78        if model.parameters.control_steady;
     79                steadystate_results=steadystate_core(models,inputs); t_g=results.t_g;
     80                inputs=add(inputs,'temperature',t_g,'doublevec',1,,model.parameters.numberofnodes);
     81        end
     82
    7783        disp(['      value of misfit J after optimization #' num2str(n) ':' num2str(c(n).J)]);
    7884
Note: See TracChangeset for help on using the changeset viewer.