Changeset 98


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

add function run_inc

Location:
altifloat
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • altifloat/scripts/floater_d_test.i

    r86 r98  
    1616 
    1717set_modeltime 0 
    18  
    19 #uniquement activer les trajectoires de type M model 
    20 activ M only  
    21  
    22 forward 
    23  
    24 savestate r_float 0 i 0 A 3 ../obs_float/r_float_forward.dat 
    25  
    26 activ D only 
    27  
    28 #testdf 1 29 21 4 r 0.0001 0.0001 
    29  
    30  
    31  
    32  
    3318print_cost ON 
    3419 
     
    4328setm_ddf1 1.0 
    4429 
     30 
     31run_inc 
     32goto fin 
     33 
     34#uniquement activer les trajectoires de type M model 
     35activ M only  
     36 
     37forward 
     38 
     39savestate r_float 0 i 0 A 3 ../obs_float/r_float_forward.dat 
     40 
     41activ D only 
     42 
     43#testdf 1 29 21 4 r 0.0001 0.0001 
     44 
     45 
     46 
     47 
     48print_cost ON 
     49 
     50setm_impres 3 
     51setm_io 6 
     52setm_mode 0 
     53#set_nbiter 100 
     54set_nbiter 20 
     55setm_nsim 200 
     56setm_dxmin 1.0e-12 
     57setm_epsg 1.0e-12 
     58setm_ddf1 1.0 
     59 
    4560RUNM 
    4661savestate r_cout_d 0 i 0 A 3 ../obs_float/r_cout_d_optim_1.dat 
     
    208223#testing the gradients of each module  
    209224 
     225fin 
  • altifloat/src/Yworkdir/Y2floater_delta.h

    r86 r98  
    33993399         if (strcmp(argv[0], "update_uv") == 0) 
    34003400                 update_uv(); 
     3401         else if (strcmp(argv[0], "run_inc") == 0) 
     3402                 run_inc(argc, argv); 
    34013403         else codret=0; 
    34023404         return(codret); 
  • 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} 
  • altifloat/src/floater_delta.d

    r86 r98  
    113113//insert_fct arg load_aviso 
    114114insert_fct update_uv 
     115insert_fct arg run_inc 
    115116 
    116  
  • altifloat/src/locate.h

    r84 r98  
    55        int j_ll=(int)x; 
    66        int k_ll=(int)y; 
    7         if (j_ll==Yj & k_ll==Yk) 
     7        if (j_ll==Yj && k_ll==Yk) 
    88        { 
    9                 printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
     9                //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
    1010                YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk);//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
    1111                YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk); 
     
    3232        int j_ll=(int)x; 
    3333        int k_ll=(int)y; 
    34         if (j_ll==Yj & k_ll==Yk) 
     34        if (j_ll==Yj && k_ll==Yk) 
    3535        { 
    3636                YG1_u(Yj,Yk)+=YG1_uinter(Yi,YTemps); 
  • altifloat/src/locate_d.h

    r84 r98  
    55        int j_ll=YS1_xinter(Yi,YTemps); 
    66        int k_ll=YS5_xinter(Yi,YTemps); 
    7         if (j_ll==Yj & k_ll==Yk) 
     7        if (j_ll==Yj && k_ll==Yk) 
    88        { 
    99                //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
     
    2525        int j_ll=YS1_xinter(Yi,YTemps); 
    2626        int k_ll=YS5_xinter(Yi,YTemps); 
    27         if (j_ll==Yj & k_ll==Yk) 
     27        if (j_ll==Yj && k_ll==Yk) 
    2828        { 
    2929                YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps); 
  • altifloat/src/r_cout_d.h

    r86 r98  
    22{ 
    33        YS1=xd+YS1_r_float(Yi,YTemps); 
    4         printf("xd=%f x=%f\n",xd,YS1_r_float(Yi,YTemps)); 
     4        //printf("xd=%f x=%f\n",xd,YS1_r_float(Yi,YTemps)); 
    55        YS2=yd+YS2_r_float(Yi,YTemps); 
    66 
  • altifloat/src/ur.h

    r84 r98  
    77        vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1); 
    88        vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1); 
    9         printf("u1=%f ; u2=%f\n",u1,u2); 
     9        //printf("u1=%f ; u2=%f\n",u1,u2); 
    1010} 
    1111 
Note: See TracChangeset for help on using the changeset viewer.