Changeset 3699
- Timestamp:
- 05/10/10 16:38:13 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 5 added
- 2 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/DataSet/DataSet.cpp
r3685 r3699 1347 1347 } 1348 1348 /*}}}*/ 1349 /*FUNCTION DataSet::UpdateInputs {{{2*/1350 void DataSet::UpdateInputs (double* solution, int analysis_type, int sub_analysis_type){1349 /*FUNCTION DataSet::UpdateInputsFromVector{{{2*/ 1350 void DataSet::UpdateInputsFromVector(double* vector, int name, int type){ 1351 1351 1352 1352 vector<Object*>::iterator object; 1353 1353 Element* element=NULL; 1354 Node* node=NULL; 1355 Vertex* vertex=NULL; 1356 Load* load=NULL; 1357 Material* material=NULL; 1358 Param* param=NULL: 1354 1359 1355 1360 for ( object=objects.begin() ; object < objects.end(); object++ ){ … … 1358 1363 1359 1364 element=(Element*)(*object); 1360 element->UpdateInputs(solution,analysis_type,sub_analysis_type); 1365 element->UpdateInputsFromVector(vector,name,type); 1366 } 1367 else if(((*object)->Enum()==NodeEnum)){ 1368 1369 node=(Node*)(*object); 1370 node->UpdateInputsFromVector(vector,name,type); 1371 } 1372 else if(((*object)->Enum()==VertexEnum)){ 1373 1374 vertex=(Vertex*)(*object); 1375 vertex->UpdateInputsFromVector(vector,name,type); 1376 } 1377 else if(EnumIsLoad((*object)->Enum())){ 1378 1379 load=(Load*)(*object); 1380 load->UpdateInputsFromVector(vector,name,type); 1381 } 1382 else if(EnumIsMaterial((*object)->Enum())){ 1383 1384 material=(Material*)(*object); 1385 material->UpdateInputsFromVector(vector,name,type); 1386 } 1387 else if(((*object)->Enum()==ParamEnum)){ 1388 1389 param=(Param*)(*object); 1390 param->UpdateInputsFromVector(vector,name,type); 1391 } 1392 else ISSMERROR("%s%i%s"," object with id: ",(*object)->Id()," is not an element, in a function that deals only with elements!"); 1393 } 1394 } 1395 /*}}}*/ 1396 /*FUNCTION DataSet::UpdateInputsFromSolution{{{2*/ 1397 void DataSet::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 1398 1399 vector<Object*>::iterator object; 1400 Element* element=NULL; 1401 1402 for ( object=objects.begin() ; object < objects.end(); object++ ){ 1403 1404 if(EnumIsElement((*object)->Enum())){ 1405 1406 element=(Element*)(*object); 1407 element->UpdateInputsFromSolution(solution,analysis_type,sub_analysis_type); 1361 1408 } 1362 1409 else ISSMERROR("%s%i%s"," object with id: ",(*object)->Id()," is not an element, in a function that deals only with elements!"); -
issm/trunk/src/c/DataSet/DataSet.h
r3685 r3699 71 71 void CreateKMatrix(Mat Kgg, int analysis_type,int sub_analysis_type); 72 72 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type); 73 void UpdateInputs(double* solution,int analysis_type,int sub_analysis_type); 73 void UpdateInputsFromVector(double* vector,int name, int type); 74 void UpdateInputsFromSolution(double* solution,int analysis_type,int sub_analysis_type); 74 75 void AddInput(double value, int enum_type); 75 76 void PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type); -
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r3697 r3699 213 213 StabilizeConstraintsEnum, 214 214 PenaltyOffsetEnum, 215 ConstantEnum 215 216 /*}}}*/ 216 217 /*Parameters{{{1*/ -
issm/trunk/src/c/Makefile.am
r3685 r3699 289 289 ./Gradjx/Gradjx.h\ 290 290 ./Gradjx/Gradjx.cpp\ 291 ./UpdateInputsx/UpdateInputsx.h\ 292 ./UpdateInputsx/UpdateInputsx.cpp\ 291 ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\ 292 ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\ 293 ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\ 294 ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\ 293 295 ./UpdateGeometryx/UpdateGeometryx.h\ 294 296 ./UpdateGeometryx/UpdateGeometryx.cpp\ … … 712 714 ./Gradjx/Gradjx.h\ 713 715 ./Gradjx/Gradjx.cpp\ 714 ./UpdateInputsx/UpdateInputsx.h\ 715 ./UpdateInputsx/UpdateInputsx.cpp\ 716 ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\ 717 ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\ 718 ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\ 719 ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\ 716 720 ./UpdateGeometryx/UpdateGeometryx.h\ 717 721 ./UpdateGeometryx/UpdateGeometryx.cpp\ … … 882 886 bin_PROGRAMS = 883 887 else 884 bin_PROGRAMS = diagnostic.exe thermal.exe prognostic.exe prognostic2.exe balancedthickness.exe balancedthickness2.exe balancedvelocities.exe transient.exe steadystate.exe slopecompute.exe 888 dnl bin_PROGRAMS = diagnostic.exe thermal.exe prognostic.exe prognostic2.exe balancedthickness.exe balancedthickness2.exe balancedvelocities.exe transient.exe steadystate.exe slopecompute.exe 889 bin_PROGRAMS = diagnostic.exe 885 890 endif 886 891 -
issm/trunk/src/c/modules.h
r3684 r3699 27 27 #include "./ConfigureObjectsx/ConfigureObjectsx.h" 28 28 #include "./SystemMatricesx/SystemMatricesx.h" 29 #include "./UpdateInputsx/UpdateInputsx.h" 29 #include "./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h" 30 #include "./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h" 30 31 #include "./UpdateGeometryx/UpdateGeometryx.h" 31 32 #include "./UpdateVertexPositionsx/UpdateVertexPositionsx.h" -
issm/trunk/src/c/objects/Elements/Beam.cpp
r3687 r3699 291 291 } 292 292 /*}}}*/ 293 /*FUNCTION Beam::UpdateInputs {{{1*/294 void Beam::UpdateInputs (double* solution, int analysis_type, int sub_analysis_type){293 /*FUNCTION Beam::UpdateInputsFromSolution {{{1*/ 294 void Beam::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 295 295 ISSMERROR(" not supported yet!"); 296 296 } -
issm/trunk/src/c/objects/Elements/Beam.h
r3683 r3699 58 58 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type); 59 59 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type); 60 void UpdateInputs (double* solution, int analysis_type, int sub_analysis_type);60 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type); 61 61 void GetDofList(int* doflist,int* pnumberofdofs); 62 62 void GetDofList1(int* doflist); -
issm/trunk/src/c/objects/Elements/Element.h
r3683 r3699 28 28 virtual void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type)=0; 29 29 virtual void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type)=0; 30 virtual void UpdateInputs (double* solution, int analysis_type, int sub_analysis_type)=0;30 virtual void UpdateInputsFromSolutionFromSolution(double* solution, int analysis_type, int sub_analysis_type)=0; 31 31 virtual void GetNodes(void** nodes)=0; 32 32 virtual void* GetMatPar()=0; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r3687 r3699 358 358 } 359 359 /*}}}*/ 360 /*FUNCTION Penta::UpdateInputs {{{1*/361 void Penta::UpdateInputs (double* solution, int analysis_type, int sub_analysis_type){362 363 /*Just branch to the correct UpdateInputs generator, according to the type of analysis we are carrying out: */360 /*FUNCTION Penta::UpdateInputsFromSolution {{{1*/ 361 void Penta::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 362 363 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 364 364 if (analysis_type==ControlAnalysisEnum){ 365 365 366 UpdateInputs DiagnosticHoriz( solution,analysis_type,sub_analysis_type);366 UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type); 367 367 } 368 368 else if (analysis_type==DiagnosticAnalysisEnum){ … … 370 370 if (sub_analysis_type==HorizAnalysisEnum){ 371 371 372 UpdateInputs DiagnosticHoriz( solution,analysis_type,sub_analysis_type);372 UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type); 373 373 } 374 374 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); … … 377 377 else if (analysis_type==SlopecomputeAnalysisEnum){ 378 378 379 UpdateInputs SlopeCompute( solution,analysis_type,sub_analysis_type);379 UpdateInputsFromSolutionSlopeCompute( solution,analysis_type,sub_analysis_type); 380 380 } 381 381 else if (analysis_type==PrognosticAnalysisEnum){ 382 382 383 UpdateInputs Prognostic( solution,analysis_type,sub_analysis_type);383 UpdateInputsFromSolutionPrognostic( solution,analysis_type,sub_analysis_type); 384 384 } 385 385 else if (analysis_type==Prognostic2AnalysisEnum){ 386 386 387 UpdateInputs Prognostic2(solution,analysis_type,sub_analysis_type);387 UpdateInputsFromSolutionPrognostic2(solution,analysis_type,sub_analysis_type); 388 388 } 389 389 else if (analysis_type==BalancedthicknessAnalysisEnum){ 390 390 391 UpdateInputs Balancedthickness( solution,analysis_type,sub_analysis_type);391 UpdateInputsFromSolutionBalancedthickness( solution,analysis_type,sub_analysis_type); 392 392 } 393 393 else if (analysis_type==Balancedthickness2AnalysisEnum){ 394 394 395 UpdateInputs Balancedthickness2( solution,analysis_type,sub_analysis_type);395 UpdateInputsFromSolutionBalancedthickness2( solution,analysis_type,sub_analysis_type); 396 396 } 397 397 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 398 398 399 UpdateInputs Balancedvelocities( solution,analysis_type,sub_analysis_type);399 UpdateInputsFromSolutionBalancedvelocities( solution,analysis_type,sub_analysis_type); 400 400 } 401 401 else{ … … 405 405 } 406 406 /*Object functions*/ 407 /*FUNCTION Penta::UpdateInputs DiagnosticHoriz {{{1*/408 void Penta::UpdateInputs DiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){407 /*FUNCTION Penta::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/ 408 void Penta::UpdateInputsFromSolutionDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){ 409 409 410 410 … … 442 442 443 443 /*}}}*/ 444 /*FUNCTION Penta::UpdateInputs SlopeCompute {{{1*/445 void Penta::UpdateInputs SlopeCompute(double* solution, int analysis_type, int sub_analysis_type){444 /*FUNCTION Penta::UpdateInputsFromSolutionSlopeCompute {{{1*/ 445 void Penta::UpdateInputsFromSolutionSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){ 446 446 ISSMERROR(" not supported yet!"); 447 447 } 448 448 /*}}}*/ 449 /*FUNCTION Penta::UpdateInputs Prognostic {{{1*/450 void Penta::UpdateInputs Prognostic(double* solution, int analysis_type, int sub_analysis_type){449 /*FUNCTION Penta::UpdateInputsFromSolutionPrognostic {{{1*/ 450 void Penta::UpdateInputsFromSolutionPrognostic(double* solution, int analysis_type, int sub_analysis_type){ 451 451 ISSMERROR(" not supported yet!"); 452 452 } 453 453 /*}}}*/ 454 /*FUNCTION Penta::UpdateInputs Prognostic2 {{{1*/455 void Penta::UpdateInputs Prognostic2(double* solution, int analysis_type, int sub_analysis_type){454 /*FUNCTION Penta::UpdateInputsFromSolutionPrognostic2 {{{1*/ 455 void Penta::UpdateInputsFromSolutionPrognostic2(double* solution, int analysis_type, int sub_analysis_type){ 456 456 ISSMERROR(" not supported yet!"); 457 457 } 458 458 /*}}}*/ 459 /*FUNCTION Penta::UpdateInputs Balancedthickness {{{1*/460 void Penta::UpdateInputs Balancedthickness(double* solution, int analysis_type, int sub_analysis_type){459 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness {{{1*/ 460 void Penta::UpdateInputsFromSolutionBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){ 461 461 ISSMERROR(" not supported yet!"); 462 462 } 463 463 /*}}}*/ 464 /*FUNCTION Penta::UpdateInputs Balancedthickness2 {{{1*/465 void Penta::UpdateInputs Balancedthickness2(double* solution, int analysis_type, int sub_analysis_type){464 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness2 {{{1*/ 465 void Penta::UpdateInputsFromSolutionBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){ 466 466 ISSMERROR(" not supported yet!"); 467 467 } 468 468 /*}}}*/ 469 /*FUNCTION Penta::UpdateInputs Balancedvelocities {{{1*/470 void Penta::UpdateInputs Balancedvelocities(double* solution, int analysis_type, int sub_analysis_type){469 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedvelocities {{{1*/ 470 void Penta::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){ 471 471 ISSMERROR(" not supported yet!"); 472 472 } -
issm/trunk/src/c/objects/Elements/Penta.h
r3683 r3699 132 132 /*updates: */ 133 133 void UpdateFromDakota(void* inputs); 134 void UpdateInputs (double* solution, int analysis_type, int sub_analysis_type);135 void UpdateInputs DiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);136 void UpdateInputs SlopeCompute( double* solution,int analysis_type,int sub_analysis_type);137 void UpdateInputs Prognostic( double* solution,int analysis_type,int sub_analysis_type);138 void UpdateInputs Prognostic2(double* solution,int analysis_type,int sub_analysis_type);139 void UpdateInputs Balancedthickness( double* solution,int analysis_type,int sub_analysis_type);140 void UpdateInputs Balancedthickness2( double* solution,int analysis_type,int sub_analysis_type);141 void UpdateInputs Balancedvelocities( double* solution,int analysis_type,int sub_analysis_type);134 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type); 135 void UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type); 136 void UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type); 137 void UpdateInputsFromSolutionPrognostic( double* solution,int analysis_type,int sub_analysis_type); 138 void UpdateInputsFromSolutionPrognostic2(double* solution,int analysis_type,int sub_analysis_type); 139 void UpdateInputsFromSolutionBalancedthickness( double* solution,int analysis_type,int sub_analysis_type); 140 void UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type); 141 void UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type); 142 142 void AddInput(double value, int enum_type){ISSMERROR("not supporte yet!");} 143 143 -
issm/trunk/src/c/objects/Elements/Sing.cpp
r3687 r3699 238 238 } 239 239 /*}}}*/ 240 /*FUNCTION Sing::UpdateInputs {{{1*/241 void Sing::UpdateInputs (double* solution, int analysis_type, int sub_analysis_type){240 /*FUNCTION Sing::UpdateInputsFromSolution {{{1*/ 241 void Sing::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 242 242 ISSMERROR(" not supported yet!"); 243 243 } -
issm/trunk/src/c/objects/Elements/Sing.h
r3683 r3699 57 57 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type); 58 58 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type); 59 void UpdateInputs (double* solution, int analysis_type, int sub_analysis_type);59 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type); 60 60 void GetDofList(int* doflist,int* pnumberofdofs); 61 61 void GetDofList1(int* doflist); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r3687 r3699 357 357 } 358 358 /*}}}*/ 359 /*FUNCTION Tria::UpdateInputs {{{1*/360 void Tria::UpdateInputs (double* solution, int analysis_type, int sub_analysis_type){361 362 /*Just branch to the correct UpdateInputs generator, according to the type of analysis we are carrying out: */359 /*FUNCTION Tria::UpdateInputsFromSolution {{{1*/ 360 void Tria::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 361 362 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 363 363 if (analysis_type==ControlAnalysisEnum){ 364 364 365 UpdateInputs DiagnosticHoriz( solution,analysis_type,sub_analysis_type);365 UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type); 366 366 } 367 367 else if (analysis_type==DiagnosticAnalysisEnum){ … … 369 369 if (sub_analysis_type==HorizAnalysisEnum){ 370 370 371 UpdateInputs DiagnosticHoriz( solution,analysis_type,sub_analysis_type);371 UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type); 372 372 } 373 373 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); … … 376 376 else if (analysis_type==SlopecomputeAnalysisEnum){ 377 377 378 UpdateInputs SlopeCompute( solution,analysis_type,sub_analysis_type);378 UpdateInputsFromSolutionSlopeCompute( solution,analysis_type,sub_analysis_type); 379 379 } 380 380 else if (analysis_type==PrognosticAnalysisEnum){ 381 381 382 UpdateInputs Prognostic( solution,analysis_type,sub_analysis_type);382 UpdateInputsFromSolutionPrognostic( solution,analysis_type,sub_analysis_type); 383 383 } 384 384 else if (analysis_type==Prognostic2AnalysisEnum){ 385 385 386 UpdateInputs Prognostic2(solution,analysis_type,sub_analysis_type);386 UpdateInputsFromSolutionPrognostic2(solution,analysis_type,sub_analysis_type); 387 387 } 388 388 else if (analysis_type==BalancedthicknessAnalysisEnum){ 389 389 390 UpdateInputs Balancedthickness( solution,analysis_type,sub_analysis_type);390 UpdateInputsFromSolutionBalancedthickness( solution,analysis_type,sub_analysis_type); 391 391 } 392 392 else if (analysis_type==Balancedthickness2AnalysisEnum){ 393 393 394 UpdateInputs Balancedthickness2( solution,analysis_type,sub_analysis_type);394 UpdateInputsFromSolutionBalancedthickness2( solution,analysis_type,sub_analysis_type); 395 395 } 396 396 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 397 397 398 UpdateInputs Balancedvelocities( solution,analysis_type,sub_analysis_type);398 UpdateInputsFromSolutionBalancedvelocities( solution,analysis_type,sub_analysis_type); 399 399 } 400 400 else{ … … 404 404 } 405 405 /*}}}*/ 406 /*FUNCTION Tria::UpdateInputs DiagnosticHoriz {{{1*/407 void Tria::UpdateInputs DiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){406 /*FUNCTION Tria::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/ 407 void Tria::UpdateInputsFromSolutionDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){ 408 408 409 409 … … 441 441 442 442 /*}}}*/ 443 /*FUNCTION Tria::UpdateInputs SlopeCompute {{{1*/444 void Tria::UpdateInputs SlopeCompute(double* solution, int analysis_type, int sub_analysis_type){443 /*FUNCTION Tria::UpdateInputsFromSolutionSlopeCompute {{{1*/ 444 void Tria::UpdateInputsFromSolutionSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){ 445 445 ISSMERROR(" not supported yet!"); 446 446 } 447 447 /*}}}*/ 448 /*FUNCTION Tria::UpdateInputs Prognostic {{{1*/449 void Tria::UpdateInputs Prognostic(double* solution, int analysis_type, int sub_analysis_type){448 /*FUNCTION Tria::UpdateInputsFromSolutionPrognostic {{{1*/ 449 void Tria::UpdateInputsFromSolutionPrognostic(double* solution, int analysis_type, int sub_analysis_type){ 450 450 ISSMERROR(" not supported yet!"); 451 451 } 452 452 /*}}}*/ 453 /*FUNCTION Tria::UpdateInputs Prognostic2 {{{1*/454 void Tria::UpdateInputs Prognostic2(double* solution, int analysis_type, int sub_analysis_type){453 /*FUNCTION Tria::UpdateInputsFromSolutionPrognostic2 {{{1*/ 454 void Tria::UpdateInputsFromSolutionPrognostic2(double* solution, int analysis_type, int sub_analysis_type){ 455 455 ISSMERROR(" not supported yet!"); 456 456 } 457 457 /*}}}*/ 458 /*FUNCTION Tria::UpdateInputs Balancedthickness {{{1*/459 void Tria::UpdateInputs Balancedthickness(double* solution, int analysis_type, int sub_analysis_type){458 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness {{{1*/ 459 void Tria::UpdateInputsFromSolutionBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){ 460 460 ISSMERROR(" not supported yet!"); 461 461 } 462 462 /*}}}*/ 463 /*FUNCTION Tria::UpdateInputs Balancedthickness2 {{{1*/464 void Tria::UpdateInputs Balancedthickness2(double* solution, int analysis_type, int sub_analysis_type){463 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness2 {{{1*/ 464 void Tria::UpdateInputsFromSolutionBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){ 465 465 ISSMERROR(" not supported yet!"); 466 466 } 467 467 /*}}}*/ 468 /*FUNCTION Tria::UpdateInputs Balancedvelocities {{{1*/469 void Tria::UpdateInputs Balancedvelocities(double* solution, int analysis_type, int sub_analysis_type){468 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedvelocities {{{1*/ 469 void Tria::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){ 470 470 ISSMERROR(" not supported yet!"); 471 471 } -
issm/trunk/src/c/objects/Elements/Tria.h
r3683 r3699 117 117 /*updates:*/ 118 118 void UpdateFromDakota(void* inputs); 119 void UpdateInputs (double* solution, int analysis_type, int sub_analysis_type);120 void UpdateInputs DiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);121 void UpdateInputs SlopeCompute( double* solution,int analysis_type,int sub_analysis_type);122 void UpdateInputs Prognostic( double* solution,int analysis_type,int sub_analysis_type);123 void UpdateInputs Prognostic2(double* solution,int analysis_type,int sub_analysis_type);124 void UpdateInputs Balancedthickness( double* solution,int analysis_type,int sub_analysis_type);125 void UpdateInputs Balancedthickness2( double* solution,int analysis_type,int sub_analysis_type);126 void UpdateInputs Balancedvelocities( double* solution,int analysis_type,int sub_analysis_type);119 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type); 120 void UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type); 121 void UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type); 122 void UpdateInputsFromSolutionPrognostic( double* solution,int analysis_type,int sub_analysis_type); 123 void UpdateInputsFromSolutionPrognostic2(double* solution,int analysis_type,int sub_analysis_type); 124 void UpdateInputsFromSolutionBalancedthickness( double* solution,int analysis_type,int sub_analysis_type); 125 void UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type); 126 void UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type); 127 127 void AddInput(double value, int enum_type){ISSMERROR("not supporte yet!");} 128 128 -
issm/trunk/src/c/objects/FemModel.h
r3681 r3699 28 28 DataSet* loads; 29 29 DataSet* materials; 30 Parameters* 30 Parameters* parameters; 31 31 32 32 DofVec* partition; -
issm/trunk/src/c/parallel/diagnostic.cpp
r3673 r3699 3 3 */ 4 4 5 #include "../issm.h" 5 #include "../objects/objects.h" 6 #include "../shared/shared.h" 7 #include "../DataSet/DataSet.h" 6 8 #include "./parallel.h" 7 9 … … 33 35 34 36 double waitonlock=0; 35 int numberofnodes;36 37 37 double* u_g_initial=NULL;38 double* u_g_obs=NULL;39 double* weights=NULL;40 Param* param=NULL;41 int count;42 Parameters* parameters=NULL;43 44 38 /*time*/ 45 39 double start, finish; … … 90 84 91 85 /*get parameters: */ 92 model->FindParam(&qmu_analysis, "qmu_analysis");93 model->FindParam(&control_analysis, "control_analysis");94 model->FindParam(&waitonlock, "waitonlock");86 model->FindParam(&qmu_analysis,QmuAnalysisEnum); 87 model->FindParam(&control_analysis,ControlAnalysisEnum); 88 model->FindParam(&waitonlock,WaitOnLockEnum); 95 89 96 _printf_("initialize inputs:\n");97 model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);98 model->FindParam(&numberofnodes,"numberofnodes");99 100 inputs=new ParameterInputs;101 inputs->Add("velocity",u_g_initial,3,numberofnodes);102 103 if(control_analysis){104 model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum,HorizAnalysisEnum);105 model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum,HorizAnalysisEnum);106 inputs->Add("velocity_obs",u_g_obs,2,numberofnodes);107 inputs->Add("weights",weights,1,numberofnodes);108 }109 110 90 _printf_("initialize results:\n"); 111 91 results=new DataSet(ResultsEnum); … … 118 98 _printf_("call computational core:\n"); 119 99 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 120 diagnostic_core(results,model ,inputs);100 diagnostic_core(results,model); 121 101 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 122 102 … … 132 112 _printf_("call computational core:\n"); 133 113 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 134 control_core(results,model ,inputs);114 control_core(results,model); 135 115 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 136 116 … … 156 136 #ifdef _HAVE_DAKOTA_ 157 137 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 158 Qmux(model, inputs,DiagnosticAnalysisEnum,NoneAnalysisEnum);138 Qmux(model,DiagnosticAnalysisEnum,NoneAnalysisEnum); 159 139 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 160 140 #else … … 174 154 xfree((void**)&control_type); 175 155 delete model; 176 delete inputs;177 156 delete results; 178 157 delete processed_results; -
issm/trunk/src/c/parallel/diagnostic_core.cpp
r3598 r3699 10 10 #include "../issm.h" 11 11 12 void diagnostic_core(DataSet* results,Model* model , ParameterInputs* inputs){12 void diagnostic_core(DataSet* results,Model* model){ 13 13 14 14 extern int my_rank; … … 37 37 /*flags: */ 38 38 int verbose=0; 39 intqmu_analysis=0;39 bool qmu_analysis=0; 40 40 int dim=-1; 41 intishutter=0;42 intismacayealpattyn=0;43 intisstokes=0;41 bool ishutter=0; 42 bool ismacayealpattyn=0; 43 bool isstokes=0; 44 44 int numberofdofspernode_sl; 45 45 int numberofdofspernode_dh; … … 59 59 60 60 //first recover parameters common to all solutions 61 model->FindParam(&verbose, "verbose");62 model->FindParam(&dim, "dim");63 model->FindParam(&ishutter, "ishutter");64 model->FindParam(&ismacayealpattyn, "ismacayealpattyn");65 model->FindParam(&numberofnodes, "numberofnodes");66 model->FindParam(&isstokes, "isstokes");67 model->FindParam(&stokesreconditioning, "stokesreconditioning");68 model->FindParam(&numrifts, "numrifts");69 model->FindParam(&qmu_analysis, "qmu_analysis");61 model->FindParam(&verbose,VerboseEnum); 62 model->FindParam(&dim,DimEnum); 63 model->FindParam(&ishutter,IsHutterEnum); 64 model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum); 65 model->FindParam(&numberofnodes,NumberOfNodesEnum); 66 model->FindParam(&isstokes,IsStokesEnum); 67 model->FindParam(&stokesreconditioning,StokesReconditioningEnum); 68 model->FindParam(&numrifts,NumriftsEnum); 69 model->FindParam(&qmu_analysis,QmuAnalysisEnum); 70 70 71 71 /*recover fem models: */ … … 77 77 78 78 //specific parameters for specific models 79 fem_dh->FindParam(&numberofdofspernode_dh, "numberofdofspernode");80 fem_sl->FindParam(&numberofdofspernode_sl, "numberofdofspernode");81 fem_ds->FindParam(&numberofdofspernode_ds, "numberofdofspernode");79 fem_dh->FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum); 80 fem_sl->FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum); 81 fem_ds->FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum); 82 82 83 83 //for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: */ 84 84 if(qmu_analysis){ 85 model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum); 86 inputs->Add("velocity",u_g_initial,3,numberofnodes); 85 model->FindParam(&vx,VxEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vx,VxEnum,VertexEnum); 86 model->FindParam(&vy,VyEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vy,VyEnum,VertexEnum); 87 model->FindParam(&vz,VzEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vz,VzEnum,VertexEnum); 87 88 } 88 89 … … 90 91 91 92 if(verbose)_printf_("%s\n","computing surface slope (x and y derivatives)..."); 92 diagnostic_core_linear(&slopex,fem_sl, inputs,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum);93 diagnostic_core_linear(&slopey,fem_sl, inputs,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum);93 diagnostic_core_linear(&slopex,fem_sl,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum); 94 diagnostic_core_linear(&slopey,fem_sl,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum); 94 95 95 96 if (dim==3){ … … 106 107 107 108 if(verbose)_printf_("%s\n"," computing hutter velocities..."); 108 diagnostic_core_linear(&ug,fem_dhu, inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);109 diagnostic_core_linear(&ug,fem_dhu,DiagnosticAnalysisEnum,HutterAnalysisEnum); 109 110 110 111 if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal..."); 111 ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters, inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);112 ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters,DiagnosticAnalysisEnum,HutterAnalysisEnum); 112 113 113 114 if(verbose)_printf_("%s\n"," update boundary conditions for macyeal pattyn using hutter results..."); … … 123 124 124 125 if(verbose)_printf_("%s\n"," computing horizontal velocities..."); 125 diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh, inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);126 diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh,DiagnosticAnalysisEnum,HorizAnalysisEnum); 126 127 127 128 if(dim==2){ 128 129 if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal..."); 129 ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters, inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);130 ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,DiagnosticAnalysisEnum,HorizAnalysisEnum); 130 131 } 131 132 … … 140 141 if(verbose)_printf_("%s\n"," computing vertical velocities..."); 141 142 inputs->Add("velocity",ug_horiz,numberofdofspernode_dh,numberofnodes); 142 diagnostic_core_linear(&ug_vert,fem_dv, inputs,DiagnosticAnalysisEnum,VertAnalysisEnum);143 diagnostic_core_linear(&ug_vert,fem_dv,DiagnosticAnalysisEnum,VertAnalysisEnum); 143 144 144 145 if(verbose)_printf_("%s\n"," combining horizontal and vertical velocities..."); … … 150 151 151 152 if(verbose)_printf_("%s\n"," computing pressure according to Pattyn..."); 152 ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads, fem_dh->materials,fem_dh->parameters, inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);153 ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads, fem_dh->materials,fem_dh->parameters,DiagnosticAnalysisEnum,HorizAnalysisEnum); 153 154 154 155 if (isstokes){ … … 158 159 159 160 if(verbose)_printf_("%s\n","computing bed slope (x and y derivatives)..."); 160 diagnostic_core_linear(&slopex,fem_sl, inputs,SlopecomputeAnalysisEnum,BedXAnalysisEnum);161 diagnostic_core_linear(&slopey,fem_sl, inputs,SlopecomputeAnalysisEnum,BedYAnalysisEnum);161 diagnostic_core_linear(&slopex,fem_sl,SlopecomputeAnalysisEnum,BedXAnalysisEnum); 162 diagnostic_core_linear(&slopey,fem_sl,SlopecomputeAnalysisEnum,BedYAnalysisEnum); 162 163 FieldExtrudex( slopex, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopex",0); 163 164 FieldExtrudex( slopey, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopey",0); … … 182 183 if(verbose)_printf_("%s\n"," computing stokes velocities and pressure ..."); 183 184 VecFree(&ug); 184 diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds, inputs,DiagnosticAnalysisEnum,StokesAnalysisEnum);185 diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,DiagnosticAnalysisEnum,StokesAnalysisEnum); 185 186 186 187 //decondition" pressure
Note:
See TracChangeset
for help on using the changeset viewer.