Changeset 3855


Ignore:
Timestamp:
05/19/10 16:15:49 (15 years ago)
Author:
Mathieu Morlighem
Message:

better strainrates call

Location:
issm/trunk/src/c
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/DataSet/DataSet.h

    r3847 r3855  
    143143       
    144144                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss,int enum_type);
    145                 void GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int formulation_enum=MacAyealFormulationEnum);
    146                 void GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum,int formulation_enum=StokesFormulationEnum);
     145                void GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum);
     146                void GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum);
     147                void GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum);
    147148
    148149                void ChangeEnum(int enumtype,int new_enumtype);
  • issm/trunk/src/c/DataSet/Inputs.cpp

    r3852 r3855  
    306306}
    307307/*}}}*/
    308 /*FUNCTION Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int formulation_enum){{{1*/
    309 void Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int formulation_enum){
     308/*FUNCTION Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){{{1*/
     309void Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){
     310        /*Compute the 2d Strain Rate (3 components):
     311         *
     312         * epsilon=[exx eyy exy]
     313         */
    310314
    311315        vector<Object*>::iterator object;
     
    341345
    342346        /*Get strain rate assuming that epsilon has been allocated*/
    343         vxinput->GetVxStrainRate2d(epsilonvx,xyz_list,gauss,formulation_enum);
    344         vyinput->GetVyStrainRate2d(epsilonvy,xyz_list,gauss,formulation_enum);
     347        vxinput->GetVxStrainRate2d(epsilonvx,xyz_list,gauss);
     348        vyinput->GetVyStrainRate2d(epsilonvy,xyz_list,gauss);
     349
     350        /*Sum all contributions*/
    345351        for(i=0;i<3;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i];
    346352
    347353}
    348354/*}}}*/
    349 /*FUNCTION Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int formulation_enum){{{1*/
    350 void Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum,int formulation_enum){
    351 
     355/*FUNCTION Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int vzenum){{{1*/
     356void Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum){
     357        /*Compute the 3d Strain Rate (6 components):
     358         *
     359         * epsilon=[exx eyy ezz exy exz euz]
     360         */
     361
     362        int    i;
    352363        vector<Object*>::iterator object;
    353364        Input* vxinput=NULL;
    354365        Input* vyinput=NULL;
    355366        Input* vzinput=NULL;
     367        bool   foundvx=false;
     368        bool   foundvy=false;
     369        bool   foundvz=false;
     370        double epsilonvx[6];
     371        double epsilonvy[6];
     372        double epsilonvz[6];
    356373
    357374        /*Go through inputs and find data for vxenum: */
    358375        for ( object=objects.begin() ; object < objects.end(); object++ ){
    359376                vxinput=(Input*)(*object);
    360                 if (vxinput->EnumType()==vxenum)break;
     377                if (vxinput->EnumType()==vxenum){
     378                        foundvx=true;
     379                        break;
     380                }
    361381        }
    362382        /*Go through inputs and find data for vyenum: */
    363383        for ( object=objects.begin() ; object < objects.end(); object++ ){
    364384                vyinput=(Input*)(*object);
    365                 if (vyinput->EnumType()==vyenum)break;
    366         }
    367         /*Go through inputs and find data for vzenum: */
     385                if (vyinput->EnumType()==vyenum){
     386                        foundvy=true;
     387                        break;
     388                }
     389        }
     390        /*Go through inputs and find data for vzenum, not for Pattyn*/
    368391        for ( object=objects.begin() ; object < objects.end(); object++ ){
    369392                vzinput=(Input*)(*object);
    370                 if (vzinput->EnumType()==vzenum)break;
    371         }
    372 
    373         if (!vxinput || !vyinput || !vzinput){
    374                 /*we could not find one input with the correct enum type. No defaults values were provided,
    375                  * error out: */
    376                 ISSMERROR("Could not find input with enum %i or enum %i or enum %i",vxenum,vyenum,vzenum);
    377         }
    378 
    379         ISSMERROR("STOP, take care of Pattyn + see changes in 2d");
     393                if (vzinput->EnumType()==vzenum){
     394                        foundvz=true;
     395                        break;
     396                }
     397        }
     398
     399        /*Check that all inputs have been found*/
     400        if (!foundvx || !foundvy || !foundvz){
     401                ISSMERROR("Could not find input with enum %i (%s), enum %i (%s) or  enum %i (%s)",vxenum,EnumAsString(vxenum),vyenum,EnumAsString(vyenum),vzenum,EnumAsString(vzenum));
     402        }
     403
     404        /*Get strain rate assuming that epsilon has been allocated*/
     405        vxinput->GetVxStrainRate3d(epsilonvx,xyz_list,gauss);
     406        vyinput->GetVyStrainRate3d(epsilonvy,xyz_list,gauss);
     407        vzinput->GetVzStrainRate3d(epsilonvz,xyz_list,gauss);
     408
     409        /*Sum all contributions*/
     410        for(i=0;i<6;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i]+epsilonvz[i];
     411
     412}
     413/*}}}*/
     414/*FUNCTION Inputs::GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){{{1*/
     415void Inputs::GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){
     416        /*Compute the 3d Blatter/PattynStrain Rate (5 components):
     417         *
     418         * epsilon=[exx eyy exy exz euz]
     419         *
     420         * with exz=1/2 du/dz
     421         *      eyz=1/2 dv/dz
     422         *
     423         * the contribution of vz is neglected
     424         */
     425
     426        int    i;
     427        vector<Object*>::iterator object;
     428        Input* vxinput=NULL;
     429        Input* vyinput=NULL;
     430        bool   foundvx=false;
     431        bool   foundvy=false;
     432        double epsilonvx[5];
     433        double epsilonvy[5];
     434
     435        /*Go through inputs and find data for vxenum: */
     436        for ( object=objects.begin() ; object < objects.end(); object++ ){
     437                vxinput=(Input*)(*object);
     438                if (vxinput->EnumType()==vxenum){
     439                        foundvx=true;
     440                        break;
     441                }
     442        }
     443        /*Go through inputs and find data for vyenum: */
     444        for ( object=objects.begin() ; object < objects.end(); object++ ){
     445                vyinput=(Input*)(*object);
     446                if (vyinput->EnumType()==vyenum){
     447                        foundvy=true;
     448                        break;
     449                }
     450        }
     451
     452        /*Check that all inputs have been found*/
     453        if (!foundvx || !foundvy){
     454                ISSMERROR("Could not find input with enum %i (%s) or enum %i (%s)",vxenum,EnumAsString(vxenum),vyenum,EnumAsString(vyenum));
     455        }
     456
     457        /*Get strain rate assuming that epsilon has been allocated*/
     458        vxinput->GetVxStrainRate3dPattyn(epsilonvx,xyz_list,gauss);
     459        vyinput->GetVyStrainRate3dPattyn(epsilonvy,xyz_list,gauss);
     460
     461        /*Sum all contributions*/
     462        for(i=0;i<5;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i];
    380463
    381464}
  • issm/trunk/src/c/objects/Inputs/BeamVertexInput.h

    r3847 r3855  
    6363       
    6464                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    65                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    67                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    69                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     65                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     67                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     71                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    7072                void ChangeEnum(int newenumtype);
    7173                /*}}}*/
  • issm/trunk/src/c/objects/Inputs/BoolInput.h

    r3847 r3855  
    6363       
    6464                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    65                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    67                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    69                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     65                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     67                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     71                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    7072                void ChangeEnum(int newenumtype);
    7173                /*}}}*/
  • issm/trunk/src/c/objects/Inputs/DoubleInput.h

    r3847 r3855  
    6363       
    6464                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    65                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    67                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    69                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     65                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     67                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     71                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    7072                void ChangeEnum(int newenumtype);
    7173                /*}}}*/
  • issm/trunk/src/c/objects/Inputs/Input.h

    r3847 r3855  
    3636       
    3737                virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss)=0;
    38                 virtual void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum)=0;
    39                 virtual void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum)=0;
    40                 virtual void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0;
    41                 virtual void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0;
    42                 virtual void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0;
     38                virtual void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss)=0;
     39                virtual void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss)=0;
     40                virtual void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss)=0;
     41                virtual void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss)=0;
     42                virtual void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss)=0;
     43                virtual void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss)=0;
     44                virtual void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss)=0;
    4345                virtual void ChangeEnum(int newenumtype)=0;
    4446                virtual Input* SpawnTriaInput(int* indices)=0;
  • issm/trunk/src/c/objects/Inputs/IntInput.h

    r3847 r3855  
    6363       
    6464                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    65                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    67                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    69                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     65                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     67                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     71                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    7072                void ChangeEnum(int newenumtype);
    7173                /*}}}*/
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp

    r3847 r3855  
    234234}
    235235/*}}}*/
    236 /*FUNCTION PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
    237 void PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum){
    238 
    239         if(formulation_enum==StokesAnalysisEnum){
    240                 GetVxStrainRate3dStokes(epsilonvx,xyz_list,gauss);
    241         }
    242         else if(formulation_enum==PattynFormulationEnum){
    243                 GetVxStrainRate3dPattyn(epsilonvx,xyz_list,gauss);
    244         }
    245         else{
    246                 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum));
    247         }
    248 }
    249 /*}}}*/
    250 /*FUNCTION PentaVertexInput::GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/
    251 void PentaVertexInput::GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss){
     236/*FUNCTION PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/
     237void PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){
    252238        int i,j;
    253239
     
    293279}
    294280/*}}}*/
    295 /*FUNCTION PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/
    296 void PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){
    297 
    298         int i;
    299         const int numgrids=6;
    300         const int NDOF2=2;
    301         double B[5][NDOF2*numgrids];
    302         double velocity[numgrids][NDOF2];
    303 
    304         /*Get B matrix: */
    305         GetBPattyn(&B[0][0], xyz_list, gauss);
    306 
    307         /*Here, we are computing the strain rate of (vx,0)*/
    308         for(i=0;i<numgrids;i++){
    309                 velocity[i][0]=this->values[i];
    310                 velocity[i][1]=0.0;
    311         }
    312 
    313         /*Multiply B by velocity, to get strain rate: */
    314         MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0,
    315                                 &velocity[0][0],NDOF2*numgrids,1,0,
    316                                 epsilonvx,0);
    317 
    318 }
    319 /*}}}*/
    320 /*FUNCTION PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
    321 void PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum){
    322 
    323         if(formulation_enum==StokesAnalysisEnum){
    324                 GetVyStrainRate3dStokes(epsilonvy,xyz_list,gauss);
    325         }
    326         else if(formulation_enum==PattynFormulationEnum){
    327                 GetVyStrainRate3dPattyn(epsilonvy,xyz_list,gauss);
    328         }
    329         else{
    330                 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum));
    331         }
    332 }
    333 /*}}}*/
    334 /*FUNCTION PentaVertexInput::GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/
    335 void PentaVertexInput::GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss){
     281/*FUNCTION PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/
     282void PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){
    336283        int i,j;
    337284
     
    377324}
    378325/*}}}*/
    379 /*FUNCTION PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/
    380 void PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){
    381 
    382         int i;
    383         const int numgrids=6;
    384         const int NDOF2=2;
    385         double B[5][NDOF2*numgrids];
    386         double velocity[numgrids][NDOF2];
    387 
    388         /*Get B matrix: */
    389         GetBPattyn(&B[0][0], xyz_list, gauss);
    390 
    391         /*Here, we are computing the strain rate of (0,vy)*/
    392         for(i=0;i<numgrids;i++){
    393                 velocity[i][0]=0.0;
    394                 velocity[i][1]=this->values[i];
    395         }
    396 
    397         /*Multiply B by velocity, to get strain rate: */
    398         MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0,
    399                                 &velocity[0][0],NDOF2*numgrids,1,0,
    400                                 epsilonvy,0);
    401 
    402 }
    403 /*}}}*/
    404 /*FUNCTION PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
    405 void PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum){
    406 
    407         if(formulation_enum==StokesAnalysisEnum){
    408                 GetVzStrainRate3dStokes(epsilonvz,xyz_list,gauss);
    409         }
    410         else if(formulation_enum==PattynFormulationEnum){
    411                 GetVzStrainRate3dPattyn(epsilonvz,xyz_list,gauss);
    412         }
    413         else{
    414                 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum));
    415         }
    416 }
    417 /*}}}*/
    418 /*FUNCTION PentaVertexInput::GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/
    419 void PentaVertexInput::GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss){
     326/*FUNCTION PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/
     327void PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){
    420328        int i,j;
    421329
     
    462370}
    463371/*}}}*/
    464 /*FUNCTION PentaVertexInput::GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/
    465 void PentaVertexInput::GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss){
    466 
    467         /*vz does not contribute to the strain rate in Pattyn/Blatter's model*/
    468         for (int i=0;i<5;i++){
    469                 epsilonvz[i]=0.0;
    470         }
     372/*FUNCTION PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/
     373void PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){
     374
     375        int i;
     376        const int numgrids=6;
     377        const int NDOF2=2;
     378        double B[5][NDOF2*numgrids];
     379        double velocity[numgrids][NDOF2];
     380
     381        /*Get B matrix: */
     382        GetBPattyn(&B[0][0], xyz_list, gauss);
     383
     384        /*Here, we are computing the strain rate of (vx,0)*/
     385        for(i=0;i<numgrids;i++){
     386                velocity[i][0]=this->values[i];
     387                velocity[i][1]=0.0;
     388        }
     389
     390        /*Multiply B by velocity, to get strain rate: */
     391        MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0,
     392                                &velocity[0][0],NDOF2*numgrids,1,0,
     393                                epsilonvx,0);
     394
     395}
     396/*}}}*/
     397/*FUNCTION PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/
     398void PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){
     399
     400        int i;
     401        const int numgrids=6;
     402        const int NDOF2=2;
     403        double B[5][NDOF2*numgrids];
     404        double velocity[numgrids][NDOF2];
     405
     406        /*Get B matrix: */
     407        GetBPattyn(&B[0][0], xyz_list, gauss);
     408
     409        /*Here, we are computing the strain rate of (0,vy)*/
     410        for(i=0;i<numgrids;i++){
     411                velocity[i][0]=0.0;
     412                velocity[i][1]=this->values[i];
     413        }
     414
     415        /*Multiply B by velocity, to get strain rate: */
     416        MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0,
     417                                &velocity[0][0],NDOF2*numgrids,1,0,
     418                                epsilonvy,0);
    471419
    472420}
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.h

    r3847 r3855  
    6262       
    6363                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    64                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    65                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum);
    67                 void GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss);
     64                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     65                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss);
     67                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss);
     68                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss);
    6869                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss);
    69                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum);
    70                 void GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss);
    7170                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss);
    72                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum);
    73                 void GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss);
    74                 void GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss);
    7571                void ChangeEnum(int newenumtype);
    7672                void GetNodalFunctionsP1(double* l1l6, double* gauss_coord);
  • issm/trunk/src/c/objects/Inputs/SingVertexInput.h

    r3847 r3855  
    6262       
    6363                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    64                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    65                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    66                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    67                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     64                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     65                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     66                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     67                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    6971                void ChangeEnum(int newenumtype);
    7072                /*}}}*/
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp

    r3847 r3855  
    203203}
    204204/*}}}*/
    205 /*FUNCTION TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
    206 void TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum){
     205/*FUNCTION TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/
     206void TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){
    207207
    208208        /*Intermediary*/
     
    227227}
    228228/*}}}*/
    229 /*FUNCTION TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
    230 void TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum){
     229/*FUNCTION TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/
     230void TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){
    231231
    232232        /*Intermediary*/
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.h

    r3847 r3855  
    6363       
    6464                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    65                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum);
    66                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum);
    67                 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    68                 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    69                 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
     65                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss);
     66                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss);
     67                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     68                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     69                void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     70                void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
     71                void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");};
    7072                void ChangeEnum(int newenumtype);
    7173
  • issm/trunk/src/c/parallel/diagnostic_core.cpp

    r3835 r3855  
    140140
    141141                if(verbose)_printf_("%s\n"," extruding horizontal velocities...");
    142                
    143                 FieldExtrudex( ug,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,"velocity",1);
    144 
     142                FieldExtrudex(ug,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,"velocity",1);
    145143                SplitSolutionVectorx(ug,numberofnodes,numberofdofspernode_dh,&vx,&vy);
    146144                model->UpdateInputsFromVector(vx,VxEnum,VertexEnum);
Note: See TracChangeset for help on using the changeset viewer.