Changeset 15353


Ignore:
Timestamp:
06/28/13 17:08:54 (12 years ago)
Author:
bdef
Message:

CHG: Added a GetSOlutionFromInputOneDof in place of the three existing Hydrologicaal GetSolutionfromInputs

Location:
issm/trunk-jpl/src/c/classes/Elements
Files:
2 edited

Legend:

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

    r15352 r15353  
    336336                        _error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
    337337        }
    338 
    339338}
    340339/*}}}*/
     
    14851484        #ifdef _HAVE_HYDROLOGY_
    14861485        case HydrologyShreveAnalysisEnum:
    1487                 GetSolutionFromInputsHydrologyShreve(solution);
     1486                GetSolutionFromInputsOneDof(solution,WatercolumnEnum);
    14881487                break;
    14891488        case HydrologyDCInefficientAnalysisEnum:
    1490                 GetSolutionFromInputsHydrologyDCInefficient(solution);
     1489                GetSolutionFromInputsOneDof(solution,SedimentHeadEnum);
    14911490                break;
    14921491        case HydrologyDCEfficientAnalysisEnum:
    1493                 GetSolutionFromInputsHydrologyDCEfficient(solution);
     1492                GetSolutionFromInputsOneDof(solution,EplHeadEnum);
    14941493                break;
    14951494        #endif
     
    63396338}
    63406339/*}}}*/
    6341 /*FUNCTION Tria::GetSolutionFromInputsHydrologyShreve{{{*/
    6342 void  Tria::GetSolutionFromInputsHydrologyShreve(Vector<IssmDouble>* solution){
     6340/*FUNCTION Tria::GetSolutionFromInputsOneDof{{{*/
     6341void  Tria::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){
     6342       
    63436343        const int    numdof=NDOF1*NUMVERTICES;
    63446344
    63456345        int         i;
    63466346        int        *doflist = NULL;
    6347         IssmDouble  watercolumn;
     6347        IssmDouble  enum_value;
    63486348        IssmDouble  values[numdof];
    63496349        GaussTria  *gauss   = NULL;
     
    63536353
    63546354        /*Get inputs*/
    6355         Input* watercolumn_input=inputs->GetInput(WatercolumnEnum); _assert_(watercolumn_input);
    6356 
    6357         /*Ok, we have watercolumn values, fill in watercolumn array: */
     6355        Input* enum_input=inputs->GetInput(enum_type); _assert_(enum_input);
     6356
     6357        /*Ok, we have the values, fill in the array: */
    63586358        /*P1 element only for now*/
    63596359        gauss=new GaussTria();
     
    63626362                gauss->GaussVertex(i);
    63636363
    6364                 /*Recover watercolumn*/
    6365                 watercolumn_input->GetInputValue(&watercolumn,gauss);
    6366                 values[i]=watercolumn;
    6367         }
    6368 
    6369         solution->SetValues(numdof,doflist,values,INS_VAL);
    6370 
    6371         /*Free ressources:*/
    6372         delete gauss;
    6373         xDelete<int>(doflist);
    6374 }
    6375 /*}}}*/
    6376 /*FUNCTION Tria::GetSolutionFromInputsHydrologyDCInefficient{{{*/
    6377 void  Tria::GetSolutionFromInputsHydrologyDCInefficient(Vector<IssmDouble>* solution){
    6378 
    6379         const int    numdof=NDOF1*NUMVERTICES;
    6380 
    6381         int         i;
    6382         int        *doflist = NULL;
    6383         IssmDouble  sedimenthead;
    6384         IssmDouble  values[numdof];
    6385         GaussTria  *gauss   = NULL;
    6386 
    6387         /*Get dof list: */
    6388         GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    6389 
    6390         /*Get inputs*/
    6391         Input* sedimenthead_input=inputs->GetInput(SedimentHeadEnum); _assert_(sedimenthead_input);
    6392 
    6393         /*P1 element only for now*/
    6394         gauss=new GaussTria();
    6395         for(i=0;i<NUMVERTICES;i++){
    6396 
    6397                 gauss->GaussVertex(i);
    6398                 sedimenthead_input->GetInputValue(&sedimenthead,gauss);
    6399                 values[i]=sedimenthead;
    6400         }
    6401 
    6402         solution->SetValues(numdof,doflist,values,INS_VAL);
    6403 
    6404         /*Free ressources:*/
    6405         delete gauss;
    6406         xDelete<int>(doflist);
    6407 }
    6408 /*}}}*/
    6409 /*FUNCTION Tria::GetSolutionFromInputsHydrologyDCEfficient{{{*/
    6410 void  Tria::GetSolutionFromInputsHydrologyDCEfficient(Vector<IssmDouble>* solution){
    6411 
    6412         const int    numdof=NDOF1*NUMVERTICES;
    6413 
    6414         int         i;
    6415         int        *doflist = NULL;
    6416         IssmDouble  eplhead;
    6417         IssmDouble  values[numdof];
    6418         GaussTria  *gauss   = NULL;
    6419 
    6420         /*Get dof list: */
    6421         GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    6422 
    6423         /*Get inputs*/
    6424         Input* eplhead_input=inputs->GetInput(EplHeadEnum); _assert_(eplhead_input);
    6425 
    6426         /*P1 element only for now*/
    6427         gauss=new GaussTria();
    6428         for(i=0;i<NUMVERTICES;i++){
    6429                 gauss->GaussVertex(i);
    6430                 eplhead_input->GetInputValue(&eplhead,gauss);
    6431                 values[i]=eplhead;
     6364                /*Recover dof values*/
     6365                enum_input->GetInputValue(&enum_value,gauss);
     6366                values[i]=enum_value;
    64326367        }
    64336368
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r15339 r15353  
    246246                ElementVector* CreatePVectorHydrologyDCInefficient(void);
    247247                ElementVector* CreatePVectorHydrologyDCEfficient(void);
    248                 void      GetSolutionFromInputsHydrologyShreve(Vector<IssmDouble>* solution);
    249                 void      GetSolutionFromInputsHydrologyDCInefficient(Vector<IssmDouble>* solution);
    250                 void      GetSolutionFromInputsHydrologyDCEfficient(Vector<IssmDouble>* solution);
     248                void    GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
    251249                void    CreateHydrologyWaterVelocityInput(void);
    252250                void    UpdateConstraints(void);
Note: See TracChangeset for help on using the changeset viewer.