Changeset 13894
- Timestamp:
- 11/07/12 13:47:20 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r13889 r13894 353 353 Vector<IssmDouble> *df = NULL; 354 354 355 //bool oldalloc=false; 355 356 bool oldalloc=true; 356 357 … … 413 414 int *next = NULL; 414 415 int *count2offset = NULL; 416 int * sidlist = NULL; 415 417 416 418 /*output*/ … … 425 427 int numnodes = nodes->NumberOfNodes(analysis_type); 426 428 int numberofdofspernode = nodes->MaxNumDofs(configuration_type,GsetEnum); 429 int N = nodes->NumberOfDofs(analysis_type,set2enum); 427 430 int m = nodes->NumberOfDofsLocal(analysis_type,set1enum); 428 431 int numnodesperobject = elements->MaxNumNodes(); … … 439 442 k=0; 440 443 for(i=0;i<elements->Size();i++){ 441 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 442 for(int j=0;j<numnodesperobject;j++){ 443 index =dynamic_cast<Tria*>(element)->nodes[j]->sid;//starts at 0 for a given analysis 444 _assert_(k>=0 && k<numnodes*elements->Size() && index>=0 && index<numnodes); 444 element = dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 445 sidlist = xNew<int>(element->GetNumberOfNodes()); 446 element->GetNodesSidList(sidlist); 447 448 for(j=0;j<element->GetNumberOfNodes();j++){ 449 index = sidlist[j]; 450 _assert_(index>=0 && index<numnodes); 445 451 446 452 count2offset[k]=i; … … 448 454 head[index]=k++; 449 455 } 456 for(j=0;j<numnodesperobject-element->GetNumberOfNodes();j++) k++; 457 458 xDelete<int>(sidlist); 450 459 } 451 460 … … 503 512 d_nnz[count]=numberofdofspernode*(d_connectivity[node->Sid()] + all_connectivity_clone[node->Sid()]); 504 513 o_nnz[count]=numberofdofspernode*(o_connectivity[node->Sid()] + all_connectivity_clone[node->Sid()]); 505 //if(d_nnz[count]>m) d_nnz[count]=m;506 //if(o_nnz[count]>fsize-m) o_nnz[count]=fsize-m;514 if(d_nnz[count]>m) d_nnz[count]=m; 515 if(o_nnz[count]>N-m) o_nnz[count]=N-m; 507 516 count++; 508 517 } … … 719 728 IssmDouble kmax; 720 729 721 722 730 /*Display message*/ 723 731 if(VerboseModule()) _pprintLine_(" Generating matrices"); … … 774 782 //Kff->AllocationInfo(); 775 783 //Kfs->AllocationInfo(); 776 //_error_("STOP");777 784 778 785 /*Assign output pointers: */
Note:
See TracChangeset
for help on using the changeset viewer.