Changeset 25447
- Timestamp:
- 08/21/20 20:56:40 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r25446 r25447 3406 3406 for(int i=0;i<numnodes;i++){ 3407 3407 3408 if(!flags[this->nodes[i]->Lid()]){ 3408 int nodelid = this->nodes[i]->Lid(); 3409 if(!flags[nodelid]){ 3409 3410 3410 3411 /*flag current node so that no other element processes it*/ 3411 flags[ this->nodes[i]->Lid()]=true;3412 3413 flagsindices[flagsindices_counter[0]]= this->nodes[i]->Lid();3412 flags[nodelid]=true; 3413 3414 flagsindices[flagsindices_counter[0]]=nodelid; 3414 3415 flagsindices_counter[0]++; 3415 3416 -
issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp
r25386 r25447 130 130 for(i=0;i<femmodel->elements->Size();i++){ 131 131 element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 132 lidlist = xNew<int>(element->GetNumberOfNodes()); 132 int elementnumnodes = element->GetNumberOfNodes(); 133 lidlist = xNew<int>(elementnumnodes); 133 134 element->GetNodesLidList(lidlist); 134 135 135 for(j=0;j<element ->GetNumberOfNodes();j++){136 for(j=0;j<elementnumnodes;j++){ 136 137 index = lidlist[j]; 137 138 _assert_(index>=0 && index<numnodes); … … 141 142 head_e[index]=k++; 142 143 } 143 for(j=0;j<numnodesperelement-element->GetNumberOfNodes();j++) k++;144 k = k + (numnodesperelement-elementnumnodes); 144 145 145 146 xDelete<int>(lidlist); … … 153 154 for(i=0;i<femmodel->loads->Size();i++){ 154 155 load = xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i)); 155 lidlist = xNew<int>(load->GetNumberOfNodes()); 156 int loadnumnodes = load->GetNumberOfNodes(); 157 lidlist = xNew<int>(loadnumnodes); 156 158 load->GetNodesLidList(lidlist); 157 159 158 for(j=0;j<load ->GetNumberOfNodes();j++){160 for(j=0;j<loadnumnodes;j++){ 159 161 index = lidlist[j]; 160 162 _assert_(index>=0 && index<numnodes); … … 164 166 head_l[index]=k++; 165 167 } 166 for(j=0;j<numnodesperload-load->GetNumberOfNodes();j++) k++;168 k = k + (numnodesperload-loadnumnodes); 167 169 168 170 xDelete<int>(lidlist); … … 186 188 for(i=0;i<femmodel->nodes->Size();i++){ 187 189 Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i)); 190 int lid = node->Lid(); 191 int pid = node->Pid(); 188 192 189 193 /*Reinitialize flags to false*/ … … 201 205 flagsindices_counter = 0; 202 206 203 for(j=head_e[ node->Lid()];j!=-1;j=next_e[j]){207 for(j=head_e[lid];j!=-1;j=next_e[j]){ 204 208 offset=count2offset_e[j]; 205 209 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(offset)); 206 210 element->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,&flagsindices_counter,set1enum,set2enum); 207 211 if(node->IsClone()){ 208 connectivity_clone->SetValue( node->Pid(),d_nz+o_nz,ADD_VAL);209 } 210 else{ 211 d_connectivity[ node->Lid()]+=d_nz;212 o_connectivity[ node->Lid()]+=o_nz;213 } 214 } 215 for(j=head_l[ node->Lid()];j!=-1;j=next_l[j]){212 connectivity_clone->SetValue(pid,d_nz+o_nz,ADD_VAL); 213 } 214 else{ 215 d_connectivity[lid]+=d_nz; 216 o_connectivity[lid]+=o_nz; 217 } 218 } 219 for(j=head_l[lid];j!=-1;j=next_l[j]){ 216 220 offset=count2offset_l[j]; 217 221 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(offset)); 218 222 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,&flagsindices_counter,set1enum,set2enum); 219 223 if(node->IsClone()){ 220 connectivity_clone->SetValue( node->Pid(),d_nz+o_nz,ADD_VAL);221 } 222 else{ 223 d_connectivity[ node->Lid()]+=d_nz;224 o_connectivity[ node->Lid()]+=o_nz;224 connectivity_clone->SetValue(pid,d_nz+o_nz,ADD_VAL); 225 } 226 else{ 227 d_connectivity[lid]+=d_nz; 228 o_connectivity[lid]+=o_nz; 225 229 } 226 230 } … … 247 251 for(i=0;i<femmodel->nodes->Size();i++){ 248 252 Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i)); 253 int lid = node->Lid(); 249 254 if(!node->IsClone()){ 250 255 for(j=0;j<node->fsize;j++){ 251 256 _assert_(count<m); 252 d_nnz[count]=numberofdofspernode*(d_connectivity[ node->Lid()] + reCast<int>(serial_connectivity_clone[node->Lid()]));253 o_nnz[count]=numberofdofspernode*(o_connectivity[ node->Lid()] + reCast<int>(serial_connectivity_clone[node->Lid()]));257 d_nnz[count]=numberofdofspernode*(d_connectivity[lid] + reCast<int>(serial_connectivity_clone[lid])); 258 o_nnz[count]=numberofdofspernode*(o_connectivity[lid] + reCast<int>(serial_connectivity_clone[lid])); 254 259 if(d_nnz[count]>n) d_nnz[count]=n; 255 260 if(o_nnz[count]>N-n) o_nnz[count]=N-n;
Note:
See TracChangeset
for help on using the changeset viewer.