Changeset 1826
- Timestamp:
- 08/24/09 17:46:34 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/diagnostic.cpp
r1708 r1826 26 26 int qmu_analysis=0; 27 27 28 /* Fem models: */29 FemModel femmodels[5];28 /*Model: */ 29 Model* model=NULL; 30 30 31 31 /*Results: */ … … 56 56 lockname=argv[4]; 57 57 58 /*Initialize model structure: */ 59 model=new Model(); 60 58 61 /*Open handle to data on disk: */ 59 62 fid=pfopen(inputfilename,"rb"); … … 61 64 _printf_("read and create finite element model:\n"); 62 65 _printf_("\n reading diagnostic horiz model data:\n"); 63 CreateFemModel( &femmodels[0],fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());66 CreateFemModel(model->DiagnosticHorizontal(),fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 64 67 _printf_("\n reading diagnostic vert model data:\n"); 65 CreateFemModel( &femmodels[1],fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());68 CreateFemModel(model->DiagnosticVertical(),fid,DiagnosticAnalysisEnum(),VertAnalysisEnum()); 66 69 _printf_("\n reading diagnostic stokes model data:\n"); 67 CreateFemModel( &femmodels[2],fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());70 CreateFemModel(model->DiagnosticStokes(),fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum()); 68 71 _printf_("\n reading diagnostic hutter model data:\n"); 69 CreateFemModel( &femmodels[3],fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());72 CreateFemModel(model->DiagnosticHutter(),fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum()); 70 73 _printf_("\n reading surface and bed slope computation model data:\n"); 71 CreateFemModel( &femmodels[4],fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());74 CreateFemModel(model->Slope(),fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum()); 72 75 73 76 _printf_("initialize inputs:\n"); 74 femmodels[0].parameters->FindParam((void*)&u_g_initial,"u_g");75 femmodels[0].parameters->FindParam((void*)&numberofnodes,"numberofnodes");77 model->DiagnosticHorizontal()->parameters->FindParam((void*)&u_g_initial,"u_g"); 78 model->DiagnosticHorizontal()->parameters->FindParam((void*)&numberofnodes,"numberofnodes"); 76 79 77 80 inputs=new ParameterInputs; … … 79 82 80 83 /*erase velocities: */ 81 param=(Param*) femmodels[0].parameters->FindParamObject("u_g");82 femmodels[0].parameters->DeleteObject((Object*)param);84 param=(Param*)model->DiagnosticHorizontal()->parameters->FindParamObject("u_g"); 85 model->DiagnosticHorizontal()->parameters->DeleteObject((Object*)param); 83 86 84 87 _printf_("initialize results:\n"); … … 86 89 87 90 /*are we running the solution sequence, or a qmu wrapper around it? : */ 88 femmodels[0].parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");91 model->DiagnosticHorizontal()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis"); 89 92 if(!qmu_analysis){ 90 93 91 94 /*run diagnostic analysis: */ 92 95 _printf_("call computational core:\n"); 93 diagnostic_core(results, femmodels,inputs);96 diagnostic_core(results,model,inputs); 94 97 95 98 } … … 99 102 100 103 #ifdef _HAVE_DAKOTA_ 101 Qmux( &femmodels[0],inputs,DiagnosticAnalysisEnum(),NoneAnalysisEnum());104 Qmux(model,inputs,DiagnosticAnalysisEnum(),NoneAnalysisEnum()); 102 105 #else 103 106 throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!"); … … 110 113 111 114 _printf_("process results:\n"); 112 ProcessResults(&results, &femmodels[0],DiagnosticAnalysisEnum());115 ProcessResults(&results,model,DiagnosticAnalysisEnum()); 113 116 114 117 _printf_("write results to disk:\n"); … … 116 119 117 120 _printf_("write lock file:\n"); 118 femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");121 model->DiagnosticHorizontal()->parameters->FindParam((void*)&waitonlock,"waitonlock"); 119 122 if (waitonlock){ 120 123 WriteLockFile(lockname);
Note:
See TracChangeset
for help on using the changeset viewer.