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