Changeset 4733


Ignore:
Timestamp:
07/22/10 10:52:24 (15 years ago)
Author:
seroussi
Message:

linearisation of basalfriction in CreatePVectorThermalSheet

Location:
issm/trunk/src/c/objects/Elements
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r4702 r4733  
    937937        else if(analysis_type==DiagnosticStokesAnalysisEnum){
    938938                GetSolutionFromInputsDiagnosticStokes(solution);
     939        }
     940        else if(analysis_type==ThermalAnalysisEnum){
     941                GetSolutionFromInputsThermal(solution);
    939942        }
    940943        else{
     
    28742877        VecSetValues(solution,numdof,doflist,(const double*)values,INSERT_VALUES);
    28752878
     2879}
     2880/*}}}*/
     2881/*FUNCTION Penta::GetSolutionFromInputsThermal{{{1*/
     2882void  Penta::GetSolutionFromInputsThermal(Vec solution){
     2883
     2884        int i;
     2885
     2886        const int    numvertices=6;
     2887        const int    numdofpervertex=1;
     2888        const int    numdof=numdofpervertex*numvertices;
     2889        double       gauss[numvertices][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}};
     2890
     2891        int          doflist[numdof];
     2892        double       values[numdof];
     2893        double       vz;
     2894
     2895        int          dummy;
     2896
     2897        /*Get dof list: */
     2898        GetDofList(&doflist[0],&dummy);
     2899
     2900        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
     2901        /*P1 element only for now*/
     2902        for(i=0;i<numvertices;i++){
     2903
     2904                /*Recover vz */
     2905                inputs->GetParameterValue(&vz,&gauss[i][0],TemperatureEnum);
     2906                values[i]=vz;
     2907        }
     2908
     2909        /*Add value to global vector*/
     2910        VecSetValues(solution,numdof,doflist,(const double*)values,INSERT_VALUES);
    28762911}
    28772912/*}}}*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r4702 r4733  
    167167                void      GetSolutionFromInputsDiagnosticStokes(Vec solutiong);
    168168                void      GetSolutionFromInputsDiagnosticVert(Vec solutiong);
     169                void      GetSolutionFromInputsThermal(Vec solutiong);
    169170                void      GetStrainRate(double* epsilon, double* velocity, double* xyz_list, double* gauss_coord);
    170171                void      GetStrainRateStokes(double* epsilon, double* velocity, double* xyz_list, double* gauss_coord);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r4698 r4733  
    46654665        double    alpha2_list[numgrids];                                       //TO BE DELETED
    46664666        double    gauss[numgrids][numgrids] = {{1,0,0},{0,1,0},{0,0,1}}; //TO BE DELETED
     4667        double vx_list[numgrids]; //TO BE DELETED
     4668        double vy_list[numgrids]; //TO BE DELETED
     4669        double basalfriction_list[numgrids]; //TO BE DELETED
    46674670
    46684671        /* gaussian points: */
     
    47034706        friction=new Friction("3d",inputs,matpar,analysis_type);
    47044707
    4705         /*COMPUT alpha2_list (TO BE DELETED)*/
     4708        /*COMPUT alpha2_list and basalfriction_list (TO BE DELETED)*/
    47064709        for(i=0;i<numgrids;i++){
    4707                 friction->GetAlpha2(&alpha2_list[i],&gauss[i][0],VxEnum,VyEnum,VzEnum);
     4710                friction->GetAlpha2(&alpha2_list[i],&gauss[i][0],VxEnum,VyEnum,VzEnum); //TO BE DELETED
     4711        }
     4712        inputs->GetParameterValues(&vx_list[0],&gauss[0][0],3,VxEnum); //TO BE DELETED
     4713        inputs->GetParameterValues(&vy_list[0],&gauss[0][0],3,VyEnum); //TO BE DELETED
     4714        for(i=0;i<numgrids;i++){
     4715                basalfriction_list[i]=alpha2_list[i]*(pow(vx_list[i],(double)2.0)+pow(vy_list[i],(double)2.0)); //TO BE DELETED
    47084716        }
    47094717       
     
    47294737                /*Friction: */
    47304738                //friction->GetAlpha2(&alpha2,&gauss_coord[0],VxEnum,VyEnum,VzEnum);
    4731                 GetParameterValue(&alpha2,&alpha2_list[0],gauss_coord); // TO BE DELETED
    4732 
    4733                 inputs->GetParameterValue(&vx, &gauss_coord[0],VxEnum);
    4734                 inputs->GetParameterValue(&vy, &gauss_coord[0],VyEnum);
    4735                 basalfriction= alpha2*(pow(vx,(double)2.0)+pow(vy,(double)2.0));
     4739                GetParameterValue(&basalfriction,&basalfriction_list[0],gauss_coord); // TO BE DELETED
    47364740               
    47374741                /*Calculate scalar parameter*/
Note: See TracChangeset for help on using the changeset viewer.