Changeset 3042


Ignore:
Timestamp:
02/16/10 14:22:05 (15 years ago)
Author:
Eric.Larour
Message:

Added inputs a input to DakotaResponses.
In DakotaResponses, added parameters needed for misfit computation.

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

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Qmux/DakotaResponses.cpp

    r3030 r3042  
    1717#undef __FUNCT__
    1818#define __FUNCT__ "DakotaResponses"
    19 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model,DataSet* results,DataSet* processed_results,int analysis_type,int sub_analysis_type){
     19void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model,DataSet* results,DataSet* processed_results,ParameterInputs* inputs,int analysis_type,int sub_analysis_type){
    2020
    2121        int i,j;
     
    227227                        int isstokes,ismacayealpattyn,ishutter;
    228228                        FemModel* femmodel=NULL;
    229                         ParameterInputs* inputs=NULL; //needed to plug velocity into elements.
    230229                        double J=0;
    231230                        int analysis_type,sub_analysis_type;
    232231                        int numberofdofspernode,numberofnodes;
    233232                        Vec u_g=NULL;
     233                        double* u_g_double=NULL;
     234                        double* fit=NULL;
    234235
    235236                        /*retrieve active fem model: */
     
    254255                        femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
    255256                        femmodel->parameters->FindParam(&numberofnodes,"numberofnodes");
    256        
     257                        femmodel->parameters->FindParam(&fit,NULL,NULL,"fit");
     258
    257259                        /*Recover velocity: */
    258260                        found=results->FindResult(&u_g,"u_g");
     261                        VecToMPISerial(&u_g_double,u_g);
    259262                        if(!found)throw ErrorException(__FUNCT__," could not find velocity to compute misfit");
    260263
    261264                        /*Add to inputs: */
    262                         inputs=new ParameterInputs;
    263                         inputs->Add("velocity",u_g,numberofdofspernode,numberofnodes);
     265                        inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes);
     266                        inputs->Add("fit",fit[0]);
    264267
    265268                        /*Compute misfit: */
    266                         Misfitx( &J, femmodel->elements,femmodel->nodes, femmodel->loads, femmodel->materials, femmodel->parameters,inputs,analysis_type,sub_analysis_type);
    267                        
    268        
     269                        Misfitx( &J, femmodel->elements,femmodel->nodes, femmodel->loads, femmodel->materials, femmodel->parameters,inputs,analysis_type,sub_analysis_type,1);
     270                       
     271
    269272                        if(my_rank==0)responses[i]=J;
    270273
    271274                        /*Some cleanup: */
    272275                        VecFree(&u_g);
    273                         delete inputs;
     276                        xfree((void**)&u_g_double);
     277                        xfree((void**)&fit);
    274278
    275279                }
  • issm/trunk/src/c/Qmux/Qmux.h

    r2112 r3042  
    1616void Qmux(Model* model,ParameterInputs* inputs,int analysis_type,int sub_analysis_type);
    1717void SpawnCoreParallel(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, Model* model,ParameterInputs* inputs,int analysis_type,int sub_analysis_type,int counter);
    18 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model, DataSet* results,DataSet* processed_results,int analysis_type,int sub_analysis_type);
     18void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model, DataSet* results,DataSet* processed_results,ParameterInputs* inputs,int analysis_type,int sub_analysis_type);
    1919#endif
    2020
  • issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp

    r2333 r3042  
    180180        /*compute responses on cpu 0: dummy for now! */
    181181        if(verbose)_printf_("compute dakota responses:\n");
    182         DakotaResponses(responses,responses_descriptors,numresponses,model,results,processed_results,analysis_type,sub_analysis_type);
     182        DakotaResponses(responses,responses_descriptors,numresponses,model,results,processed_results,inputs,analysis_type,sub_analysis_type);
    183183
    184184        /*Free ressources:*/
Note: See TracChangeset for help on using the changeset viewer.