Changeset 26141


Ignore:
Timestamp:
03/23/21 15:24:26 (4 years ago)
Author:
tsantos
Message:

CHG: working on mono layer HO

File:
1 edited

Legend:

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

    r26137 r26141  
    27352735        for(int i=0;i<numnodes;i++){
    27362736      for(int j=0;j<numnodes;j++){
    2737          Ke->values[(i+0)*2*2*numnodes+j+0] = KeSSA->values[2*i*2*numnodes+2*j]; //K11
    2738          Ke->values[(i+6)*2*2*numnodes+j+6] = KeSSA->values[(2*i+1)*2*numnodes+2*j+1]; //K33
     2737         Ke->values[(i+0*numnodes)*2*2*numnodes+j+0*numnodes] = KeSSA->values[2*i*2*numnodes+2*j]; //K11
     2738         Ke->values[(i+2*numnodes)*2*2*numnodes+j+2*numnodes] = KeSSA->values[(2*i+1)*2*numnodes+2*j+1]; //K33
    27392739      } 
    27402740   }
     
    27872787                for(int i=0;i<numnodes;i++){//shape functions on tria element
    27882788                        for(int j=0;j<numnodes;j++){
    2789                                 Ke->values[(i+0)*2*2*numnodes+j+0] += gauss->weight*Jdet*viscosity*thickness*(
     2789                                Ke->values[(i+0*numnodes)*2*2*numnodes+j+0*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    27902790                                                        4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i]
    27912791                                                        );//K11
    2792                                 Ke->values[(i+0)*2*2*numnodes+j+3] += gauss->weight*Jdet*viscosity*thickness*(
     2792                                Ke->values[(i+0*numnodes)*2*2*numnodes+j+1*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    27932793                                                        4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i]
    27942794                                                        )*(n+1)/(n+2);//K12
    2795                                 Ke->values[(i+0)*2*2*numnodes+j+6] += gauss->weight*Jdet*viscosity*thickness*(
     2795                                Ke->values[(i+0*numnodes)*2*2*numnodes+j+2*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    27962796                                                        2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i]
    27972797                                                        );//K13
    2798                                 Ke->values[(i+0)*2*2*numnodes+j+9] += gauss->weight*Jdet*viscosity*thickness*(
     2798                                Ke->values[(i+0*numnodes)*2*2*numnodes+j+3*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    27992799                     2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i]
    28002800                     )*(n+1)/(n+2);//K14
    28012801                               
    2802                                 Ke->values[(i+3)*2*2*numnodes+j+0] += gauss->weight*Jdet*viscosity*thickness*(
     2802                                Ke->values[(i+1*numnodes)*2*2*numnodes+j+0*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28032803                                                        4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i]
    28042804                                                        )*(n+1)/(n+2);//K21
    2805                                 Ke->values[(i+3)*2*2*numnodes+j+3] += gauss->weight*Jdet*viscosity*thickness*(
     2805                                Ke->values[(i+1*numnodes)*2*2*numnodes+j+1*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28062806                                                        4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i]
    28072807                                                        )*2*pow(n+1,2)/((2*n+3)*(n+2))
     
    28092809                                                        gauss->weight*Jdet*viscosity*basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1))
    28102810                                                        ;//K22
    2811                                 Ke->values[(i+3)*2*2*numnodes+j+6] += gauss->weight*Jdet*viscosity*thickness*(
     2811                                Ke->values[(i+1*numnodes)*2*2*numnodes+j+2*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28122812                                                        2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i]
    28132813                                                        )*(n+1)/(n+2);//K23
    2814                                 Ke->values[(i+3)*2*2*numnodes+j+9] += gauss->weight*Jdet*viscosity*thickness*(
     2814                                Ke->values[(i+1*numnodes)*2*2*numnodes+j+3*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28152815                                                        2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i]
    28162816                                                        )*2*pow(n+1,2)/((2*n+3)*(n+2));//K24
    28172817                               
    2818                                 Ke->values[(i+6)*2*2*numnodes+j+0] += gauss->weight*Jdet*viscosity*thickness*(
     2818                                Ke->values[(i+2*numnodes)*2*2*numnodes+j+0*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28192819                                                        2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i]
    28202820                                                        );//K31
    2821                                 Ke->values[(i+6)*2*2*numnodes+j+3] += gauss->weight*Jdet*viscosity*thickness*(
     2821                                Ke->values[(i+2*numnodes)*2*2*numnodes+j+1*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28222822                                                        2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i]
    28232823                                                        )*(n+1)/(n+2);//K32
    2824                                 Ke->values[(i+6)*2*2*numnodes+j+6] += gauss->weight*Jdet*viscosity*thickness*(
     2824                                Ke->values[(i+2*numnodes)*2*2*numnodes+j+2*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28252825                                                        4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i]
    28262826                                                        );//K33
    2827                                 Ke->values[(i+6)*2*2*numnodes+j+9] += gauss->weight*Jdet*viscosity*thickness*(
     2827                                Ke->values[(i+2*numnodes)*2*2*numnodes+j+3*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28282828                                                        4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i]
    28292829                                                        )*(n+1)/(n+2);//K34
    28302830
    2831                                 Ke->values[(i+9)*2*2*numnodes+j+0] += gauss->weight*Jdet*viscosity*thickness*(
     2831                                Ke->values[(i+3*numnodes)*2*2*numnodes+j+0*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28322832                     2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i]
    28332833                     )*(n+1)/(n+2);//K41
    2834                                 Ke->values[(i+9)*2*2*numnodes+j+3] += gauss->weight*Jdet*viscosity*thickness*(
     2834                                Ke->values[(i+3*numnodes)*2*2*numnodes+j+1*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28352835                     2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i]
    28362836                     )*2*pow(n+1,2)/((2*n+3)*(n+2));//K42
    2837                                 Ke->values[(i+9)*2*2*numnodes+j+6] += gauss->weight*Jdet*viscosity*thickness*(
     2837                                Ke->values[(i+3*numnodes)*2*2*numnodes+j+2*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28382838                                                        4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i]
    28392839                                                        )*(n+1)/(n+2);//K43
    2840                                 Ke->values[(i+9)*2*2*numnodes+j+9] += gauss->weight*Jdet*viscosity*thickness*(
     2840                                Ke->values[(i+3*numnodes)*2*2*numnodes+j+3*numnodes] += gauss->weight*Jdet*viscosity*thickness*(
    28412841                                                        4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i]
    28422842                                                        )*2*pow(n+1,2)/((2*n+3)*(n+2))
     
    29262926
    29272927                for(int i=0;i<numnodes;i++){
    2928                         pe->values[i+0]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]; //F1
    2929                         pe->values[i+3]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F2
    2930                         pe->values[i+6]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]; //F3
    2931                         pe->values[i+9]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F4
     2928                        pe->values[i+0*numnodes]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]; //F1
     2929                        pe->values[i+1*numnodes]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F2
     2930                        pe->values[i+2*numnodes]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]; //F3
     2931                        pe->values[i+3*numnodes]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F4
    29322932                }
    29332933        }
     
    29992999
    30003000                for (int i=0;i<numnodes;i++){
    3001                         pe->values[i+0]+= pressure*Jdet*gauss->weight*normal[0]*basis[i]; // F1
    3002                         pe->values[i+3]+= pressure_sh*Jdet*gauss->weight*normal[0]*basis[i]; // F2
    3003                         pe->values[i+6]+= pressure*Jdet*gauss->weight*normal[1]*basis[i]; // F3
    3004                         pe->values[i+9]+= pressure_sh*Jdet*gauss->weight*normal[1]*basis[i]; // F4
     3001                        pe->values[i+0*numnodes]+= pressure*Jdet*gauss->weight*normal[0]*basis[i]; // F1
     3002                        pe->values[i+1*numnodes]+= pressure_sh*Jdet*gauss->weight*normal[0]*basis[i]; // F2
     3003                        pe->values[i+2*numnodes]+= pressure*Jdet*gauss->weight*normal[1]*basis[i]; // F3
     3004                        pe->values[i+3*numnodes]+= pressure_sh*Jdet*gauss->weight*normal[1]*basis[i]; // F4
    30053005                }
    30063006        }
Note: See TracChangeset for help on using the changeset viewer.