Changeset 3042
- Timestamp:
- 02/16/10 14:22:05 (15 years ago)
- Location:
- issm/trunk/src/c/Qmux
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Qmux/DakotaResponses.cpp
r3030 r3042 17 17 #undef __FUNCT__ 18 18 #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){19 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model,DataSet* results,DataSet* processed_results,ParameterInputs* inputs,int analysis_type,int sub_analysis_type){ 20 20 21 21 int i,j; … … 227 227 int isstokes,ismacayealpattyn,ishutter; 228 228 FemModel* femmodel=NULL; 229 ParameterInputs* inputs=NULL; //needed to plug velocity into elements.230 229 double J=0; 231 230 int analysis_type,sub_analysis_type; 232 231 int numberofdofspernode,numberofnodes; 233 232 Vec u_g=NULL; 233 double* u_g_double=NULL; 234 double* fit=NULL; 234 235 235 236 /*retrieve active fem model: */ … … 254 255 femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode"); 255 256 femmodel->parameters->FindParam(&numberofnodes,"numberofnodes"); 256 257 femmodel->parameters->FindParam(&fit,NULL,NULL,"fit"); 258 257 259 /*Recover velocity: */ 258 260 found=results->FindResult(&u_g,"u_g"); 261 VecToMPISerial(&u_g_double,u_g); 259 262 if(!found)throw ErrorException(__FUNCT__," could not find velocity to compute misfit"); 260 263 261 264 /*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]); 264 267 265 268 /*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 269 272 if(my_rank==0)responses[i]=J; 270 273 271 274 /*Some cleanup: */ 272 275 VecFree(&u_g); 273 delete inputs; 276 xfree((void**)&u_g_double); 277 xfree((void**)&fit); 274 278 275 279 } -
issm/trunk/src/c/Qmux/Qmux.h
r2112 r3042 16 16 void Qmux(Model* model,ParameterInputs* inputs,int analysis_type,int sub_analysis_type); 17 17 void 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);18 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,Model* model, DataSet* results,DataSet* processed_results,ParameterInputs* inputs,int analysis_type,int sub_analysis_type); 19 19 #endif 20 20 -
issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp
r2333 r3042 180 180 /*compute responses on cpu 0: dummy for now! */ 181 181 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); 183 183 184 184 /*Free ressources:*/
Note:
See TracChangeset
for help on using the changeset viewer.