Changeset 25386
- Timestamp:
- 08/12/20 11:10:05 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Loads/Channel.cpp
r25379 r25386 296 296 } 297 297 /*}}}*/ 298 void Channel::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/298 void Channel::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 299 299 300 300 /*Output */ … … 310 310 flags[this->nodes[i]->Lid()]=true; 311 311 312 int counter=0; 313 while(flagsindices[counter]>=0) counter++; 314 flagsindices[counter]=this->nodes[i]->Lid(); 312 flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid(); 313 flagsindices_counter[0]++; 315 314 316 315 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Channel.h
r24132 r25386 75 75 void ResetHooks(); 76 76 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 77 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);77 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 78 78 /*}}}*/ 79 79 /*Channel management:{{{*/ -
issm/trunk-jpl/src/c/classes/Loads/Load.h
r23588 r25386 37 37 virtual void ResetHooks()=0; 38 38 virtual void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0; 39 virtual void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum)=0;39 virtual void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum)=0; 40 40 }; 41 41 #endif -
issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp
r24089 r25386 273 273 } 274 274 /*}}}*/ 275 void Moulin::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/275 void Moulin::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 276 276 277 277 /*Output */ … … 284 284 flags[this->node->Lid()]=true; 285 285 286 int counter=0; 287 while(flagsindices[counter]>=0) counter++; 288 flagsindices[counter]=this->node->Lid(); 286 flagsindices[flagsindices_counter[0]]=this->node->Lid(); 287 flagsindices_counter[0]++; 289 288 290 289 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Moulin.h
r24089 r25386 74 74 void PenaltyCreatePVector(Vector<IssmDouble>* pf, IssmDouble kmax); 75 75 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 76 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);76 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 77 77 void ResetHooks(); 78 78 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp
r25379 r25386 285 285 } 286 286 /*}}}*/ 287 void Neumannflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/287 void Neumannflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 288 288 289 289 /*Output */ … … 299 299 flags[this->nodes[i]->Lid()]=true; 300 300 301 int counter=0; 302 while(flagsindices[counter]>=0) counter++; 303 flagsindices[counter]=this->nodes[i]->Lid(); 301 flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid(); 302 flagsindices_counter[0]++; 304 303 305 304 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Neumannflux.h
r23970 r25386 68 68 void ResetHooks(); 69 69 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 70 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);70 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 71 71 /*}}}*/ 72 72 /*Neumannflux management:{{{*/ -
issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
r25379 r25386 409 409 } 410 410 /*}}}*/ 411 void Numericalflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/411 void Numericalflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 412 412 413 413 /*Output */ … … 423 423 flags[this->nodes[i]->Lid()]=true; 424 424 425 int counter=0; 426 while(flagsindices[counter]>=0) counter++; 427 flagsindices[counter]=this->nodes[i]->Lid(); 425 flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid(); 426 flagsindices_counter[0]++; 428 427 429 428 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h
r24130 r25386 71 71 void ResetHooks(); 72 72 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 73 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);73 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 74 74 /*}}}*/ 75 75 /*Numericalflux management:{{{*/ -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r24240 r25386 278 278 } 279 279 /*}}}*/ 280 void Pengrid::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/280 void Pengrid::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 281 281 282 282 /*Output */ … … 289 289 flags[this->node->Lid()]=true; 290 290 291 int counter=0; 292 while(flagsindices[counter]>=0) counter++; 293 flagsindices[counter]=this->node->Lid(); 291 flagsindices[flagsindices_counter[0]]=this->node->Lid(); 292 flagsindices_counter[0]++; 294 293 295 294 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.h
r23959 r25386 68 68 void ResetHooks(); 69 69 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 70 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);70 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 71 71 /*}}}*/ 72 72 /*Pengrid management {{{*/ -
issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp
r24933 r25386 214 214 } 215 215 /*}}}*/ 216 void Penpair::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/216 void Penpair::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 217 217 218 218 /*Output */ … … 228 228 flags[this->nodes[i]->Lid()]=true; 229 229 230 flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid(); 231 flagsindices_counter[0]++; 230 232 int counter=0; 231 while(flagsindices[counter]>=0) counter++;232 flagsindices[counter]=this->nodes[i]->Lid();233 233 234 234 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Penpair.h
r23959 r25386 60 60 void ResetHooks(); 61 61 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 62 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);62 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 63 63 /*}}}*/ 64 64 /*Penpair management: {{{*/ -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp
r24933 r25386 373 373 } 374 374 /*}}}*/ 375 void Riftfront::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/375 void Riftfront::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum){/*{{{*/ 376 376 377 377 /*Output */ … … 387 387 flags[this->nodes[i]->Lid()]=true; 388 388 389 int counter=0; 390 while(flagsindices[counter]>=0) counter++; 391 flagsindices[counter]=this->nodes[i]->Lid(); 389 flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid(); 390 flagsindices_counter[0]++; 392 391 393 392 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.h
r24089 r25386 86 86 void ResetHooks(); 87 87 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 88 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);88 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int* flagsindices_counter,int set1_enum,int set2_enum); 89 89 /*}}}*/ 90 90 /*Riftfront specific routines: {{{*/ -
issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp
r25384 r25386 216 216 offset=count2offset_l[j]; 217 217 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(offset)); 218 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices, set1enum,set2enum);218 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,&flagsindices_counter,set1enum,set2enum); 219 219 if(node->IsClone()){ 220 220 connectivity_clone->SetValue(node->Pid(),d_nz+o_nz,ADD_VAL);
Note:
See TracChangeset
for help on using the changeset viewer.