Changeset 1265


Ignore:
Timestamp:
07/08/09 16:55:21 (16 years ago)
Author:
Mathieu Morlighem
Message:

Added temporary results for control methods

Location:
issm/trunk/src/c
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r1209 r1265  
    575575                                        ./parallel/control_core.cpp\
    576576                                        ./parallel/ControlPrepareStokes.cpp\
     577                                        ./parallel/ControlTemporaryResults.cpp\
    577578                                        ./parallel/objectivefunctionC.cpp\
    578579                                        ./parallel/GradJCompute.cpp\
  • issm/trunk/src/c/parallel/control.cpp

    r1184 r1265  
    3838        double* u_g_obs=NULL;
    3939        Param*  param=NULL;
     40        int      count;
    4041
    4142        MODULEBOOT();
     
    9091        results=new DataSet(ResultsEnum());
    9192
     93        //Add output file name to parameters of femmodels[0]
     94        count=femmodels[0].parameters->Size()+1;
     95        param= new Param(count,"outputfilename",STRING);
     96        param->SetString(outputfilename);
     97        femmodels[0].parameters->AddObject(param);
     98
    9299        /*are we running the solution sequence, or a qmu wrapper around it? : */
    93100        femmodels[0].parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
  • issm/trunk/src/c/parallel/control_core.cpp

    r1212 r1265  
    141141                _printf_("%s\n","      done.");
    142142
    143                 _printf_("%s%i%s%g\n","      value of misfit J after optimization #",n,": ",J[n]);
     143                _printf_("%s%i%s%g\n","      value of misfit J after optimization #",n+1,": ",J[n]);
    144144
    145145                /*some freeing:*/
    146146                xfree((void**)&grad_g_double);
     147
     148                //some temporary saving
     149                if (((n+1)%5)==0){
     150                        _printf_("%s\n","      saving temporary results...");
     151                        ControlTemporaryResults(fems,param_g,J,n,inputs);
     152                        _printf_("%s\n","      done.");
     153                }
    147154        }
    148155
  • issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp

    r1224 r1265  
    134134                VecDuplicate(old_ug,&dug);VecCopy(old_ug,dug); VecAYPX(dug,-1.0,ug);
    135135                VecNorm(dug,NORM_2,&ndu);VecNorm(old_ug,NORM_2,&nu);VecNorm(dug,NORM_INFINITY,&nduinf); VecFree(&dug);
     136                if (isnan(ndu) || isnan(nu)) throw ErrorException(__FUNCT__,exprintf("convergence criterion is NaN! "));
    136137
    137138                //residue
  • issm/trunk/src/c/parallel/parallel.h

    r1209 r1265  
    4141
    4242void ControlPrepareStokes(FemModel* fems, ParameterInputs* inputs);
     43void ControlTemporaryResults(FemModel* fems,double* param_g,double* J,int n,ParameterInputs* inputs);
    4344
    4445void CreateFemModel(FemModel* femmodel,ConstDataHandle MODEL,char* analysis_type,char* sub_analysis_type);
Note: See TracChangeset for help on using the changeset viewer.