Changeset 613 for issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp
- Timestamp:
- 05/27/09 15:15:26 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp
r597 r613 56 56 int numberofnodes; 57 57 int analysis_type; 58 int sub_analysis_type; 58 59 int count; 59 60 60 61 parameters->FindParam((void*)&analysis_type,"analysis_type"); 62 parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type"); 61 63 count=parameters->Size(); 62 64 … … 84 86 } 85 87 } 86 87 88 if(vy){ 88 89 for(i=0;i<numberofnodes;i++){ … … 96 97 } 97 98 98 99 99 /*Now, create new parameters: */ 100 100 count++; … … 113 113 parameters->DeleteObject((Object*)param); 114 114 } 115 116 } 117 115 } 118 116 119 117 if(analysis_type==ControlAnalysisEnum()){ … … 154 152 param=(Param*)parameters->FindParamObject("control_parameter"); 155 153 parameters->DeleteObject((Object*)param); 156 157 154 } 158 155 159 156 if(analysis_type==ThermalAnalysisEnum()){ 160 157 161 parameters->FindParam((void*)&temperature,"temperature");162 parameters->FindParam((void*)&melting,"melting");163 158 parameters->FindParam((void*)&pressure,"pressure"); 164 159 165 160 /*Now, from temperature and melting, build t_g and m_g, correctly partitioned: */ 166 t_g=(double*)xcalloc(numberofnodes,sizeof(double));167 m_g=(double*)xcalloc(numberofnodes,sizeof(double));168 161 p_g=(double*)xcalloc(numberofnodes,sizeof(double)); 169 162 170 163 for(i=0;i<numberofnodes;i++){ 171 t_g[(int)(partition[i])]=temperature[i];172 m_g[(int)(partition[i])]=melting[i];173 164 p_g[(int)(partition[i])]= pressure[i]; 174 165 } 175 166 176 167 /*Now, create new parameter: */ 177 count++;178 param= new Param(count,"t_g",DOUBLEVEC);179 param->SetDoubleVec(t_g,numberofnodes);180 parameters->AddObject(param);181 182 count++;183 param= new Param(count,"m_g",DOUBLEVEC);184 param->SetDoubleVec(m_g,numberofnodes);185 parameters->AddObject(param);186 187 168 count++; 188 169 param= new Param(count,"p_g",DOUBLEVEC); … … 191 172 192 173 /*erase old parameter: */ 193 param=(Param*)parameters->FindParamObject("temperature");194 parameters->DeleteObject((Object*)param);195 196 param=(Param*)parameters->FindParamObject("melting");197 parameters->DeleteObject((Object*)param);198 199 174 param=(Param*)parameters->FindParamObject("pressure"); 200 175 parameters->DeleteObject((Object*)param); 176 177 if (sub_analysis_type==TransientAnalysisEnum()){ 178 179 parameters->FindParam((void*)&temperature,"temperature"); 180 parameters->FindParam((void*)&melting,"melting"); 181 182 /*Now, from temperature and melting, build t_g and m_g, correctly partitioned: */ 183 t_g=(double*)xcalloc(numberofnodes,sizeof(double)); 184 m_g=(double*)xcalloc(numberofnodes,sizeof(double)); 185 186 for(i=0;i<numberofnodes;i++){ 187 t_g[(int)(partition[i])]=temperature[i]; 188 m_g[(int)(partition[i])]=melting[i]; 189 } 190 191 /*Now, create new parameter: */ 192 count++; 193 param= new Param(count,"t_g",DOUBLEVEC); 194 param->SetDoubleVec(t_g,numberofnodes); 195 parameters->AddObject(param); 196 197 count++; 198 param= new Param(count,"m_g",DOUBLEVEC); 199 param->SetDoubleVec(m_g,numberofnodes); 200 parameters->AddObject(param); 201 202 /*erase old parameter: */ 203 param=(Param*)parameters->FindParamObject("temperature"); 204 parameters->DeleteObject((Object*)param); 205 206 param=(Param*)parameters->FindParamObject("melting"); 207 parameters->DeleteObject((Object*)param); 208 } 201 209 } 202 210 … … 260 268 xfree((void**)&h_g); 261 269 xfree((void**)&m_g); 262 263 270 }
Note:
See TracChangeset
for help on using the changeset viewer.