Changeset 98 for altifloat/src/floater.h


Ignore:
Timestamp:
06/05/13 16:00:10 (11 years ago)
Author:
jbrlod
Message:

add function run_inc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • altifloat/src/floater.h

    r86 r98  
    77YREAL vr_dy=0; 
    88 
     9 
     10 
     11//Options du run incrŽmental 
     12int nb_extiter=6; 
     13short inc_save=1; 
     14char dirsave[50]="../obs_float/"; 
     15char savename[50]="optim"; 
     16extern float Y3ddf1; 
    917//Declaration  
    1018 
     
    1523void after_it(int nit){ 
    1624         
    17         printf("u_d(9,16)=%f %f %f %f\n",YS1_u_d(9,16),YS1_u_d(10,16),YS1_u_d(10,17),YS1_u_d(9,17)); 
     25        //printf("u_d(9,16)=%f %f %f %f\n",YS1_u_d(9,16),YS1_u_d(10,16),YS1_u_d(10,17),YS1_u_d(9,17)); 
    1826        } 
    1927void forward_before(int ctrp){ 
     
    5058         
    5159//      } 
     60 
     61void run_inc(int argv, char *argc[]) { 
     62//Run the incremental optimisation 
     63//1 forward of the complete model 
     64//2 initialize du et dv to zero 
     65//3 minimize the incremental cost function 
     66//4 update u and v 
     67 
     68/* 
     69Options 
     70nb_extiter : number of extern loop (default=6) 
     71inc_save : save option 
     72        0  : no save 
     73        1 (default): save after each extern loop r_float,u and v 
     74dirsave : directory in case inc_save>0 (default="../obs_float/") 
     75savename : basename of save fils (default "optim") 
     76*/ 
     77char filesave[100]; 
     78int i; 
     79 
     80char sactiv[20]="activ"; 
     81char sMD[20]="M"; 
     82char sonly[20]="only"; 
     83char *liste[3]; 
     84liste[0]=sactiv; 
     85liste[1]=sMD; 
     86liste[2]=sonly; 
     87/*Check M1QN3 config*/ 
     88 if (YNbItRun<=0) 
     89                {        printf("runm(2): number of run iteration not seted; use set_nbiter please\n"); 
     90                         //return(0); 
     91                } 
     92        if (Y3ddf1<=0) 
     93                {       printf("runm(2): expected positive fcost decrease missed; use setm_ddf1\n"); 
     94                         //return(0); 
     95                } 
     96        if (YioInsertObsCtr<0) 
     97                   printf("runm(2): warning : oh oh, run with no obs !!! \n"); 
     98                 
     99        YTypeAdjust = ADJUST_M1QN3; //d'office avec M1QN3 
     100         
     101//Savestate config 
     102 YioModulot = OFF; //On sauvegarde tous les pas de temps 
     103    YioWrite = ON; 
     104   // Yio_savestate(cdes[1], cdes[3], 0, cdes[7]); 
     105    YioState=0 ;//Save all states 
     106    YioBin=OFF; //ascii output 
     107    YioAscii=ON; //ascii output 
     108    YioAxes=ON; //save axe numbers 
     109 
     110for (i=0;i<nb_extiter;i++) { 
     111     strcpy(liste[1],"M"); 
     112         Yactraj(3, liste); 
     113         Yset_modeltime(0); 
     114         before_it(1); 
     115         Yforward(-1, 0); 
     116          
     117         if (inc_save==1 && i>0) { 
     118          //save rfloat 
     119          YioTime=ON; 
     120          sprintf(filesave,"%sr_float_%s_%2d.dat",dirsave,savename,i+1); 
     121          Yio_savestate("r_float","i",0,filesave); 
     122         } 
     123             strcpy(liste[1],"D"); 
     124         Yactraj(3,liste); 
     125         Yset_modeltime(0); 
     126          
     127         
     128        Y3run ('0'); 
     129    update_uv(); 
     130    if (inc_save==1) { 
     131    
     132     
     133    //save u 
     134    YioTime=OFF; 
     135    sprintf(filesave,"%su%s%2d.dat",dirsave,savename,i+1); 
     136    Yio_savestate("u","ij",0,filesave); 
     137     
     138    //save v 
     139    sprintf(filesave,"%sv%s%2d.dat",dirsave,savename,i+1); 
     140    Yio_savestate("v","ij",0,filesave); 
     141     
     142    } 
     143    } 
     144    /*End of the optimization, we run another time the model to compute the final value of r_float 
     145    */ 
     146     strcpy(liste[1],"M"); 
     147    Yactraj(3, liste); 
     148         Yset_modeltime(0); 
     149         before_it(1); 
     150         Yforward(-1, 0); 
     151     
     152} 
Note: See TracChangeset for help on using the changeset viewer.