Changeset 26141
- Timestamp:
- 03/23/21 15:24:26 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r26137 r26141 2735 2735 for(int i=0;i<numnodes;i++){ 2736 2736 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]; //K112738 Ke->values[(i+ 6)*2*2*numnodes+j+6] = KeSSA->values[(2*i+1)*2*numnodes+2*j+1]; //K332737 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 2739 2739 } 2740 2740 } … … 2787 2787 for(int i=0;i<numnodes;i++){//shape functions on tria element 2788 2788 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*( 2790 2790 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2791 2791 );//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*( 2793 2793 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2794 2794 )*(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*( 2796 2796 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2797 2797 );//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*( 2799 2799 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2800 2800 )*(n+1)/(n+2);//K14 2801 2801 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*( 2803 2803 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2804 2804 )*(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*( 2806 2806 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2807 2807 )*2*pow(n+1,2)/((2*n+3)*(n+2)) … … 2809 2809 gauss->weight*Jdet*viscosity*basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1)) 2810 2810 ;//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*( 2812 2812 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2813 2813 )*(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*( 2815 2815 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2816 2816 )*2*pow(n+1,2)/((2*n+3)*(n+2));//K24 2817 2817 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*( 2819 2819 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2820 2820 );//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*( 2822 2822 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2823 2823 )*(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*( 2825 2825 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2826 2826 );//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*( 2828 2828 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2829 2829 )*(n+1)/(n+2);//K34 2830 2830 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*( 2832 2832 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2833 2833 )*(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*( 2835 2835 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2836 2836 )*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*( 2838 2838 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2839 2839 )*(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*( 2841 2841 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2842 2842 )*2*pow(n+1,2)/((2*n+3)*(n+2)) … … 2926 2926 2927 2927 for(int i=0;i<numnodes;i++){ 2928 pe->values[i+0 ]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]; //F12929 pe->values[i+ 3]+=-rhog*thickness*slope[0]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F22930 pe->values[i+ 6]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]; //F32931 pe->values[i+ 9]+=-rhog*thickness*slope[1]*Jdet*gauss->weight*basis[i]*(n+1)/(n+2); //F42928 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 2932 2932 } 2933 2933 } … … 2999 2999 3000 3000 for (int i=0;i<numnodes;i++){ 3001 pe->values[i+0 ]+= pressure*Jdet*gauss->weight*normal[0]*basis[i]; // F13002 pe->values[i+ 3]+= pressure_sh*Jdet*gauss->weight*normal[0]*basis[i]; // F23003 pe->values[i+ 6]+= pressure*Jdet*gauss->weight*normal[1]*basis[i]; // F33004 pe->values[i+ 9]+= pressure_sh*Jdet*gauss->weight*normal[1]*basis[i]; // F43001 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 3005 3005 } 3006 3006 }
Note:
See TracChangeset
for help on using the changeset viewer.