Changeset 87
- Timestamp:
- 04/28/09 15:11:08 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
r72 r87 66 66 double tria_meanvel;/*!scaling ratio for velocities*/ 67 67 double tria_epsvel; /*!minimum velocity to avoid infinite velocity ratios*/ 68 double tria_viscosity_overshoot;69 68 70 69 /*matice constructor input: */ … … 118 117 int node_onbed; 119 118 int node_onsurface; 119 int node_upper_node_id; 120 120 int node_numdofs; 121 121 … … 274 274 tria_epsvel=model->epsvel; 275 275 276 /*viscosity_overshoot*/277 tria_viscosity_overshoot=model->viscosity_overshoot;278 279 276 /*Create tria element using its constructor:*/ 280 tria=new Tria(tria_id, tria_mid, tria_mparid, tria_g, tria_h, tria_s, tria_b, tria_k, tria_friction_type, tria_p, tria_q, tria_shelf, tria_meanvel, tria_epsvel , tria_viscosity_overshoot);277 tria=new Tria(tria_id, tria_mid, tria_mparid, tria_g, tria_h, tria_s, tria_b, tria_k, tria_friction_type, tria_p, tria_q, tria_shelf, tria_meanvel, tria_epsvel); 281 278 282 279 /*Add tria element to elements dataset: */ … … 537 534 if (strcmp(model->meshtype,"3d")==0){ 538 535 ModelFetchData((void**)&model->deadgrids,NULL,NULL,model_handle,"deadgrids","Matrix","Mat"); 536 ModelFetchData((void**)&model->uppernodes,NULL,NULL,model_handle,"uppergrids","Matrix","Mat"); 539 537 } 540 538 ModelFetchData((void**)&model->x,NULL,NULL,model_handle,"x","Matrix","Mat"); … … 576 574 node_onbed=(int)model->gridonbed[i]; 577 575 node_onsurface=(int)model->gridonsurface[i]; 576 577 if (strcmp(model->meshtype,"3d")==0){ 578 if (isnan(model->uppernodes[i])){ 579 node_upper_node_id=node_id; //nodes on surface do not have upper nodes, only themselves. 580 } 581 else{ 582 node_upper_node_id=(int)model->uppernodes[i]; 583 } 584 } 585 else{ 586 /*If we are running 2d, upper_node does not mean much. Just point towards itself!:*/ 587 node_upper_node_id=node_id; 588 } 578 589 579 590 /*Create node using its constructor: */ 580 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface );591 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id); 581 592 582 593 /*set single point constraints.: */ 583 594 if (strcmp(model->meshtype,"3d")==0){ 584 /*On a 3d mesh, we may have collapsed grids. Spc all their dofs: */595 /*On a 3d mesh, we may have collapsed elements, hence dead grids. Freeze them out: */ 585 596 if (model->deadgrids[i]){ 586 for(k= 0;k<node_numdofs;k++){587 node-> DofInSSet(k);597 for(k=1;k<=node_numdofs;k++){ 598 node->FreezeDof(k); 588 599 } 589 600 } … … 610 621 xfree((void**)&model->gridonbed); 611 622 xfree((void**)&model->gridonsurface); 623 xfree((void**)&model->uppernodes); 612 624 613 625 cleanup_and_return:
Note:
See TracChangeset
for help on using the changeset viewer.