Changeset 507


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

Handle stokes output results

File:
1 edited

Legend:

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

    r472 r507  
    2020
    2121        /*intermediary: */
    22         FemModel  femmodel;
     22        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;
     28
    2329        NodeSets* nodesets=NULL;
    2430        Vec       partition=NULL;
     
    3036
    3137        double* serial_ug=NULL;
     38        double* serial_pg=NULL;
    3239        int     one=1;
    3340        int     gsize;
    3441        int     nods;
    3542
     43        /*recover fem models: */
     44        fem_dh=femmodels+0;
     45        fem_dv=femmodels+1;
     46        fem_ds=femmodels+2;
     47        fem_dhu=femmodels+3;
     48        fem_sl=femmodels+4;
     49       
     50        fem_ds->parameters->FindParam((void*)&isstokes,"isstokes");
     51
    3652        /*Recover diagnostic horiz femmodel: */
    37         femmodel=femmodels[0];
    38         partition=femmodel.partition;
    39         nodesets=femmodel.nodesets;
     53        partition=fem_dh->partition;
     54       
     55        if(isstokes){
     56                nodesets=fem_ds->nodesets;
     57        }
     58        else{
     59                nodesets=fem_dh->nodesets;
     60        }
     61
    4062
    4163        /*serialize outputs: */
     
    4769
    4870        VecToMPISerial(&serial_ug,u_g);
     71        VecToMPISerial(&serial_pg,p_g);
    4972
    5073        /* Open output file to write raw binary data: */
     
    6487                /*Write solution to disk: */
    6588                WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
    66        
     89
     90                /*Write pressure to disk, when running in stokes: */
     91                if(isstokes){
     92                        WriteDataToDisk(serial_pg,&nods,&one,"Mat",fid);
     93                }
     94
    6795                /*Close file: */
    6896                pfclose(fid,filename);
     
    73101        xfree((void**)&serial_partition);
    74102        xfree((void**)&serial_ug);
     103        xfree((void**)&serial_pg);
    75104}       
Note: See TracChangeset for help on using the changeset viewer.