Ignore:
Timestamp:
11/15/13 15:41:42 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: AddToGlobal and condensation now done by SystemMatrices

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16788 r16789  
    23492349        /*clean-up*/
    23502350        delete gauss;
     2351}
     2352/*}}}*/
     2353/*FUNCTION Tria::ReduceMatrices {{{*/
     2354void Tria::ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){
     2355
     2356        /*Static condensation if requested*/
     2357        if(pe){
     2358                if(this->element_type==MINIcondensedEnum){
     2359                        int indices[2]={6,7};
     2360                        pe->StaticCondensation(Ke,2,&indices[0]);
     2361                }
     2362                else if(this->element_type==P1bubblecondensedEnum){
     2363                        int size   = nodes[3]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
     2364                        int offset = 0;
     2365                        for(int i=0;i<3;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
     2366                        int* indices=xNew<int>(size);
     2367                        for(int i=0;i<size;i++) indices[i] = offset+i;
     2368                        pe->StaticCondensation(Ke,size,indices);
     2369                        xDelete<int>(indices);
     2370                }
     2371        }
     2372
     2373        if(Ke){
     2374                if(this->element_type==MINIcondensedEnum){
     2375                        int indices[2]={6,7};
     2376                        Ke->StaticCondensation(2,&indices[0]);
     2377                }
     2378                else if(this->element_type==P1bubblecondensedEnum){
     2379                        int size   = nodes[3]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
     2380                        int offset = 0;
     2381                        for(int i=0;i<3;i++) offset+=nodes[i]->GetNumberOfDofs(NoneApproximationEnum,GsetEnum);
     2382                        int* indices=xNew<int>(size);
     2383                        for(int i=0;i<size;i++) indices[i] = offset+i;
     2384                        Ke->StaticCondensation(size,indices);
     2385                        xDelete<int>(indices);
     2386                }
     2387        }
     2388
     2389
    23512390}
    23522391/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.