Changeset 15387 for issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
- Timestamp:
- 07/02/13 08:01:44 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15386 r15387 2316 2316 2317 2317 #ifdef _HAVE_RESPONSES_ 2318 /*FUNCTION Tria::AverageOntoPartition {{{*/ 2319 void Tria::AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){ 2320 2321 bool already = false; 2322 int i,j; 2323 int partition[NUMVERTICES]; 2324 int offsetsid[NUMVERTICES]; 2325 int offsetdof[NUMVERTICES]; 2326 IssmDouble area; 2327 IssmDouble mean; 2328 2329 /*First, get the area: */ 2330 area=this->GetArea(); 2331 2332 /*Figure out the average for this element: */ 2333 this->GetVertexSidList(&offsetsid[0]); 2334 this->GetVertexPidList(&offsetdof[0]); 2335 mean=0; 2336 for(i=0;i<NUMVERTICES;i++){ 2337 partition[i]=reCast<int>(qmu_part[offsetsid[i]]); 2338 mean=mean+1.0/NUMVERTICES*vertex_response[offsetdof[i]]; 2339 } 2340 2341 /*Add contribution: */ 2342 for(i=0;i<NUMVERTICES;i++){ 2343 already=false; 2344 for(j=0;j<i;j++){ 2345 if (partition[i]==partition[j]){ 2346 already=true; 2347 break; 2348 } 2349 } 2350 if(!already){ 2351 partition_contributions->SetValue(partition[i],mean*area,ADD_VAL); 2352 partition_areas->SetValue(partition[i],area,ADD_VAL); 2353 }; 2354 } 2355 } 2356 /*}}}*/ 2318 2357 /*FUNCTION Tria::IceVolume {{{*/ 2319 2358 IssmDouble Tria::IceVolume(void){ … … 7028 7067 /*}}}*/ 7029 7068 #endif 7030 7031 #ifdef _HAVE_WRAPPERS_7032 /*FUNCTION Tria::AverageOntoPartition {{{*/7033 void Tria::AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){7034 7035 bool already = false;7036 int i,j;7037 int partition[NUMVERTICES];7038 int offsetsid[NUMVERTICES];7039 int offsetdof[NUMVERTICES];7040 IssmDouble area;7041 IssmDouble mean;7042 7043 /*First, get the area: */7044 area=this->GetArea();7045 7046 /*Figure out the average for this element: */7047 this->GetVertexSidList(&offsetsid[0]);7048 this->GetVertexPidList(&offsetdof[0]);7049 mean=0;7050 for(i=0;i<NUMVERTICES;i++){7051 partition[i]=reCast<int>(qmu_part[offsetsid[i]]);7052 mean=mean+1.0/NUMVERTICES*vertex_response[offsetdof[i]];7053 }7054 7055 /*Add contribution: */7056 for(i=0;i<NUMVERTICES;i++){7057 already=false;7058 for(j=0;j<i;j++){7059 if (partition[i]==partition[j]){7060 already=true;7061 break;7062 }7063 }7064 if(!already){7065 partition_contributions->SetValue(partition[i],mean*area,ADD_VAL);7066 partition_areas->SetValue(partition[i],area,ADD_VAL);7067 };7068 }7069 }7070 /*}}}*/7071 #endif
Note:
See TracChangeset
for help on using the changeset viewer.