Changeset 16042 for issm/trunk-jpl/src/c/classes/FemModel.cpp
- Timestamp:
- 08/30/13 11:44:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r16038 r16042 518 518 /*OK now count number of dofs and flag each nodes for each node i*/ 519 519 bool *flags = xNew<bool>(localnumnodes); 520 int *flagsindices = xNew<int>(localnumnodes); 520 521 int *d_connectivity = xNewZeroInit<int>(numnodes); 521 522 int *o_connectivity = xNewZeroInit<int>(numnodes); … … 523 524 int *all_connectivity_clone = xNewZeroInit<int>(numnodes); 524 525 526 /*Resetting flags to false at eahc iteration takes a lot of time, so we keep track of the flags 527 * to reset in flagsindices, initialized with -1*/ 528 for(i = 0;i<localnumnodes;i++) flags[i] = false; 529 for(i = 0;i<localnumnodes;i++) flagsindices[i] = -1; 530 525 531 /*Create connectivity vector*/ 526 532 for(i=0;i<nodes->Size();i++){ … … 528 534 if(node->InAnalysis(configuration_type)){ 529 535 530 /*Reinitialize flags to 0*/ 531 for(j=0;j<localnumnodes;j++) flags[j]=false; 536 /*Reinitialize flags to false*/ 537 j=0; 538 while(true){ 539 if(flagsindices[j]>=0){ 540 flags[flagsindices[j]] = false; 541 flagsindices[j] = -1; 542 j++; 543 } 544 else{ 545 break; 546 } 547 } 548 549 //for(j=0;j<localnumnodes;j++) flags[j]=false; 532 550 533 551 /*Loop over elements that hold node number i*/ 534 //if(head_e[node-> Sid()]==-1 && head_l[node->Sid()]==-1){535 // printf("[%i] vertex %i\n",IssmComm::GetRank(),node-> Sid()+1);552 //if(head_e[node->Lid()]==-1 && head_l[node->Lid()]==-1){ 553 // printf("[%i] vertex %i\n",IssmComm::GetRank(),node->Lid()+1); 536 554 //} 537 555 for(j=head_e[node->Sid()];j!=-1;j=next_e[j]){ 538 556 offset=count2offset_e[j]; 539 557 element=dynamic_cast<Element*>(elements->GetObjectByOffset(offset)); 540 element->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags, set1enum,set2enum);558 element->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,set1enum,set2enum); 541 559 if(node->IsClone()){ 542 560 connectivity_clone[node->Sid()]+=d_nz+o_nz; … … 550 568 offset=count2offset_l[j]; 551 569 load=dynamic_cast<Load*>(loads->GetObjectByOffset(offset)); 552 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags, set1enum,set2enum);570 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,set1enum,set2enum); 553 571 if(node->IsClone()){ 554 572 connectivity_clone[node->Sid()]+=d_nz+o_nz; … … 562 580 } 563 581 xDelete<bool>(flags); 582 xDelete<int>(flagsindices); 564 583 xDelete<int>(count2offset_e); 565 584 xDelete<int>(head_e);
Note:
See TracChangeset
for help on using the changeset viewer.