Changeset 669


Ignore:
Timestamp:
06/01/09 11:32:42 (16 years ago)
Author:
Eric.Larour
Message:

Process result for control methods

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

Legend:

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

    r668 r669  
    3232        results->AddObject(result);
    3333
    34         result=new Result(results->Size()+1,0,1,"p_g",p_g,numberofnodes);
     34        result=new Result(results->Size()+1,0,1,"param_g",p_g,numberofnodes);
    3535        results->AddObject(result);
    3636
  • issm/trunk/src/c/parallel/ProcessResults.cpp

    r667 r669  
    5757        double* p_g_serial=NULL;
    5858        double* pressure=NULL;
     59        double* parameter=NULL;
    5960        double* partition=NULL;
    6061        double  yts;
     
    216217                        xfree((void**)&partition);
    217218                }
     219                else if(strcmp(result->GetFieldName(),"param_g")==0){
     220                        /*easy, param_g is of size numberofnodes, on 1 dof, just repartition: */
     221                        result->GetField(&p_g);
     222                        VecToMPISerial(&p_g_serial,p_g);
     223                        fem_p->parameters->FindParam((void*)&numberofnodes,"numberofnodes");
     224                        VecToMPISerial(&partition,fem_p->partition);
     225
     226                        parameter=(double*)xmalloc(numberofnodes*sizeof(double));
     227
     228                        for(i=0;i<numberofnodes;i++){
     229                                parameter[i]=p_g_serial[(int)partition[i]];
     230                        }
     231                       
     232                        /*Ok, add parameter to newresults: */
     233                        newresult=new Result(newresults->Size()+1,result->GetTime(),result->GetStep(),"parameter",parameter,numberofnodes);
     234                        newresults->AddObject(newresult);
     235
     236                        /*do some cleanup: */
     237                        xfree((void**)&p_g_serial);
     238                        xfree((void**)&partition);
     239                }
     240                else{
     241                        /*Just copy the result into the new results dataset: */
     242                        newresults->AddObject(result);
     243                }
    218244        }
    219245
Note: See TracChangeset for help on using the changeset viewer.