Changeset 18039


Ignore:
Timestamp:
05/21/14 13:57:25 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added support for P0Interpolation

Location:
issm/trunk-jpl/src/c
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp

    r18036 r18039  
    199199
    200200        /*Intermediaries */
     201        int         Hinterpolation;
    201202        IssmDouble  vx,vy,vbar,nux,nuy,normdphi,dphi[2];
    202203        IssmDouble* xyz_list = NULL;
     
    232233        Input* nuy_input       = element->GetInput(BalancethicknessNuyEnum);   _assert_(nuy_input);
    233234
     235        switch(element->GetElementType()){
     236                case P1Enum: Hinterpolation = P0Enum; break;
     237                default:     _error_("not implemented");
     238        }
     239
    234240        Gauss* gauss=element->NewGauss();
    235         for (int iv=0;iv<numvertices;iv++){
    236                 gauss->GaussVertex(iv);
     241        for (int iv=0;iv<1;iv++){
     242                gauss->GaussNode(Hinterpolation,iv);//P0 Only for now
    237243
    238244                vx_input->GetInputValue(&vx,gauss);
     
    250256                vy_list[iv]        = -1./thickness_list[iv] * dphi[1];
    251257        }
    252         element->AddInput(ThicknessEnum,thickness_list,P1Enum);
    253         element->AddInput(VxEnum,vx_list,P1Enum);
    254         element->AddInput(VyEnum,vy_list,P1Enum);
     258        element->AddInput(ThicknessEnum,thickness_list,Hinterpolation);
     259        element->AddInput(VxEnum,vx_list,Hinterpolation);
     260        element->AddInput(VyEnum,vy_list,Hinterpolation);
    255261
    256262        /*Clean up and return*/
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r17978 r18039  
    904904                                        break;
    905905                                default:
    906                                         _error_("Input of type "<<EnumToStringx(input->GetResultInterpolation())<<" not supported");
     906                                        Gauss* gauss = this->NewGauss();
     907                                        input->GetInputValue(&value,gauss);
     908                                        delete gauss;
    907909                        }
    908910                        vector->SetValue(this->Sid(),value,INS_VAL);
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp

    r17679 r18039  
    121121int  PentaInput::GetResultInterpolation(void){
    122122
     123        if(this->element_type==P0Enum){
     124                return P0Enum;
     125        }
    123126        return P1Enum;
    124127
  • issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp

    r17679 r18039  
    8484int  TetraInput::GetResultInterpolation(void){
    8585
     86        if(this->element_type==P0Enum){
     87                return P0Enum;
     88        }
    8689        return P1Enum;
    8790
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp

    r17679 r18039  
    124124int  TriaInput::GetResultInterpolation(void){
    125125
     126        if(this->element_type==P0Enum){
     127                return P0Enum;
     128        }
    126129        return P1Enum;
    127130
  • issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp

    r16892 r18039  
    442442        /*update static arrays*/
    443443        switch(finiteelement){
     444                case P0Enum:
     445                        switch(iv){
     446                                case 0: coord1=1./3.; coord2=1./3.; coord3=1./3.; break;
     447                                default: _error_("node index should be 0");
     448                        }
     449                        break;
    444450                case P1Enum: case P1DGEnum:
    445451                        switch(iv){
Note: See TracChangeset for help on using the changeset viewer.