Changeset 2217
- Timestamp:
- 09/11/09 15:05:30 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/objectivefunctionC.cpp
r2033 r2217 90 90 inputs->Add(control_type,param_g_copy,1,numberofnodes); 91 91 92 if (control_steady==0){ 93 //Run diagnostic with updated parameters. 94 diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type); 95 VecToMPISerial(&u_g_double,u_g); VecFree(&u_g); 96 inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes); 97 } 98 else{ 99 //Run full steadystate solution with updated parameters. 100 results_steadystate=new DataSet(ResultsEnum()); 101 steadystate_core(results_steadystate,model,inputs); 102 103 //get u_g 104 results_steadystate->FindResult(&u_g,"u_g"); 105 delete results_steadystate; 92 /*Run diagnostic with updated parameters.*/ 93 diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type); 94 VecToMPISerial(&u_g_double,u_g); VecFree(&u_g); 95 inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes); 106 96 107 VecToMPISerial(&u_g_double,u_g); VecFree(&u_g); 108 if(!isstokes){ 109 inputs->Add("velocity",u_g_double,3,numberofnodes); 110 } 111 else{ 112 inputs->Add("velocity",u_g_double,4,numberofnodes); 113 } 114 //extract the correct number of dofs (3 or 4) 115 // VecDuplicatePatch(&u_g_full,u_g);VecFree(&u_g); 116 // if(!isstokes){ 117 // xfree((void**)& dofset); 118 // dofset=dofsetgen(2,dofs01,3,numberofnodes*3); 119 // VecPartition(&u_g, u_g_full, dofset, numberofnodes*2); 120 // } 121 // VecFree(&u_g_full); 122 // inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes); 123 } 124 125 //Compute misfit for this velocity field. 97 /*Compute misfit for this velocity field.*/ 126 98 inputs->Add("fit",fit[n]); 127 99 Misfitx( &J, femmodel->elements,femmodel->nodes, femmodel->loads, femmodel->materials,
Note:
See TracChangeset
for help on using the changeset viewer.