Changeset 1830
- Timestamp:
- 08/24/09 17:48:39 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/thermal.cpp
r1719 r1830 27 27 int numberofnodes; 28 28 29 /* Fem models: */30 FemModel femmodels[2];29 /*Model: */ 30 Model* model=NULL; 31 31 32 32 /*initial velocity and pressure: */ … … 64 64 fid=pfopen(inputfilename,"rb"); 65 65 66 /*Initialize model structure: */ 67 model=new Model(); 68 66 69 _printf_("read and create thermal finite element model:\n"); 67 CreateFemModel( &femmodels[0],fid,ThermalAnalysisEnum(),0);70 CreateFemModel(model->Thermal(),fid,ThermalAnalysisEnum(),0); 68 71 _printf_("read and create melting finite element model:\n"); 69 CreateFemModel( &femmodels[1],fid,MeltingAnalysisEnum(),0);72 CreateFemModel(model->Melting(),fid,MeltingAnalysisEnum(),0); 70 73 71 74 _printf_("initialize inputs:\n"); 72 femmodels[0].parameters->FindParam((void*)&u_g,"u_g");73 femmodels[0].parameters->FindParam((void*)&p_g,"p_g");74 femmodels[0].parameters->FindParam((void*)&numberofnodes,"numberofnodes");75 femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");76 femmodels[0].parameters->FindParam((void*)&dt,"dt");77 femmodels[0].parameters->FindParam((void*)&yts,"yts");75 model->Thermal()->parameters->FindParam((void*)&u_g,"u_g"); 76 model->Thermal()->parameters->FindParam((void*)&p_g,"p_g"); 77 model->Thermal()->parameters->FindParam((void*)&numberofnodes,"numberofnodes"); 78 model->Thermal()->parameters->FindParam((void*)&waitonlock,"waitonlock"); 79 model->Thermal()->parameters->FindParam((void*)&dt,"dt"); 80 model->Thermal()->parameters->FindParam((void*)&yts,"yts"); 78 81 79 82 inputs=new ParameterInputs; … … 87 90 88 91 //erase velocities and pressure embedded in parameters 89 param=(Param*) femmodels[0].parameters->FindParamObject("u_g");90 param=(Param*) femmodels[0].parameters->FindParamObject("velocity");91 femmodels[0].parameters->DeleteObject((Object*)param);92 param=(Param*) femmodels[0].parameters->FindParamObject("p_g");93 femmodels[0].parameters->DeleteObject((Object*)param);94 param=(Param*) femmodels[1].parameters->FindParamObject("u_g");95 femmodels[1].parameters->DeleteObject((Object*)param);96 param=(Param*) femmodels[1].parameters->FindParamObject("p_g");97 femmodels[1].parameters->DeleteObject((Object*)param);92 param=(Param*)model->Thermal()->parameters->FindParamObject("u_g"); 93 param=(Param*)model->Thermal()->parameters->FindParamObject("velocity"); 94 model->Thermal()->parameters->DeleteObject((Object*)param); 95 param=(Param*)model->Thermal()->parameters->FindParamObject("p_g"); 96 model->Thermal()->parameters->DeleteObject((Object*)param); 97 param=(Param*)model->Melting()->parameters->FindParamObject("u_g"); 98 model->Melting()->parameters->DeleteObject((Object*)param); 99 param=(Param*)model->Melting()->parameters->FindParamObject("p_g"); 100 model->Melting()->parameters->DeleteObject((Object*)param); 98 101 99 102 /*are we running the solutoin sequence, or a qmu wrapper around it? : */ 100 femmodels[0].parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");103 model->Thermal()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis"); 101 104 if(!qmu_analysis){ 102 105 103 106 /*run thermal analysis: */ 104 107 _printf_("call computational core:\n"); 105 thermal_core(results, femmodels,inputs);108 thermal_core(results,model,inputs); 106 109 107 110 } … … 111 114 112 115 #ifdef _HAVE_DAKOTA_ 113 Qmux( &femmodels[0],inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());116 Qmux(model,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 114 117 #else 115 118 throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!"); … … 122 125 123 126 _printf_("process results:\n"); 124 ProcessResults(&results, &femmodels[0],ThermalAnalysisEnum());127 ProcessResults(&results,model,ThermalAnalysisEnum()); 125 128 126 129 _printf_("write results to disk:\n"); … … 128 131 129 132 _printf_("write lock file:\n"); 130 femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");133 model->Thermal()->parameters->FindParam((void*)&waitonlock,"waitonlock"); 131 134 132 135 if (waitonlock){
Note:
See TracChangeset
for help on using the changeset viewer.