Changeset 3922
- Timestamp:
- 05/24/10 14:24:48 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp
r3913 r3922 16 16 VecToMPISerial(&serial_solution,solution); 17 17 18 /*Call overloaded form of UpdateInputsFromSolutionx: */ 19 UpdateInputsFromSolutionx( elements, nodes, vertices, loads, materials, parameters,serial_solution, analysis_type, sub_analysis_type); 20 21 /*Free ressources:*/ 22 xfree((void**)&serial_solution); 23 24 } 25 26 27 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution, int analysis_type, int sub_analysis_type){ 28 18 29 /*First, get elements and loads configured: */ 19 30 elements->Configure(elements,loads, nodes,vertices, materials,parameters); … … 24 35 25 36 /*Elements drive the update: */ 26 elements->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type); 27 28 /*Free ressources:*/ 29 xfree((void**)&serial_solution); 37 elements->UpdateInputsFromSolution(solution,analysis_type,sub_analysis_type); 30 38 31 39 } -
issm/trunk/src/c/modules/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h
r3913 r3922 11 11 /* local prototypes: */ 12 12 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type); 13 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution, int analysis_type, int sub_analysis_type); 13 14 14 15 #endif /* _UPDATEINPUTSFROMSOLUTIONXX_H */ -
issm/trunk/src/c/objects/FemModel.cpp
r3816 r3922 84 84 } 85 85 /*}}}*/ 86 87 /*object functions*/88 /*FUNCTION FemModel::Echo {{{1*/89 void FemModel::Echo(void){90 91 printf("FemModels echo: \n");92 printf(" elements: %p\n",elements);93 printf(" nodes: %p\n",nodes);94 printf(" vertices: %p\n",vertices);95 printf(" loads: %p\n",loads);96 printf(" materials: %p\n",materials);97 printf(" parameters: %p\n",parameters);98 99 printf(" partition: %p\n",partition);100 printf(" tpartition: %p\n",tpartition);101 printf(" yg: %p\n",yg);102 printf(" Rmg: %p\n",Rmg);103 printf(" nodesets: %p\n",nodesets);104 printf(" ys: %p\n",ys);105 printf(" ys0: %p\n",ys0);106 printf(" Gmn: %p\n",Gmn);107 108 }109 /*}}}*/110 /*FUNCTION FemModel::DeepEcho {{{1*/111 void FemModel::DeepEcho(void){112 113 printf("FemModels echo: \n");114 printf(" elements: \n");115 elements->Echo();116 printf(" nodes: \n");117 nodes->Echo();118 printf(" vertices: \n");119 vertices->Echo();120 printf(" loads: \n");121 nodes->Echo();122 printf(" materials: \n");123 nodes->Echo();124 printf(" parameters: \n");125 nodes->Echo();126 127 printf(" partition: \n");128 partition->Echo();129 printf(" tpartition: \n");130 tpartition->Echo();131 printf(" yg: \n");132 yg->Echo();133 printf(" Rmg: \n");134 MatView(Rmg,PETSC_VIEWER_STDOUT_WORLD);135 printf(" nodesets: \n");136 nodesets->Echo();137 printf(" ys: \n");138 VecView(ys,PETSC_VIEWER_STDOUT_WORLD);139 printf(" ys0: \n");140 VecView(ys0,PETSC_VIEWER_STDOUT_WORLD);141 printf(" Gmn: \n");142 MatView(Gmn,PETSC_VIEWER_STDOUT_WORLD);143 144 }145 /*}}}*/146 /*FUNCTION FemModel::Id {{{1*/147 int FemModel::Id(void){148 ISSMERROR("not implemented yet!");149 }150 /*}}}*/151 /*FUNCTION FemModel::MyRank {{{1*/152 int FemModel::MyRank(void){153 ISSMERROR("not implemented yet!");154 }155 /*}}}*/156 /*FUNCTION FemModel::Marshall {{{1*/157 void FemModel::Marshall(char** pmarshalled_dataset){158 ISSMERROR("not implemented yet!");159 }160 /*}}}*/161 /*FUNCTION FemModel::MarshallSize {{{1*/162 int FemModel::MarshallSize(void){163 ISSMERROR("not implemented yet!");164 }165 /*}}}*/166 /*FUNCTION FemModel::Demarshall {{{1*/167 void FemModel::Demarshall(char** pmarshalled_dataset){168 ISSMERROR("not implemented yet!");169 }170 /*}}}*/171 /*FUNCTION FemModel::Enum {{{1*/172 int FemModel::Enum(void){173 ISSMERROR("not implemented yet!");174 }175 /*}}}*/176 /*FUNCTION FemModel::copy {{{1*/177 Object* FemModel::copy(void){178 ISSMERROR("not implemented yet!");179 }180 /*}}}*/181 /*FUNCTION FemModel::FindParam(bool* pinteger,int enum_type) {{{1*/182 int FemModel::FindParam(bool* pinteger,int enum_type){183 184 return parameters->FindParam(pinteger,enum_type);185 186 }187 /*}}}*/188 /*FUNCTION FemModel::FindParam(int* pinteger,int enum_type) {{{1*/189 int FemModel::FindParam(int* pinteger,int enum_type){190 191 return parameters->FindParam(pinteger,enum_type);192 193 }194 /*}}}*/195 /*FUNCTION FemModel::FindParam(double* pscalar,int enum_type) {{{1*/196 int FemModel::FindParam(double* pscalar,int enum_type){197 198 return parameters->FindParam(pscalar,enum_type);199 200 }201 /*}}}*/202 /*FUNCTION FemModel::FindParam(char** pstring,int enum_type) {{{1*/203 int FemModel::FindParam(char** pstring,int enum_type){204 205 return parameters->FindParam(pstring,enum_type);206 207 }208 /*}}}*/209 /*FUNCTION FemModel::FindParam(char*** pstringarray,int* pM,int enum_type) {{{1*/210 int FemModel::FindParam(char*** pstringarray,int* pM,int enum_type){211 212 return parameters->FindParam(pstringarray,pM,enum_type);213 214 }215 /*}}}*/216 /*FUNCTION FemModel::FindParam(double** pdoublearray,int* pM,int* pN,int enum_type) {{{1*/217 int FemModel::FindParam(double** pdoublearray,int* pM,int* pN,int enum_type){218 219 return parameters->FindParam(pdoublearray,pM,pN,enum_type);220 221 }222 /*}}}*/223 /*FUNCTION FemModel::FindParam(double** pdoublearray,int* pM,int enum_type) {{{1*/224 int FemModel::FindParam(double** pdoublearray,int* pM,int enum_type){225 226 return parameters->FindParam(pdoublearray,pM,enum_type);227 228 }229 /*}}}*/230 /*FUNCTION FemModel::FindParam(Vec* pvec,int enum_type) {{{1*/231 int FemModel::FindParam(Vec* pvec,int enum_type){232 233 return parameters->FindParam(pvec,enum_type);234 235 }236 /*}}}*/237 /*FUNCTION FemModel::FindParam(Mat* pmat,int enum_type) {{{1*/238 int FemModel::FindParam(Mat* pmat,int enum_type){239 240 return parameters->FindParam(pmat,enum_type);241 242 }243 /*}}}*/244 245 /*access to internal data: */246 /*FUNCTION FemModel::get_elements {{{1*/247 DataSet* FemModel::get_elements(void){248 return elements;249 }250 /*}}}*/251 /*FUNCTION FemModel::get_nodes {{{1*/252 DataSet* FemModel::get_nodes(void){253 return nodes;254 }255 /*}}}*/256 /*FUNCTION FemModel::get_vertices {{{1*/257 DataSet* FemModel::get_vertices(void){258 return vertices;259 }260 /*}}}*/261 /*FUNCTION FemModel::get_constraints {{{1*/262 DataSet* FemModel::get_constraints(void){263 return constraints;264 }265 /*}}}*/266 /*FUNCTION FemModel::get_loads {{{1*/267 DataSet* FemModel::get_loads(void){268 return loads;269 }270 /*}}}*/271 /*FUNCTION FemModel::get_materials {{{1*/272 DataSet* FemModel::get_materials(void){273 return materials;274 }275 /*}}}*/276 /*FUNCTION FemModel::get_parameters {{{1*/277 Parameters* FemModel::get_parameters(void){278 return parameters;279 }280 /*}}}*/281 /*FUNCTION FemModel::get_partition {{{1*/282 DofVec* FemModel::get_partition(void){283 return partition;284 }285 /*}}}*/286 /*FUNCTION FemModel::get_tpartition {{{1*/287 DofVec* FemModel::get_tpartition(void){288 return tpartition;289 }290 /*}}}*/291 /*FUNCTION FemModel::get_yg {{{1*/292 DofVec* FemModel::get_yg(void){293 return yg;294 }295 /*}}}*/296 /*FUNCTION FemModel::get_Rmg {{{1*/297 Mat FemModel::get_Rmg(void){298 return Rmg;299 }300 /*}}}*/301 /*FUNCTION FemModel::get_nodesets {{{1*/302 NodeSets* FemModel::get_nodesets(void){303 return nodesets;304 }305 /*}}}*/306 /*FUNCTION FemModel::get_ys {{{1*/307 Vec FemModel::get_ys(void){308 return ys;309 }310 /*}}}*/311 /*FUNCTION FemModel::get_ys0 {{{1*/312 Vec FemModel::get_ys0(void){313 return ys0;314 }315 /*}}}*/316 /*FUNCTION FemModel::get_Gmn {{{1*/317 Mat FemModel::get_Gmn(void){318 return Gmn;319 }320 /*}}}*/321 /*FUNCTION FemModel::UpdateInputsFromVector(Vec vector, int name, int type){{{1*/322 void FemModel::UpdateInputsFromVector(Vec vector, int name, int type){323 324 double* serial_vector=NULL;325 326 if(vector==NULL)return; //don't bother327 328 VecToMPISerial(&serial_vector,vector);329 330 this->UpdateInputsFromVector(serial_vector,name,type);331 332 /*Free ressources:*/333 xfree((void**)&serial_vector);334 }335 /*}}}*/336 /*FUNCTION FemModel::UpdateInputsFromVector(double* vector, int name, int type){{{1*/337 void FemModel::UpdateInputsFromVector(double* vector, int name, int type){338 339 if(vector==NULL)return; //don't bother340 341 elements->UpdateInputsFromVector(vector,name,type);342 nodes->UpdateInputsFromVector(vector,name,type);343 vertices->UpdateInputsFromVector(vector,name,type);344 loads->UpdateInputsFromVector(vector,name,type);345 materials->UpdateInputsFromVector(vector,name,type);346 parameters->UpdateInputsFromVector(vector,name,type);347 348 }349 /*}}}*/350 /*FUNCTION FemModel::UpdateInputsFromVector(int* vector, int name, int type){{{1*/351 void FemModel::UpdateInputsFromVector(int* vector, int name, int type){352 353 if(vector==NULL)return; //don't bother354 355 elements->UpdateInputsFromVector(vector,name,type);356 nodes->UpdateInputsFromVector(vector,name,type);357 vertices->UpdateInputsFromVector(vector,name,type);358 loads->UpdateInputsFromVector(vector,name,type);359 materials->UpdateInputsFromVector(vector,name,type);360 parameters->UpdateInputsFromVector(vector,name,type);361 362 }363 /*}}}*/364 /*FUNCTION FemModel::UpdateInputsFromVector(bool* vector, int name, int type){{{1*/365 void FemModel::UpdateInputsFromVector(bool* vector, int name, int type){366 367 if(vector==NULL)return; //don't bother368 369 elements->UpdateInputsFromVector(vector,name,type);370 nodes->UpdateInputsFromVector(vector,name,type);371 vertices->UpdateInputsFromVector(vector,name,type);372 loads->UpdateInputsFromVector(vector,name,type);373 materials->UpdateInputsFromVector(vector,name,type);374 parameters->UpdateInputsFromVector(vector,name,type);375 376 }377 /*}}}*/378 /*FUNCTION FemModel::UpdateInputsFromConstant(double constant, int name){{{1*/379 void FemModel::UpdateInputsFromConstant(double constant, int name){380 381 elements->UpdateInputsFromConstant(constant,name);382 nodes->UpdateInputsFromConstant(constant,name);383 vertices->UpdateInputsFromConstant(constant,name);384 loads->UpdateInputsFromConstant(constant,name);385 materials->UpdateInputsFromConstant(constant,name);386 parameters->UpdateInputsFromConstant(constant,name);387 388 }389 /*}}}*/390 /*FUNCTION FemModel::UpdateInputsFromConstant(int constant, int name){{{1*/391 void FemModel::UpdateInputsFromConstant(int constant, int name){392 393 elements->UpdateInputsFromConstant(constant,name);394 nodes->UpdateInputsFromConstant(constant,name);395 vertices->UpdateInputsFromConstant(constant,name);396 loads->UpdateInputsFromConstant(constant,name);397 materials->UpdateInputsFromConstant(constant,name);398 parameters->UpdateInputsFromConstant(constant,name);399 400 }401 /*}}}*/402 /*FUNCTION FemModel::UpdateInputsFromConstant(bool constant, int name){{{1*/403 void FemModel::UpdateInputsFromConstant(bool constant, int name){404 405 elements->UpdateInputsFromConstant(constant,name);406 nodes->UpdateInputsFromConstant(constant,name);407 vertices->UpdateInputsFromConstant(constant,name);408 loads->UpdateInputsFromConstant(constant,name);409 materials->UpdateInputsFromConstant(constant,name);410 parameters->UpdateInputsFromConstant(constant,name);411 412 }413 /*}}}*/414 /*FUNCTION FemModel::UpdateInputsFromSolution(Vec vector, int name, int type){{{1*/415 void FemModel::UpdateInputsFromSolution(Vec vector,int name, int type){416 417 double* serial_vector=NULL;418 419 VecToMPISerial(&serial_vector,vector);420 elements->UpdateInputsFromSolution(serial_vector,name,type);421 422 /*Free ressources:*/423 xfree((void**)&serial_vector);424 425 }426 /*}}}*/427 /*FUNCTION FemModel::UpdateInputsFromSolution(double* vector, int name, int type){{{1*/428 void FemModel::UpdateInputsFromSolution(double* vector,int name, int type){429 ISSMERROR(" not supported yet!");430 }431 /*}}}*/ -
issm/trunk/src/c/objects/FemModel.h
r3751 r3922 16 16 /*}}}*/ 17 17 18 class FemModel : public Object{18 class FemModel { 19 19 20 20 /*no private members, as we need access to these datasets quite often!:*/ … … 44 44 FemModel(DataSet* elements,DataSet* nodes,DataSet* vertices, DataSet* constraints,DataSet* loads,DataSet* materials,Parameters* parameters, 45 45 DofVec* partition,DofVec* tpartition,DofVec* yg,Mat Rmg,Mat Gmn,NodeSets* nodesets,Vec ys,Vec ys0); 46 47 /*virtual resolves: */48 void Echo();49 void DeepEcho();50 int Id();51 int MyRank();52 void Marshall(char** pmarshalled_dataset);53 int MarshallSize();54 void Demarshall(char** pmarshalled_dataset);55 int Enum();56 Object* copy();57 58 int FindParam(double* pscalar,int enum_type);59 int FindParam(bool* pinteger,int enum_type);60 int FindParam(int* pinteger,int enum_type);61 int FindParam(char** pstring,int enum_type);62 int FindParam(char*** pstringarray,int* pM,int enum_type);63 int FindParam(double** pdoublearray,int* pM, int enum_type);64 int FindParam(double** pdoublearray,int* pM, int* pN,int enum_type);65 int FindParam(Vec* pvec,int enum_type);66 int FindParam(Mat* pmat,int enum_type);67 DataSet* get_elements(void);68 DataSet* get_nodes(void);69 DataSet* get_vertices(void);70 DataSet* get_constraints(void);71 DataSet* get_loads(void);72 DataSet* get_materials(void);73 Parameters* get_parameters(void);74 DofVec* get_partition(void);75 DofVec* get_tpartition(void);76 DofVec* get_yg(void);77 Mat get_Rmg(void);78 NodeSets* get_nodesets(void);79 Vec get_ys(void);80 Vec get_ys0(void);81 Mat get_Gmn(void);82 83 void UpdateInputsFromVector(Vec vector, int name, int type);84 void UpdateInputsFromVector(double* vector, int name, int type);85 void UpdateInputsFromVector(bool* vector, int name, int type);86 void UpdateInputsFromVector(int* vector, int name, int type);87 88 void UpdateInputsFromConstant(double constant, int name);89 void UpdateInputsFromConstant(int constant, int name);90 void UpdateInputsFromConstant(bool constant, int name);91 92 void UpdateInputsFromSolution(Vec solution, int analysis_type, int sub_analysis_type);93 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);94 46 95 47 }; -
issm/trunk/src/c/objects/Model.cpp
r3913 r3922 220 220 if(!femmodel)return 0; 221 221 222 femmodel-> FindParam(pparameter,enum_type);222 femmodel->parameters->FindParam(pparameter,enum_type); 223 223 224 224 } … … 238 238 if(!femmodel)return 0; 239 239 240 femmodel-> FindParam(pparameter,enum_type);240 femmodel->parameters->FindParam(pparameter,enum_type); 241 241 242 242 } … … 255 255 if(!femmodel)return 0; 256 256 257 femmodel-> FindParam(pparameter,enum_type);257 femmodel->parameters->FindParam(pparameter,enum_type); 258 258 259 259 … … 273 273 if(!femmodel)return 0; 274 274 275 femmodel-> FindParam(pparameter,pM, pN,enum_type);275 femmodel->parameters->FindParam(pparameter,pM, pN,enum_type); 276 276 277 277 … … 291 291 if(!femmodel)return 0; 292 292 293 femmodel-> FindParam(pparameter,pM, enum_type);293 femmodel->parameters->FindParam(pparameter,pM, enum_type); 294 294 295 295 … … 309 309 if(!femmodel)return 0; 310 310 311 femmodel-> FindParam(pparameter,enum_type);311 femmodel->parameters->FindParam(pparameter,enum_type); 312 312 313 313 } … … 324 324 325 325 /*extract our parameter from the found formulation: */ 326 femmodel-> FindParam(pparameter,enum_type);326 femmodel->parameters->FindParam(pparameter,enum_type); 327 327 } 328 328 /*}}}1*/ … … 338 338 339 339 /*extract our parameter from the found formulation: */ 340 femmodel-> FindParam(pparameter,enum_type);340 femmodel->parameters->FindParam(pparameter,enum_type); 341 341 } 342 342 /*}}}1*/ … … 352 352 353 353 /*extract our parameter from the found formulation: */ 354 femmodel-> FindParam(pparameter,enum_type);354 femmodel->parameters->FindParam(pparameter,enum_type); 355 355 } 356 356 /*}}}1*/ … … 366 366 367 367 /*extract our parameter from the found formulation: */ 368 femmodel-> FindParam(pparameter,pM, pN,enum_type);368 femmodel->parameters->FindParam(pparameter,pM, pN,enum_type); 369 369 } 370 370 /*}}}1*/ … … 380 380 381 381 /*extract our parameter from the found formulation: */ 382 femmodel-> FindParam(pparameter,pM, enum_type);382 femmodel->parameters->FindParam(pparameter,pM, enum_type); 383 383 } 384 384 /*}}}1*/ … … 394 394 395 395 /*extract our parameter from the found formulation: */ 396 femmodel-> FindParam(pparameter,enum_type);396 femmodel->parameters->FindParam(pparameter,enum_type); 397 397 } 398 398 /*}}}1*/ … … 408 408 409 409 /*extract our parameter from the found formulation: */ 410 femmodel-> FindParam(pparameter,enum_type);410 femmodel->parameters->FindParam(pparameter,enum_type); 411 411 } 412 412 /*}}}1*/ … … 422 422 423 423 /*extract our parameter from the found formulation: */ 424 femmodel-> FindParam(pparameter,enum_type);424 femmodel->parameters->FindParam(pparameter,enum_type); 425 425 } 426 426 /*}}}1*/ … … 436 436 437 437 /*extract our parameter from the found formulation: */ 438 femmodel-> FindParam(pparameter,enum_type);438 femmodel->parameters->FindParam(pparameter,enum_type); 439 439 } 440 440 /*}}}1*/ … … 450 450 451 451 /*extract our parameter from the found formulation: */ 452 femmodel-> FindParam(pparameter,pM,pN,enum_type);452 femmodel->parameters->FindParam(pparameter,pM,pN,enum_type); 453 453 } 454 454 /*}}}1*/ … … 464 464 465 465 /*extract our parameter from the found formulation: */ 466 femmodel-> FindParam(pparameter,pM,enum_type);466 femmodel->parameters->FindParam(pparameter,pM,enum_type); 467 467 } 468 468 /*}}}1*/ … … 478 478 479 479 /*extract our parameter from the found formulation: */ 480 femmodel-> FindParam(pparameter,enum_type);480 femmodel->parameters->FindParam(pparameter,enum_type); 481 481 } 482 482 /*}}}1*/ … … 500 500 501 501 femmodel=(FemModel*)femmodels->GetObjectByOffset(i); 502 femmodel-> FindParam(&femmodel_analysis_type,AnalysisTypeEnum);503 femmodel-> FindParam(&femmodel_sub_analysis_type,SubAnalysisTypeEnum);502 femmodel->parameters->FindParam(&femmodel_analysis_type,AnalysisTypeEnum); 503 femmodel->parameters->FindParam(&femmodel_sub_analysis_type,SubAnalysisTypeEnum); 504 504 505 505 if((analysis_type==femmodel_analysis_type) && (sub_analysis_type==femmodel_sub_analysis_type)){ … … 529 529 530 530 femmodel=(FemModel*)femmodels->GetObjectByOffset(i); 531 femmodel-> FindParam(&femmodel_analysis_type,AnalysisTypeEnum);531 femmodel->parameters->FindParam(&femmodel_analysis_type,AnalysisTypeEnum); 532 532 533 533 if((analysis_type==femmodel_analysis_type)){ … … 554 554 for(i=0;i<this->femmodels->Size();i++){ 555 555 femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i); 556 femmodel->UpdateInputsFromConstant(constant,name);556 UpdateInputsFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,constant,name); 557 557 } 558 558 … … 567 567 for(i=0;i<this->femmodels->Size();i++){ 568 568 femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i); 569 femmodel->UpdateInputsFromConstant(constant,name);569 UpdateInputsFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,constant,name); 570 570 } 571 571 … … 580 580 for(i=0;i<this->femmodels->Size();i++){ 581 581 femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i); 582 femmodel->UpdateInputsFromConstant(constant,name);582 UpdateInputsFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,constant,name); 583 583 } 584 584 … … 595 595 for(i=0;i<this->femmodels->Size();i++){ 596 596 femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i); 597 femmodel->UpdateInputsFromVector(vector,name,type);597 UpdateInputsFromVectorx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,vector,name,type); 598 598 } 599 599 … … 626 626 for(i=0;i<this->femmodels->Size();i++){ 627 627 femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i); 628 femmodel->UpdateInputsFromSolution(vector,analysis_type,sub_analysis_type);628 UpdateInputsFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,vector,analysis_type,sub_analysis_type); 629 629 } 630 630 -
issm/trunk/src/c/solutions/ControlInitialization.cpp
r3913 r3922 71 71 72 72 //specific parameters for specific models 73 fem_dh-> FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum);74 fem_sl-> FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum);75 fem_ds-> FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum);73 fem_dh->parameters->FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum); 74 fem_sl->parameters->FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum); 75 fem_ds->parameters->FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum); 76 76 77 77 /*if no Stokes, assign output and return*/ -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r3913 r3922 89 89 90 90 //specific parameters for specific models 91 fem_dh-> FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum);92 fem_sl-> FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum);93 fem_ds-> FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum);91 fem_dh->parameters->FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum); 92 fem_sl->parameters->FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum); 93 fem_ds->parameters->FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum); 94 94 95 95 //for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: */ 96 96 if(qmu_analysis){ 97 fem_dh-> FindParam(&vx,&dummy,VxEnum); model->UpdateInputsFromVector(vx,VxEnum,VertexEnum);98 fem_dh-> FindParam(&vy,&dummy,VyEnum); model->UpdateInputsFromVector(vy,VyEnum,VertexEnum);99 fem_dh-> FindParam(&vz,&dummy,VzEnum); model->UpdateInputsFromVector(vz,VzEnum,VertexEnum);97 fem_dh->parameters->FindParam(&vx,&dummy,VxEnum); model->UpdateInputsFromVector(vx,VxEnum,VertexEnum); 98 fem_dh->parameters->FindParam(&vy,&dummy,VyEnum); model->UpdateInputsFromVector(vy,VyEnum,VertexEnum); 99 fem_dh->parameters->FindParam(&vz,&dummy,VzEnum); model->UpdateInputsFromVector(vz,VzEnum,VertexEnum); 100 100 } 101 101 -
issm/trunk/src/c/solutions/diagnostic_core_nonlinear.cpp
r3917 r3922 99 99 100 100 //Update inputs using new solution: 101 fem->UpdateInputsFromSolution(ug,analysis_type,sub_analysis_type);101 UpdateInputsFromSolutionx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,ug,analysis_type, sub_analysis_type); 102 102 103 103 //Deal with penalty loads … … 112 112 113 113 /*add converged to inputs: */ 114 fem->UpdateInputsFromConstant(converged,ConvergedEnum);114 UpdateInputsFromConstantx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,converged,ConvergedEnum); 115 115 116 116 //rift convergence -
issm/trunk/src/c/solutions/objectivefunctionC.cpp
r3913 r3922 88 88 89 89 /*Add new parameter to inputs: */ 90 femmodel->UpdateInputsFromVector(param_g_copy,control_type,VertexEnum);90 UpdateInputsFromVectorx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,param_g_copy,control_type,VertexEnum); 91 91 92 92 /*Run diagnostic with updated parameters.*/ 93 93 if(!control_steady){ 94 94 diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,DiagnosticAnalysisEnum,sub_analysis_type); 95 femmodel->UpdateInputsFromSolution(u_g,DiagnosticAnalysisEnum,sub_analysis_type);95 UpdateInputsFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,u_g,DiagnosticAnalysisEnum,sub_analysis_type); 96 96 VecFree(&u_g); 97 97 } … … 104 104 105 105 SplitSolutionVectorx(u_g,numberofnodes,3,&vx,&vy,&vz); 106 femmodel->UpdateInputsFromVector(vx,VxEnum,VertexEnum);107 femmodel->UpdateInputsFromVector(vy,VxEnum,VertexEnum);108 femmodel->UpdateInputsFromVector(vz,VxEnum,VertexEnum);106 UpdateInputsFromVectorx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,vx,VxEnum,VertexEnum); 107 UpdateInputsFromVectorx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,vy,VyEnum,VertexEnum); 108 UpdateInputsFromVectorx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,vz,VzEnum,VertexEnum); 109 109 110 110 delete diagnostic_results; … … 112 112 113 113 /*Compute misfit for this velocity field.*/ 114 femmodel->UpdateInputsFromConstant(fit[n],FitEnum);114 UpdateInputsFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,fit[n],FitEnum); 115 115 CostFunctionx( &J, femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters,analysis_type,sub_analysis_type); 116 116 -
issm/trunk/src/c/solutions/prognostic_core.cpp
r3913 r3922 44 44 45 45 _printf_("update inputs:\n"); 46 fem_p->UpdateInputsFromSolution(h_g,PrognosticAnalysisEnum,NoneAnalysisEnum);46 UpdateInputsFromSolutionx( fem_p->elements,fem_p->nodes, fem_p->vertices, fem_p->loads, fem_p->materials, fem_p->parameters,h_g,PrognosticAnalysisEnum,NoneAnalysisEnum); 47 47 48 48 _printf_("extrude computed thickness on all layers:\n"); -
issm/trunk/src/c/solutions/thermal_core.cpp
r3913 r3922 53 53 54 54 //first recover parameters common to all solutions 55 fem_t-> FindParam(&numberofnodes,NumberOfNodesEnum);56 fem_t-> FindParam(&sub_analysis_type,SubAnalysisTypeEnum);57 fem_t-> FindParam(&verbose,VerboseEnum);58 fem_t-> FindParam(&ndt,NdtEnum);59 fem_t-> FindParam(&dt,DtEnum);55 fem_t->parameters->FindParam(&numberofnodes,NumberOfNodesEnum); 56 fem_t->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 57 fem_t->parameters->FindParam(&verbose,VerboseEnum); 58 fem_t->parameters->FindParam(&ndt,NdtEnum); 59 fem_t->parameters->FindParam(&dt,DtEnum); 60 60 61 61 if(dt==0){ -
issm/trunk/src/c/solutions/thermal_core_nonlinear.cpp
r3913 r3922 56 56 57 57 if(count==1) reset_penalties=1; else reset_penalties=0; 58 fem->UpdateInputsFromConstant(reset_penalties,ResetPenaltiesEnum);58 UpdateInputsFromConstantx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,reset_penalties,ResetPenaltiesEnum); 59 59 60 60 //*Generate system matrices … … 110 110 PenaltyConstraintsx(&constraints_converged, &num_unstable_constraints, fem->elements,fem->nodes,fem->vertices,fem->loads,fem->materials,fem->parameters,analysis_type,sub_analysis_type); 111 111 112 fem->UpdateInputsFromVector(tg,TemperatureEnum,VertexEnum); 112 UpdateInputsFromVectorx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,tg,TemperatureEnum,VertexEnum); 113 113 114 114 115 if (!converged){
Note:
See TracChangeset
for help on using the changeset viewer.