Changeset 18075
- Timestamp:
- 05/31/14 04:19:56 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r18068 r18075 5814 5814 5815 5815 int num_dof=2; 5816 IssmDouble L1L2l3[3];5816 IssmDouble basis[3]; 5817 5817 5818 5818 /*Cast gauss to GaussPenta*/ … … 5820 5820 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 5821 5821 5822 /*Get L1L2l3in actual coordinate system: */5823 L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;5824 L1L2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;5825 L1L2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;5822 /*Get basis in actual coordinate system: */ 5823 basis[0]=gauss->coord1*(1-gauss->coord4)/2.0; 5824 basis[1]=gauss->coord2*(1-gauss->coord4)/2.0; 5825 basis[2]=gauss->coord3*(1-gauss->coord4)/2.0; 5826 5826 5827 5827 /*Build LFS: */ 5828 5828 for(int i=0;i<3;i++){ 5829 LFS[num_dof*3*0+num_dof*i+0] = L1L2l3[i];5829 LFS[num_dof*3*0+num_dof*i+0] = basis[i]; 5830 5830 LFS[num_dof*3*0+num_dof*i+1] = 0; 5831 5831 LFS[num_dof*3*1+num_dof*i+0] = 0; 5832 LFS[num_dof*3*1+num_dof*i+1] = L1L2l3[i];5833 LFS[num_dof*3*2+num_dof*i+0] = L1L2l3[i];5832 LFS[num_dof*3*1+num_dof*i+1] = basis[i]; 5833 LFS[num_dof*3*2+num_dof*i+0] = basis[i]; 5834 5834 LFS[num_dof*3*2+num_dof*i+1] = 0; 5835 5835 LFS[num_dof*3*3+num_dof*i+0] = 0; 5836 LFS[num_dof*3*3+num_dof*i+1] = L1L2l3[i];5837 LFS[num_dof*3*4+num_dof*i+0] = L1L2l3[i];5836 LFS[num_dof*3*3+num_dof*i+1] = basis[i]; 5837 LFS[num_dof*3*4+num_dof*i+0] = basis[i]; 5838 5838 LFS[num_dof*3*4+num_dof*i+1] = 0; 5839 5839 LFS[num_dof*3*5+num_dof*i+0] = 0; 5840 LFS[num_dof*3*5+num_dof*i+1] = L1L2l3[i];5841 LFS[num_dof*3*6+num_dof*i+0] = L1L2l3[i];5840 LFS[num_dof*3*5+num_dof*i+1] = basis[i]; 5841 LFS[num_dof*3*6+num_dof*i+0] = basis[i]; 5842 5842 LFS[num_dof*3*6+num_dof*i+1] = 0; 5843 5843 LFS[num_dof*3*7+num_dof*i+0] = 0; 5844 LFS[num_dof*3*7+num_dof*i+1] = L1L2l3[i];5844 LFS[num_dof*3*7+num_dof*i+1] = basis[i]; 5845 5845 } 5846 5846 }/*}}}*/ … … 5862 5862 int num_dof_vel=3*7; 5863 5863 int num_dof_total=3*7+1*6; 5864 IssmDouble L1L2l3[3];5864 IssmDouble basis[3]; 5865 5865 IssmDouble dbasis[3][6]; 5866 5866 … … 5869 5869 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 5870 5870 5871 /*Get L1L2l3in actual coordinate system: */5872 L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;5873 L1L2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;5874 L1L2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;5871 /*Get basis in actual coordinate system: */ 5872 basis[0]=gauss->coord1*(1-gauss->coord4)/2.0; 5873 basis[1]=gauss->coord2*(1-gauss->coord4)/2.0; 5874 basis[2]=gauss->coord3*(1-gauss->coord4)/2.0; 5875 5875 5876 5876 element->NodalFunctionsP1Derivatives(&dbasis[0][0],xyz_list,gauss); … … 5878 5878 /*Build LprimeFS: */ 5879 5879 for(int i=0;i<3;i++){ 5880 LprimeFS[num_dof_total*0+num_dof*i+0] = L1L2l3[i];5880 LprimeFS[num_dof_total*0+num_dof*i+0] = basis[i]; 5881 5881 LprimeFS[num_dof_total*0+num_dof*i+1] = 0.; 5882 5882 LprimeFS[num_dof_total*0+num_dof*i+2] = 0.; 5883 5883 LprimeFS[num_dof_total*1+num_dof*i+0] = 0.; 5884 LprimeFS[num_dof_total*1+num_dof*i+1] = L1L2l3[i];5884 LprimeFS[num_dof_total*1+num_dof*i+1] = basis[i]; 5885 5885 LprimeFS[num_dof_total*1+num_dof*i+2] = 0.; 5886 5886 LprimeFS[num_dof_total*2+num_dof*i+0] = 0.; 5887 5887 LprimeFS[num_dof_total*2+num_dof*i+1] = 0.; 5888 LprimeFS[num_dof_total*2+num_dof*i+2] = L1L2l3[i];5888 LprimeFS[num_dof_total*2+num_dof*i+2] = basis[i]; 5889 5889 LprimeFS[num_dof_total*3+num_dof*i+0] = 0.; 5890 5890 LprimeFS[num_dof_total*3+num_dof*i+1] = 0.; 5891 LprimeFS[num_dof_total*3+num_dof*i+2] = L1L2l3[i];5891 LprimeFS[num_dof_total*3+num_dof*i+2] = basis[i]; 5892 5892 LprimeFS[num_dof_total*4+num_dof*i+0] = 0.; 5893 5893 LprimeFS[num_dof_total*4+num_dof*i+1] = 0.; … … 5936 5936 LprimeFS[num_dof_total*4+num_dof_vel+i] = 0.; 5937 5937 LprimeFS[num_dof_total*5+num_dof_vel+i] = 0.; 5938 LprimeFS[num_dof_total*6+num_dof_vel+i] = L1L2l3[i];5939 LprimeFS[num_dof_total*7+num_dof_vel+i] = L1L2l3[i];5938 LprimeFS[num_dof_total*6+num_dof_vel+i] = basis[i]; 5939 LprimeFS[num_dof_total*7+num_dof_vel+i] = basis[i]; 5940 5940 } 5941 5941 for(int i=3;i<6;i++){ … … 5962 5962 5963 5963 int num_dof=3; 5964 IssmDouble L1L2l3[3];5964 IssmDouble basis[3]; 5965 5965 5966 5966 /*Cast gauss to GaussPenta*/ … … 5968 5968 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 5969 5969 5970 /*Get L1L2l3in actual coordinate system: */5971 L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;5972 L1L2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;5973 L1L2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;5970 /*Get basis in actual coordinate system: */ 5971 basis[0]=gauss->coord1*(1-gauss->coord4)/2.0; 5972 basis[1]=gauss->coord2*(1-gauss->coord4)/2.0; 5973 basis[2]=gauss->coord3*(1-gauss->coord4)/2.0; 5974 5974 5975 5975 /*Build LFS: */ 5976 5976 for(int i=0;i<3;i++){ 5977 LFS[num_dof*3*0+num_dof*i+0] = L1L2l3[i];5977 LFS[num_dof*3*0+num_dof*i+0] = basis[i]; 5978 5978 LFS[num_dof*3*0+num_dof*i+1] = 0.; 5979 5979 LFS[num_dof*3*0+num_dof*i+2] = 0.; 5980 5980 LFS[num_dof*3*1+num_dof*i+0] = 0.; 5981 LFS[num_dof*3*1+num_dof*i+1] = L1L2l3[i];5981 LFS[num_dof*3*1+num_dof*i+1] = basis[i]; 5982 5982 LFS[num_dof*3*1+num_dof*i+2] = 0.; 5983 5983 LFS[num_dof*3*2+num_dof*i+0] = 0.; 5984 5984 LFS[num_dof*3*2+num_dof*i+1] = 0.; 5985 LFS[num_dof*3*2+num_dof*i+2] = L1L2l3[i];5985 LFS[num_dof*3*2+num_dof*i+2] = basis[i]; 5986 5986 LFS[num_dof*3*3+num_dof*i+0] = 0.; 5987 5987 LFS[num_dof*3*3+num_dof*i+1] = 0.; 5988 LFS[num_dof*3*3+num_dof*i+2] = L1L2l3[i];5988 LFS[num_dof*3*3+num_dof*i+2] = basis[i]; 5989 5989 } 5990 5990 }/*}}}*/ … … 6000 6000 */ 6001 6001 int num_dof=2; 6002 IssmDouble L1L2l3[3];6002 IssmDouble basis[3]; 6003 6003 6004 6004 /*Cast gauss to GaussPenta*/ … … 6006 6006 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 6007 6007 6008 /*Get L1L2l3in actual coordinate system: */6009 L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;6010 L1L2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;6011 L1L2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;6008 /*Get basis in actual coordinate system: */ 6009 basis[0]=gauss->coord1*(1-gauss->coord4)/2.0; 6010 basis[1]=gauss->coord2*(1-gauss->coord4)/2.0; 6011 basis[2]=gauss->coord3*(1-gauss->coord4)/2.0; 6012 6012 6013 6013 /*Build LprimeFS: */ 6014 6014 for(int i=0;i<3;i++){ 6015 LprimeFS[num_dof*3*0+num_dof*i+0] = L1L2l3[i];6015 LprimeFS[num_dof*3*0+num_dof*i+0] = basis[i]; 6016 6016 LprimeFS[num_dof*3*0+num_dof*i+1] = 0.; 6017 6017 LprimeFS[num_dof*3*1+num_dof*i+0] = 0.; 6018 LprimeFS[num_dof*3*1+num_dof*i+1] = L1L2l3[i];6019 LprimeFS[num_dof*3*2+num_dof*i+0] = L1L2l3[i];6018 LprimeFS[num_dof*3*1+num_dof*i+1] = basis[i]; 6019 LprimeFS[num_dof*3*2+num_dof*i+0] = basis[i]; 6020 6020 LprimeFS[num_dof*3*2+num_dof*i+1] = 0.; 6021 6021 LprimeFS[num_dof*3*3+num_dof*i+0] = 0.; 6022 LprimeFS[num_dof*3*3+num_dof*i+1] = L1L2l3[i];6022 LprimeFS[num_dof*3*3+num_dof*i+1] = basis[i]; 6023 6023 } 6024 6024 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
r17962 r18075 883 883 GetJacobianInvert(&Jinv[0][0], xyz_list, gauss); 884 884 885 /*Build dh1dh3:885 /*Build basis function derivatives: 886 886 * 887 887 * [dhi/dx]= Jinv*[dhi/dr] -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.h
r17926 r18075 28 28 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss); 29 29 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement); 30 void GetNodalFunctionsP1(IssmDouble* l1l6, Gauss* gauss);31 void GetNodalFunctionsP1Derivatives(IssmDouble* d h1dh6,IssmDouble* xyz_list, Gauss* gauss);32 void GetNodalFunctionsMINIDerivatives(IssmDouble* d h1dh7,IssmDouble* xyz_list, Gauss* gauss);30 void GetNodalFunctionsP1(IssmDouble* basis, Gauss* gauss); 31 void GetNodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss); 32 void GetNodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss); 33 33 void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,Gauss* gauss); 34 34 void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,Gauss* gauss);
Note:
See TracChangeset
for help on using the changeset viewer.