Changeset 13860
- Timestamp:
- 10/31/12 10:38:04 (12 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/objects/Elements
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/objects/Elements/Element.h
r13623 r13860 29 29 virtual void Configure(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters)=0; 30 30 virtual void SetCurrentConfiguration(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters)=0; 31 virtual void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int set1_enum,int set2_enum)=0; 31 32 virtual void CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,Vector<IssmDouble>* df)=0; 32 33 virtual void CreatePVector(Vector<IssmDouble>* pf)=0; -
issm/trunk-jpl/src/c/classes/objects/Elements/Penta.h
r13623 r13860 80 80 void Configure(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters); 81 81 void SetCurrentConfiguration(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters); 82 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int set1_enum,int set2_enum){_error_("not implemented yet");}; 82 83 void CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,Vector<IssmDouble>* df); 83 84 void CreatePVector(Vector<IssmDouble>* pf); -
issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp
r13813 r13860 160 160 }; 161 161 } 162 } 163 /*}}}*/ 164 /*FUNCTION Tria::GetDofList {{{*/ 165 void Tria::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int set1_enum,int set2_enum){ 166 167 int index; 168 int set_enum; 169 170 /*Find node index*/ 171 index = this->GetNodeIndex(node); 172 173 /*Output */ 174 int d_nz = 0; 175 int o_nz = 0; 176 177 /*Loop over all nodes*/ 178 for(int i=0;i<3;i++){ 179 180 if(!flags[this->nodes[i]->Sid()]){ 181 182 /*flag current node so that no other element processes it*/ 183 flags[this->nodes[i]->Sid()]=true; 184 185 /*What set are we interested in?*/ 186 if(i!=index) 187 set_enum=set2_enum; 188 else 189 set_enum=set1_enum; 190 191 /*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/ 192 switch(set2_enum){ 193 case FsetEnum: 194 if(nodes[i]->indexing.fsize){ 195 if(this->nodes[i]->IsClone()) 196 o_nz += 1; 197 else 198 d_nz += 1; 199 } 200 break; 201 case GsetEnum: 202 if(nodes[i]->indexing.gsize){ 203 if(this->nodes[i]->IsClone()) 204 o_nz += 1; 205 else 206 d_nz += 1; 207 } 208 break; 209 case SsetEnum: 210 if(nodes[i]->indexing.ssize){ 211 if(this->nodes[i]->IsClone()) 212 o_nz += 1; 213 else 214 d_nz += 1; 215 } 216 break; 217 default: _error_("not supported"); 218 } 219 } 220 } 221 222 /*Assign output pointers: */ 223 *pd_nz=d_nz; 224 *po_nz=o_nz; 162 225 } 163 226 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Elements/Tria.h
r13623 r13860 76 76 void Configure(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters); 77 77 void SetCurrentConfiguration(Elements* elements,Loads* loads,DataSet* nodes,Materials* materials,Parameters* parameters); 78 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int set1_enum,int set2_enum); 78 79 void CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,Vector<IssmDouble>* df); 79 80 void CreatePVector(Vector<IssmDouble>* pf);
Note:
See TracChangeset
for help on using the changeset viewer.