Changeset 2033 for issm/trunk/src/c/parallel/objectivefunctionC.cpp
- Timestamp:
- 08/27/09 17:15:17 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/objectivefunctionC.cpp
r2016 r2033 41 41 int analysis_type; 42 42 int sub_analysis_type; 43 int control_steady; 43 44 Vec u_g=NULL; 44 45 Vec u_g_full=NULL; … … 71 72 femmodel->parameters->FindParam((void*)&analysis_type,"analysis_type"); 72 73 femmodel->parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type"); 74 femmodel->parameters->FindParam((void*)&control_steady,"control_steady"); 73 75 femmodel->parameters->FindParam((void*)&numberofnodes,"numberofnodes"); 74 76 femmodel->parameters->FindParam((void*)&numberofdofspernode,"numberofdofspernode"); … … 88 90 inputs->Add(control_type,param_g_copy,1,numberofnodes); 89 91 90 if ( analysis_type==DiagnosticAnalysisEnum()){92 if (control_steady==0){ 91 93 //Run diagnostic with updated parameters. 92 94 diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type); 93 95 VecToMPISerial(&u_g_double,u_g); VecFree(&u_g); 96 inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes); 94 97 } 95 98 else{ … … 102 105 delete results_steadystate; 103 106 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 } 104 114 //extract the correct number of dofs (3 or 4) 105 VecDuplicatePatch(&u_g_full,u_g);VecFree(&u_g); 106 if(!isstokes){ 107 xfree((void**)& dofset);dofset=dofsetgen(2,dofs01,3,numberofnodes*3); VecPartition(&u_g, u_g_full, dofset, numberofnodes*2); 108 } 109 VecFree(&u_g_full); 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); 110 123 } 111 112 inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes);113 124 114 125 //Compute misfit for this velocity field.
Note:
See TracChangeset
for help on using the changeset viewer.