Changeset 85


Ignore:
Timestamp:
04/28/09 15:08:31 (16 years ago)
Author:
Eric.Larour
Message:

Reworte output routines. Shift by 1.0 was impacting the control solution. Also, better layout of results now

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

Legend:

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

    r46 r85  
    1 
    21/*
    32        OutputControl.c: output model results for control solution.
     
    109#include "../io/io.h"
    1110#include "../objects/objects.h"
    12 
     11                       
    1312void OutputControl(Vec u_g,double* p_g, double* J, int nsteps, Vec partition,char* filename,NodeSets* nodesets){
    1413
     
    2019
    2120        /* standard output: */
     21        Vec     partition_shifted=NULL;
    2222        double* serial_partition=NULL;
    2323
    24         double* serial_u_g=NULL;
     24        double* serial_ug=NULL;
    2525        int     one=1;
    2626        int     gsize;
    2727
    2828        /*serialize outputs: */
    29         VecShift(partition,1.0); //matlab indexing
    30         VecToMPISerial(&serial_partition,partition);
    31 
    32         VecToMPISerial(&serial_u_g,u_g);
     29        VecDuplicate(partition,&partition_shifted);
     30        VecCopy(partition,partition_shifted);
     31        VecShift(partition_shifted,1.0); //matlab indexing starts at 1
     32        VecToMPISerial(&serial_partition,partition_shifted);
     33       
     34        VecToMPISerial(&serial_ug,u_g);
    3335
    3436        /* Open output file to write raw binary data: */
     
    4648                /*Write partition: */
    4749                WriteDataToDisk(serial_partition,&gsize,&one,"Mat",fid);
    48                
     50       
    4951                /*Write solution to disk: */
    50                 WriteDataToDisk(serial_u_g,&gsize,&one,"Mat",fid);
     52                WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
    5153
    5254                /*Write parameter to disk: */
     
    5658                WriteDataToDisk(&nsteps,NULL,NULL,"Integer",fid);
    5759                WriteDataToDisk(J,&nsteps,&one,"Mat",fid);
    58        
     60
    5961                /*Close file: */
    6062                if(fclose(fid)!=0)throw ErrorException(__FUNCT__,exprintf("%s%s","could not close file ",filename));
    6163        }
    6264
     65        VecFree(&partition_shifted);
     66        xfree((void**)&serial_partition);
     67        xfree((void**)&serial_ug);
     68
    6369}       
  • issm/trunk/src/c/parallel/OutputDiagnostic.cpp

    r57 r85  
    2020
    2121        /* standard output: */
     22        Vec partition_shifted=NULL;
    2223        double* serial_partition=NULL;
    2324        int    analysis_size;
    2425
    25         double* serial_u_g=NULL;
     26        double* serial_ug=NULL;
    2627        int     one=1;
    2728        int     gsize;
    2829
    2930        /*serialize outputs: */
    30         VecShift(partition,1.0); //matlab indexing
    31         VecToMPISerial(&serial_partition,partition);
     31        VecDuplicate(partition,&partition_shifted);
     32        VecCopy(partition,partition_shifted);
     33        VecShift(partition_shifted,1.0); //matlab indexing starts at 1
     34        VecToMPISerial(&serial_partition,partition_shifted);
    3235
    33         VecToMPISerial(&serial_u_g,u_g);
     36        VecToMPISerial(&serial_ug,u_g);
    3437
    3538        /* Open output file to write raw binary data: */
     
    4952               
    5053                /*Write solution to disk: */
    51                 WriteDataToDisk(serial_u_g,&gsize,&one,"Mat",fid);
     54                WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
    5255       
    5356                /*Close file: */
     
    5558        }
    5659
     60        /*Free ressources: */
     61        VecFree(&partition_shifted);
     62        xfree((void**)&serial_partition);
     63        xfree((void**)&serial_ug);
    5764}       
Note: See TracChangeset for help on using the changeset viewer.