Changeset 3810


Ignore:
Timestamp:
05/18/10 12:13:06 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added GetStrainRate support in 2d

Location:
issm/trunk/src/c/objects/Inputs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp

    r3808 r3810  
    171171/*FUNCTION TriaVertexInput::GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss){{{1*/
    172172void TriaVertexInput::GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss){ISSMERROR(" not supported yet!");}
     173/*}}}*/
     174/*FUNCTION TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
     175void TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum){
     176
     177        /*Intermediary*/
     178        int       i;
     179        const int numgrids=3;
     180        const int NDOF2=2;
     181        double B[3][NDOF2*numgrids];
     182        double velocity[3][NDOF2];
     183
     184        /*Get B matrix: */
     185        GetB(&B[0][0], xyz_list, gauss);
     186
     187        /*Here, we are computing the strain rate of (vx,0)*/
     188        for(i=0;i<3;i++){
     189                velocity[i][0]=this->values[i];
     190                velocity[i][1]=0.0;
     191        }
     192        /*Get epsilon(vx) = B*velocity*/
     193        MatrixMultiply( &B[0][0],3,NDOF2*numgrids,0,
     194                                &velocity[0][0],NDOF2*numgrids,1,0,
     195                                epsilonvx,0);
     196}
     197/*}}}*/
     198/*FUNCTION TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum) {{{1*/
     199void TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum){
     200
     201        /*Intermediary*/
     202        int       i;
     203        const int numgrids=3;
     204        const int NDOF2=2;
     205        double B[3][NDOF2*numgrids];
     206        double velocity[3][NDOF2];
     207
     208        /*Get B matrix: */
     209        GetB(&B[0][0], xyz_list, gauss);
     210
     211        /*Here, we are computing the strain rate of (0,vy)*/
     212        for(i=0;i<3;i++){
     213                velocity[i][0]=0.0;
     214                velocity[i][1]=this->values[i];
     215        }
     216        /*Get epsilon(vy) = B*velocity*/
     217        MatrixMultiply( &B[0][0],3,NDOF2*numgrids,0,
     218                                &velocity[0][0],NDOF2*numgrids,1,0,
     219                                epsilonvy,0);
     220}
    173221/*}}}*/
    174222/*FUNCTION TriaVertexInput::ChangeEnum(int newenumtype){{{1*/
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.h

    r3808 r3810  
    6060       
    6161                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss);
    62                 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
    63                 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");};
     62                void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum);
     63                void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum);
    6464                void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
    6565                void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");};
Note: See TracChangeset for help on using the changeset viewer.