Changeset 1025
- Timestamp:
- 06/19/09 09:49:23 (16 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
r982 r1025 120 120 int node_partitionborder=0; 121 121 double node_x[3]; 122 double node_sigma; 122 123 int node_onbed; 123 124 int node_onsurface; … … 578 579 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 579 580 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 581 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 582 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 580 583 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 581 584 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 608 611 #endif 609 612 610 611 613 node_x[0]=model->x[i]; 612 614 node_x[1]=model->y[i]; 613 615 node_x[2]=model->z[i]; 614 616 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 615 617 616 618 node_onbed=(int)model->gridonbed[i]; … … 633 635 634 636 /*Create node using its constructor: */ 635 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);637 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 636 638 637 639 /*set single point constraints.: */ … … 668 670 xfree((void**)&model->y); 669 671 xfree((void**)&model->z); 672 xfree((void**)&model->thickness); 673 xfree((void**)&model->bed); 670 674 xfree((void**)&model->gridonbed); 671 675 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp
r982 r1025 92 92 int node_partitionborder=0; 93 93 double node_x[3]; 94 double node_sigma; 94 95 int node_onbed; 95 96 int node_onsurface; … … 325 326 xfree((void**)&model->thickness); 326 327 xfree((void**)&model->surface); 328 xfree((void**)&model->bed); 327 329 xfree((void**)&model->gridonsurface); 328 330 xfree((void**)&model->uppernodes); … … 363 365 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 364 366 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 367 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 368 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 365 369 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 366 370 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 368 372 ModelFetchData((void**)&model->gridonicesheet,NULL,NULL,model_handle,"gridonicesheet","Matrix","Mat"); 369 373 ModelFetchData((void**)&model->gridoniceshelf,NULL,NULL,model_handle,"gridoniceshelf","Matrix","Mat"); 370 371 374 372 375 /*Get number of dofs per node: */ … … 393 396 #endif 394 397 395 396 398 node_x[0]=model->x[i]; 397 399 node_x[1]=model->y[i]; 398 400 node_x[2]=model->z[i]; 399 401 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 400 402 401 403 node_onbed=(int)model->gridonbed[i]; … … 418 420 419 421 /*Create node using its constructor: */ 420 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);422 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 421 423 422 424 /*set single point constraints.: */ … … 446 448 xfree((void**)&model->y); 447 449 xfree((void**)&model->z); 450 xfree((void**)&model->thickness); 451 xfree((void**)&model->bed); 448 452 xfree((void**)&model->gridonbed); 449 453 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
r982 r1025 100 100 int node_partitionborder=0; 101 101 double node_x[3]; 102 double node_sigma; 102 103 int node_onbed; 103 104 int node_onsurface; … … 425 426 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 426 427 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 428 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 429 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 427 430 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 428 431 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 457 460 #endif 458 461 459 460 462 node_x[0]=model->x[i]; 461 463 node_x[1]=model->y[i]; 462 464 node_x[2]=model->z[i]; 463 465 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 464 466 465 467 node_onbed=(int)model->gridonbed[i]; … … 482 484 483 485 /*Create node using its constructor: */ 484 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);486 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 485 487 486 488 /*set single point constraints.: */ … … 518 520 xfree((void**)&model->y); 519 521 xfree((void**)&model->z); 522 xfree((void**)&model->thickness); 523 xfree((void**)&model->bed); 520 524 xfree((void**)&model->gridonbed); 521 525 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
r982 r1025 99 99 int node_partitionborder=0; 100 100 double node_x[3]; 101 double node_sigma; 101 102 int node_onbed; 102 103 int node_onsurface; … … 347 348 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 348 349 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 350 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 351 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 349 352 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 350 353 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 377 380 #endif 378 381 379 380 382 node_x[0]=model->x[i]; 381 383 node_x[1]=model->y[i]; 382 384 node_x[2]=model->z[i]; 383 385 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 384 386 385 387 node_onbed=(int)model->gridonbed[i]; … … 396 398 397 399 /*Create node using its constructor: */ 398 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);400 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 399 401 400 402 /*Add node to nodes dataset: */ … … 417 419 xfree((void**)&model->y); 418 420 xfree((void**)&model->z); 421 xfree((void**)&model->thickness); 422 xfree((void**)&model->bed); 419 423 xfree((void**)&model->gridonbed); 420 424 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
r982 r1025 99 99 int node_partitionborder=0; 100 100 double node_x[3]; 101 double node_sigma; 101 102 int node_onbed; 102 103 int node_onsurface; … … 392 393 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 393 394 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 395 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 396 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 394 397 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 395 398 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 422 425 #endif 423 426 424 425 427 node_x[0]=model->x[i]; 426 428 node_x[1]=model->y[i]; 427 429 node_x[2]=model->z[i]; 428 430 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 429 431 430 432 node_onbed=(int)model->gridonbed[i]; … … 447 449 448 450 /*Create node using its constructor: */ 449 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);451 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 450 452 451 453 /*set single point constraints.: */ … … 474 476 xfree((void**)&model->y); 475 477 xfree((void**)&model->z); 478 xfree((void**)&model->thickness); 479 xfree((void**)&model->bed); 476 480 xfree((void**)&model->gridonbed); 477 481 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
r982 r1025 121 121 int node_partitionborder=0; 122 122 double node_x[3]; 123 double node_sigma; 123 124 int node_onbed; 124 125 int node_onsurface; … … 462 463 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 463 464 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 465 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 466 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 464 467 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 465 468 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 492 495 #endif 493 496 494 495 497 node_x[0]=model->x[i]; 496 498 node_x[1]=model->y[i]; 497 499 node_x[2]=model->z[i]; 498 500 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 499 501 500 502 node_onbed=(int)model->gridonbed[i]; … … 517 519 518 520 /*Create node using its constructor: */ 519 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);521 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 520 522 521 523 /*set single point constraints.: */ … … 547 549 xfree((void**)&model->y); 548 550 xfree((void**)&model->z); 551 xfree((void**)&model->thickness); 552 xfree((void**)&model->bed); 549 553 xfree((void**)&model->gridonbed); 550 554 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
r816 r1025 99 99 int node_partitionborder=0; 100 100 double node_x[3]; 101 double node_sigma; 101 102 int node_onbed; 102 103 int node_onsurface; … … 398 399 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 399 400 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 401 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 402 ModelFetchData((void**)&model->surface,NULL,NULL,model_handle,"surface","Matrix","Mat"); 400 403 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 401 404 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 428 431 #endif 429 432 430 431 433 node_x[0]=model->x[i]; 432 434 node_x[1]=model->y[i]; 433 435 node_x[2]=model->z[i]; 434 436 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 435 437 436 438 node_onbed=(int)model->gridonbed[i]; … … 453 455 454 456 /*Create node using its constructor: */ 455 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);457 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 456 458 457 459 /*set single point constraints.: */ … … 483 485 xfree((void**)&model->y); 484 486 xfree((void**)&model->z); 487 xfree((void**)&model->thickness); 488 xfree((void**)&model->bed); 485 489 xfree((void**)&model->gridonbed); 486 490 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
r989 r1025 100 100 int node_partitionborder=0; 101 101 double node_x[3]; 102 double node_sigma; 102 103 int node_onbed; 103 104 int node_onsurface; … … 396 397 ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat"); 397 398 ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat"); 399 ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat"); 400 ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat"); 398 401 ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat"); 399 402 ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat"); … … 426 429 node_x[1]=model->y[i]; 427 430 node_x[2]=model->z[i]; 431 node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]); 428 432 429 433 node_onbed=(int)model->gridonbed[i]; … … 446 450 447 451 /*Create node using its constructor: */ 448 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_ onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);452 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet); 449 453 450 454 /*Add node to nodes dataset: */ … … 467 471 xfree((void**)&model->y); 468 472 xfree((void**)&model->z); 473 xfree((void**)&model->thickness); 474 xfree((void**)&model->bed); 469 475 xfree((void**)&model->gridonbed); 470 476 xfree((void**)&model->gridonsurface); -
issm/trunk/src/c/objects/Node.cpp
r984 r1025 21 21 return; 22 22 } 23 Node::Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3], int node_onbed,int node_onsurface,int node_upper_node_id,int node_onshelf,int node_onsheet){23 Node::Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],double node_sigma,int node_onbed,int node_onsurface,int node_upper_node_id,int node_onshelf,int node_onsheet){ 24 24 25 25 int i; … … 31 31 x[1]=node_x[1]; 32 32 x[2]=node_x[2]; 33 sigma=node_sigma; 33 34 onbed=node_onbed; 34 35 onsurface=node_onsurface; … … 66 67 printf(" numberofdofs: %i\n",numberofdofs); 67 68 printf(" x=[%g,%g,%g]\n",x[0],x[1],x[2]); 69 printf(" sigma=%g\n",sigma); 68 70 printf(" onbed: %i\n",onbed); 69 71 printf(" onsurface: %i\n",onsurface); … … 102 104 printf(" numberofdofs: %i\n",numberofdofs); 103 105 printf(" x=[%g,%g,%g]\n",x[0],x[1],x[2]); 106 printf(" sigma=%g\n",sigma); 104 107 printf(" onbed: %i\n",onbed); 105 108 printf(" onsurface: %i\n",onsurface); … … 147 150 memcpy(marshalled_dataset,&numberofdofs,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs); 148 151 memcpy(marshalled_dataset,&x,sizeof(x));marshalled_dataset+=sizeof(x); 152 memcpy(marshalled_dataset,&sigma,sizeof(sigma));marshalled_dataset+=sizeof(sigma); 149 153 memcpy(marshalled_dataset,&onbed,sizeof(onbed));marshalled_dataset+=sizeof(onbed); 150 154 memcpy(marshalled_dataset,&onsurface,sizeof(onsurface));marshalled_dataset+=sizeof(onsurface); … … 172 176 sizeof(numberofdofs)+ 173 177 sizeof(x)+ 178 sizeof(sigma)+ 174 179 sizeof(onbed)+ 175 180 sizeof(onsurface)+ … … 208 213 memcpy(&numberofdofs,marshalled_dataset,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs); 209 214 memcpy(&x,marshalled_dataset,sizeof(x));marshalled_dataset+=sizeof(x); 215 memcpy(&sigma,marshalled_dataset,sizeof(sigma));marshalled_dataset+=sizeof(sigma); 210 216 memcpy(&onbed,marshalled_dataset,sizeof(onbed));marshalled_dataset+=sizeof(onbed); 211 217 memcpy(&onsurface,marshalled_dataset,sizeof(onsurface));marshalled_dataset+=sizeof(onsurface); … … 484 490 double Node::GetY(){return x[1];} 485 491 double Node::GetZ(){return x[2];} 492 double Node::GetSigma(){return sigma;} 486 493 487 494 Object* Node::copy() { … … 761 768 762 769 int dof; 770 double s; 763 771 764 772 dof=this->GetDofList1(); 765 766 if(onbed){ 767 768 /*this node is on the bed, set its z position to the new bed: */ 769 this->x[2]=bed[dof]; 770 } 771 else if (onsurface){ 772 773 /*this node is on the surface, set its z position to the new bed+ new thickness: */ 774 this->x[2]=bed[dof]+thickness[dof]; 775 } 776 else{ 777 /*do nothing, we only update grids belonging to the exterior layers: */ 778 } 779 } 773 s=this->GetSigma(); 774 775 /*sigma remains constant. z=bed+sigma*thickness*/ 776 this->x[2]=bed[dof]+s*thickness[dof]; 777 778 } -
issm/trunk/src/c/objects/Node.h
r848 r1025 21 21 int clone; /*!this nodes is one the partition border, and is cloned*/ 22 22 double x[3]; /*! coordinates*/ 23 double sigma; /*! sigma = (z-bed)/thickness*/ 23 24 int onbed; /*! for 3d, on bedrock*/ 24 25 int onsurface; /*! for 3d, on surface*/ … … 43 44 44 45 Node(); 45 Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3], int node_onbed,int node_onsurface,int upper_node_id,int onshelf,int onsheet);46 Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],double sigma,int node_onbed,int node_onsurface,int upper_node_id,int onshelf,int onsheet); 46 47 ~Node(); 47 48 … … 74 75 double GetY(); 75 76 double GetZ(); 77 double GetSigma(); 76 78 Object* copy(); 77 79 void UpdateFromInputs(void* inputs);
Note:
See TracChangeset
for help on using the changeset viewer.