Changeset 508


Ignore:
Timestamp:
05/19/09 16:19:28 (16 years ago)
Author:
Eric.Larour
Message:

new output logic

Location:
issm/trunk/src/c/parallel
Files:
3 edited

Legend:

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

    r472 r508  
    2424        double* serial_ug=NULL;
    2525        int     one=1;
    26         int     gsize;
     26        int     u_g_size;
    2727        int     nods;
    2828
     
    3131        VecCopy(partition,partition_shifted);
    3232        VecShift(partition_shifted,1.0); //matlab indexing starts at 1
     33
    3334        VecToMPISerial(&serial_partition,partition_shifted);
    3435        VecGetSize(partition,&nods);
     36
     37        VecToMPISerial(&serial_ug,u_g);
     38        VecGetSize(u_g,&u_g_size);
    3539       
    36         VecToMPISerial(&serial_ug,u_g);
    37 
    3840        /* Open output file to write raw binary data: */
    3941        if(my_rank==0){
     
    4345                WriteDataToDisk((void*)"control",NULL,NULL,"String",fid);
    4446
    45                 /*Write gsize: */
    46                 gsize=nodesets->GetGSize();
    47                 WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
    48 
    4947                /*Write partition: */
    5048                WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
    5149       
    5250                /*Write solution to disk: */
    53                 WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
     51                WriteDataToDisk(serial_ug,&u_g_size,&one,"Mat",fid);
    5452
    5553                /*Write parameter to disk: */
    56                 WriteDataToDisk(p_g,&gsize,&one,"Mat",fid);
     54                WriteDataToDisk(p_g,&u_g_size,&one,"Mat",fid);
    5755
    5856                /*Write J to disk: */
  • issm/trunk/src/c/parallel/OutputDiagnostic.cpp

    r507 r508  
    2121        /*intermediary: */
    2222        FemModel* fem_dh=NULL;
    23         FemModel* fem_dv=NULL;
    24         FemModel* fem_dhu=NULL;
    25         FemModel* fem_ds=NULL;
    26         FemModel* fem_sl=NULL;
    27         int isstokes;
    2823
    2924        NodeSets* nodesets=NULL;
     
    3429        Vec partition_shifted=NULL;
    3530        double* serial_partition=NULL;
    36 
    3731        double* serial_ug=NULL;
    3832        double* serial_pg=NULL;
     33        int     u_g_size;
     34        int     p_g_size;
    3935        int     one=1;
    40         int     gsize;
    4136        int     nods;
    4237
    4338        /*recover fem models: */
    4439        fem_dh=femmodels+0;
    45         fem_dv=femmodels+1;
    46         fem_ds=femmodels+2;
    47         fem_dhu=femmodels+3;
    48         fem_sl=femmodels+4;
    4940       
    50         fem_ds->parameters->FindParam((void*)&isstokes,"isstokes");
    51 
    5241        /*Recover diagnostic horiz femmodel: */
    5342        partition=fem_dh->partition;
    5443       
    55         if(isstokes){
    56                 nodesets=fem_ds->nodesets;
    57         }
    58         else{
    59                 nodesets=fem_dh->nodesets;
    60         }
    61 
    62 
    6344        /*serialize outputs: */
    6445        VecDuplicate(partition,&partition_shifted);
    6546        VecCopy(partition,partition_shifted);
    6647        VecShift(partition_shifted,1.0); //matlab indexing starts at 1
     48
    6749        VecToMPISerial(&serial_partition,partition_shifted);
    6850        VecGetSize(partition,&nods);
    6951
    7052        VecToMPISerial(&serial_ug,u_g);
     53        VecGetSize(u_g,&u_g_size);
     54       
    7155        VecToMPISerial(&serial_pg,p_g);
     56        VecGetSize(p_g,&p_g_size);
    7257
    7358        /* Open output file to write raw binary data: */
     
    7863                WriteDataToDisk(analysis_type,NULL,NULL,"String",fid);
    7964
    80                 /*Write uset.gsize: */
    81                 gsize=nodesets->GetGSize();
    82                 WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
    83 
    8465                /*Write partition: */
    8566                WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
    8667               
    8768                /*Write solution to disk: */
    88                 WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
    89 
    90                 /*Write pressure to disk, when running in stokes: */
    91                 if(isstokes){
    92                         WriteDataToDisk(serial_pg,&nods,&one,"Mat",fid);
    93                 }
     69                WriteDataToDisk(serial_ug,&u_g_size,&one,"Mat",fid);
     70                WriteDataToDisk(serial_pg,&p_g_size,&one,"Mat",fid);
    9471
    9572                /*Close file: */
  • issm/trunk/src/c/parallel/OutputThermal.cpp

    r472 r508  
    2121
    2222        /*intermediary: */
    23         FemModel  femmodel;
     23        FemModel*  fem=NULL;
    2424        NodeSets* nodesets=NULL;
    2525        Vec       partition=NULL;
     
    3131
    3232        double* serial_tg=NULL;
     33        int     t_g_size;
    3334        double* serial_mg=NULL;
    3435
     
    3839       
    3940        int     one=1;
    40         int     gsize;
    4141        int     nods;
    4242
    4343        /*Recover thermal horiz femmodel: */
    44         femmodel=femmodels[0];
    45         partition=femmodel.partition;
    46         nodesets=femmodel.nodesets;
     44        fem=femmodels+0;
     45       
     46        partition=fem->partition;
     47        nodesets=fem->nodesets;
    4748
    48         femmodels[0].parameters->FindParam((void*)&dt,"dt");
    49         femmodels[0].parameters->FindParam((void*)&ndt,"ndt");
    50         femmodels[0].parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type");
     49        fem->parameters->FindParam((void*)&dt,"dt");
     50        fem->parameters->FindParam((void*)&ndt,"ndt");
     51        fem->parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type");
    5152
    5253        /*serialize outputs: */
     
    5455        VecCopy(partition,partition_shifted);
    5556        VecShift(partition_shifted,1.0); //matlab indexing starts at 1
     57       
    5658        VecToMPISerial(&serial_partition,partition_shifted);
    5759        VecGetSize(partition,&nods);
     
    7173                WriteDataToDisk(analysis_type,NULL,NULL,"String",fid);
    7274
    73                 /*Write uset.gsize: */
    74                 gsize=nodesets->GetGSize();
    75                 WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
    76 
    7775                /*Write partition: */
    7876                WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
     
    8987                        VecToMPISerial(&serial_mg,m_g[i]);
    9088
    91                         WriteDataToDisk(serial_tg,&gsize,&one,"Mat",fid);
    92                         WriteDataToDisk(serial_mg,&gsize,&one,"Mat",fid);
     89                        WriteDataToDisk(serial_tg,&nods,&one,"Mat",fid);
     90                        WriteDataToDisk(serial_mg,&nods,&one,"Mat",fid);
    9391                }
    9492       
Note: See TracChangeset for help on using the changeset viewer.