Changeset 26294
- Timestamp:
- 05/28/21 14:44:26 (4 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp ¶
r26293 r26294 2882 2882 2883 2883 /*Intermediaries*/ 2884 IssmDouble viscosity ,Jdet,thickness,n;2884 IssmDouble viscosity[4],Jdet,thickness,n; 2885 2885 IssmDouble *xyz_list = NULL; 2886 2886 int domaintype; … … 2917 2917 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); //vertically integrated vx 2918 2918 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); //vertically integrated vy 2919 Input* vxshear_input = element->GetInput(VxShearEnum); _assert_(vxshear_input); 2920 Input* vyshear_input = element->GetInput(VyShearEnum); _assert_(vyshear_input); 2919 Input* vxbase_input = element->GetInput(VxBaseEnum); _assert_(vxbase_input); 2920 Input* vybase_input = element->GetInput(VyBaseEnum); _assert_(vybase_input); 2921 Input* vxshear_input = element->GetInput(VxShearEnum); _assert_(vxshear_input); //shear vx at the surface 2922 Input* vyshear_input = element->GetInput(VyShearEnum); _assert_(vyshear_input); //shear vy at the surface 2921 2923 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 2922 2924 … … 2934 2936 n_input->GetInputValue(&n,gauss); 2935 2937 int dim=2;//itapopo 2936 element->material->ViscosityMLHO(&viscosity,dim,xyz_list,gauss,vx_input,vy_input,vxshear_input,vyshear_input,thickness_input); 2937 //viscosity=10e13;//itapopo 2938 element->material->ViscosityMLHO(&viscosity[0],dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input); 2938 2939 2939 2940 for(int i=0;i<numnodes;i++){//shape functions on tria element 2940 2941 for(int j=0;j<numnodes;j++){ 2941 Ke->values[(4*i+0)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity *thickness*(2942 Ke->values[(4*i+0)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity[0]*thickness*( 2942 2943 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2943 2944 );//K11 2944 Ke->values[(4*i+0)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity *thickness*(2945 Ke->values[(4*i+0)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity[1]*thickness*( 2945 2946 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2946 2947 )*(n+1)/(n+2);//K12 2947 Ke->values[(4*i+0)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity *thickness*(2948 Ke->values[(4*i+0)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity[0]*thickness*( 2948 2949 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2949 2950 );//K13 2950 Ke->values[ (4*i+0)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity *thickness*(2951 Ke->values[ (4*i+0)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity[1]*thickness*( 2951 2952 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2952 2953 )*(n+1)/(n+2);//K14 2953 2954 2954 Ke->values[(4*i+1)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity *thickness*(2955 Ke->values[(4*i+1)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity[1]*thickness*( 2955 2956 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2956 2957 )*(n+1)/(n+2);//K21 2957 Ke->values[(4*i+1)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity *thickness*(2958 Ke->values[(4*i+1)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity[2]*thickness*( 2958 2959 4.*dbasis[0*numnodes+j]*dbasis[0*numnodes+i] + dbasis[1*numnodes+j]*dbasis[1*numnodes+i] 2959 2960 )*2*pow(n+1,2)/((2*n+3)*(n+2)) 2960 2961 + 2961 gauss->weight*Jdet*viscosity *basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1))2962 gauss->weight*Jdet*viscosity[3]*basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1)) 2962 2963 ;//K22 2963 Ke->values[(4*i+1)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity *thickness*(2964 Ke->values[(4*i+1)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity[1]*thickness*( 2964 2965 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2965 2966 )*(n+1)/(n+2);//K23 2966 Ke->values[(4*i+1)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity *thickness*(2967 Ke->values[(4*i+1)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity[2]*thickness*( 2967 2968 2.*dbasis[1*numnodes+j]*dbasis[0*numnodes+i] + dbasis[0*numnodes+j]*dbasis[1*numnodes+i] 2968 2969 )*2*pow(n+1,2)/((2*n+3)*(n+2));//K24 2969 2970 2970 Ke->values[(4*i+2)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity *thickness*(2971 Ke->values[(4*i+2)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity[0]*thickness*( 2971 2972 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2972 2973 );//K31 2973 Ke->values[(4*i+2)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity *thickness*(2974 Ke->values[(4*i+2)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity[1]*thickness*( 2974 2975 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2975 2976 )*(n+1)/(n+2);//K32 2976 Ke->values[(4*i+2)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity *thickness*(2977 Ke->values[(4*i+2)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity[0]*thickness*( 2977 2978 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2978 2979 );//K33 2979 Ke->values[(4*i+2)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity *thickness*(2980 Ke->values[(4*i+2)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity[1]*thickness*( 2980 2981 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2981 2982 )*(n+1)/(n+2);//K34 2982 2983 2983 Ke->values[(4*i+3)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity *thickness*(2984 Ke->values[(4*i+3)*2*2*numnodes+4*j+0] += gauss->weight*Jdet*viscosity[1]*thickness*( 2984 2985 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2985 2986 )*(n+1)/(n+2);//K41 2986 Ke->values[(4*i+3)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity *thickness*(2987 Ke->values[(4*i+3)*2*2*numnodes+4*j+1] += gauss->weight*Jdet*viscosity[2]*thickness*( 2987 2988 2.*dbasis[0*numnodes+j]*dbasis[1*numnodes+i] + dbasis[1*numnodes+j]*dbasis[0*numnodes+i] 2988 2989 )*2*pow(n+1,2)/((2*n+3)*(n+2));//K42 2989 Ke->values[(4*i+3)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity *thickness*(2990 Ke->values[(4*i+3)*2*2*numnodes+4*j+2] += gauss->weight*Jdet*viscosity[1]*thickness*( 2990 2991 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2991 2992 )*(n+1)/(n+2);//K43 2992 Ke->values[(4*i+3)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity *thickness*(2993 Ke->values[(4*i+3)*2*2*numnodes+4*j+3] += gauss->weight*Jdet*viscosity[2]*thickness*( 2993 2994 4.*dbasis[1*numnodes+j]*dbasis[1*numnodes+i] + dbasis[0*numnodes+j]*dbasis[0*numnodes+i] 2994 2995 )*2*pow(n+1,2)/((2*n+3)*(n+2)) 2995 2996 + 2996 gauss->weight*Jdet*viscosity *basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1))2997 gauss->weight*Jdet*viscosity[3]*basis[j]*basis[i]*pow(n+1,2)/(thickness*(2*n+1)) 2997 2998 ;//K44 2998 2999 } -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.cpp ¶
r26292 r26294 4212 4212 4213 4213 }/*}}}*/ 4214 void Element::StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx _input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input){/*{{{*/4215 /*Compute the 2d Blatter/MLHO Strain Rate (5 components) :4214 void Element::StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta){/*{{{*/ 4215 /*Compute the 2d Blatter/MLHO Strain Rate (5 components) for a given vertical coordinate (zeta): 4216 4216 * 4217 4217 * epsilon=[exx eyy exy exz eyz] … … 4221 4221 * 4222 4222 * the contribution of vz is neglected 4223 * 4224 * zeta = (surface - z)/thickness 4225 * i.e., zeta=0 <=> ice surface 4226 * i.e., zeta=1 <=> ice base 4223 4227 */ 4224 4228 4225 4229 /*Intermediaries*/ 4226 IssmDouble dvx[2]; // [dvx/dx, dvx/dy] 4227 IssmDouble dvy[2]; // [dvy/dx, dvy/dy] 4228 IssmDouble vxshear,vyshear,thickness; 4230 IssmDouble dvxb[2]; // [dvx/dx, dvx/dy] at the base 4231 IssmDouble dvyb[2]; // [dvy/dx, dvy/dy] at the base 4232 IssmDouble dvxsh[2]; // [dvx/dx, dvx/dy] at the surface (only the shear) 4233 IssmDouble dvysh[2]; // [dvy/dx, dvy/dy] at the surface (only the shear) 4234 IssmDouble vxsh,vysh; // shear vx and shear at the surface 4235 IssmDouble thickness,n; 4229 4236 4230 4237 /*Check that both inputs have been found*/ 4231 if (!vx _input || !vy_input || !vxshear_input || !vyshear_input || !thickness_input){4232 _error_("Input missing. Here are the input pointers we have for vx : " << vx_input << ", vy: " << vy_input << ", vxshear: " << vxshear_input << ", vyshear: " << vyshear_input << ", thickness: " << thickness_input<< "\n");4238 if (!vxbase_input || !vybase_input || !vxshear_input || !vyshear_input || !thickness_input || !n_input){ 4239 _error_("Input missing. Here are the input pointers we have for vxb: " << vxbase_input << ", vyb: " << vybase_input << ", vxshear: " << vxshear_input << ", vyshear: " << vyshear_input << ", thickness: " << thickness_input << ", n: " << n_input<< "\n"); 4233 4240 } 4234 4241 4235 4242 /*Get strain rate assuming that epsilon has been allocated*/ 4236 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss); 4237 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss); 4243 vxbase_input->GetInputDerivativeValue(&dvxb[0],xyz_list,gauss); 4244 vybase_input->GetInputDerivativeValue(&dvyb[0],xyz_list,gauss); 4245 vxshear_input->GetInputDerivativeValue(&dvxsh[0],xyz_list,gauss); 4246 vyshear_input->GetInputDerivativeValue(&dvysh[0],xyz_list,gauss); 4238 4247 thickness_input->GetInputValue(&thickness,gauss); _assert_(thickness>0); 4239 vxshear_input->GetInputValue(&vxshear,gauss); 4240 vyshear_input->GetInputValue(&vyshear,gauss); 4241 4242 epsilon[0] = dvx[0]; 4243 epsilon[1] = dvy[1]; 4244 epsilon[2] = 0.5*(dvx[1] + dvy[0]); 4245 epsilon[3] = 0.5*vxshear/thickness; 4246 epsilon[4] = 0.5*vyshear/thickness; 4248 vxshear_input->GetInputValue(&vxsh,gauss); 4249 vyshear_input->GetInputValue(&vysh,gauss); 4250 n_input->GetInputValue(&n,gauss); 4251 4252 epsilon[0] = dvxb[0] + dvxsh[0]*( 1 - pow(zeta,n+1) ); 4253 epsilon[1] = dvyb[1] + dvysh[1]*( 1 - pow(zeta,n+1) ); 4254 epsilon[2] = 0.5*( dvxb[1] + dvxsh[1]*( 1 - pow(zeta,n+1) ) + dvyb[0] + dvysh[0]*( 1 - pow(zeta,n+1) ) ); 4255 epsilon[3] = 0.5*(vxsh/thickness)*(n+1)*pow(zeta,n); 4256 epsilon[4] = 0.5*(vysh/thickness)*(n+1)*pow(zeta,n); 4247 4257 4248 4258 }/*}}}*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.h ¶
r26292 r26294 181 181 void StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 182 182 void StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 183 void StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input );183 void StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta); 184 184 void StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 185 185 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input); -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Material.h ¶
r26292 r26294 51 51 virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0; 52 52 virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; 53 virtual void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input )=0;53 virtual void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input)=0; 54 54 virtual void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0; 55 55 virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp ¶
r26292 r26294 567 567 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 568 568 }/*}}}*/ 569 void Matestar::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input ){/*{{{*/569 void Matestar::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/ 570 570 _error_("not implemented yet"); 571 571 }/*}}}*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Matestar.h ¶
r26292 r26294 76 76 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 77 77 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 78 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input );78 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input); 79 79 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf); 80 80 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Matice.cpp ¶
r26292 r26294 736 736 *pviscosity=viscosity; 737 737 }/*}}}*/ 738 void Matice::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx _input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input){/*{{{*/738 void Matice::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/ 739 739 740 740 /*Intermediaries*/ 741 IssmDouble viscosity;742 IssmDouble thickness;743 741 IssmDouble epsilon[5]; /* epsilon=[exx,eyy,exy,exz,eyz]; */ 744 IssmDouble eps_eff; 745 746 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */ 747 element->StrainRateMLHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input,vxshear_input,vyshear_input,thickness_input); 748 eps_eff = sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2] + epsilon[3]*epsilon[3] + epsilon[4]*epsilon[4] + epsilon[0]*epsilon[1]); 749 750 /*Get viscosity*/ 751 this->GetViscosityBar(&viscosity,eps_eff,gauss); 742 IssmDouble epsilon_eff; 743 IssmDouble zeta,H,n; 744 IssmDouble f[4],F[4]; 745 IssmDouble mubar[4]; 746 IssmDouble mu; 747 int order=5; 748 749 for(int i=0;i<4;++i) mubar[i]=0; 750 751 GaussSeg* gauss_seg=new GaussSeg(order); 752 //IssmDouble eps_eff_averaged=0; 753 while(gauss_seg->next()){ 754 755 /*Compute zeta for gauss_seg point (0=surface, 1=base)*/ 756 zeta=0.5*(gauss_seg->coord1+1); 757 758 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy (for a given zeta)*/ 759 element->StrainRateMLHO(&epsilon[0],xyz_list,gauss, 760 vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta); 761 epsilon_eff=sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2] 762 + epsilon[3]*epsilon[3] + epsilon[4]*epsilon[4] + epsilon[0]*epsilon[1]); 763 764 /*Get viscosity at zeta - FIXME for now Bbar*/ 765 this->GetViscosityBar(&mu,epsilon_eff,gauss); 766 767 thickness_input->GetInputValue(&H, gauss); 768 n_input->GetInputValue(&n,gauss); 769 770 /*Compute fi and Fi at zeta*/ 771 f[0]=1; 772 f[1]=(1-pow(zeta,n+1)); 773 f[2]=(1-pow(zeta,n+1))*(1-pow(zeta,n+1)); 774 f[3]=((n+1)/H)*pow(zeta,n) * ((n+1)/H)*pow(zeta,n); 775 776 F[0]=H; 777 F[1]=H*(n+1)/(n+2); 778 F[2]=2*H*(n+1)*(n+1)/( (2*n+3)*(n+2) ); 779 F[3]=(n+1)*(n+1)/( H*(2*n+1) ); 780 781 /*Sum the viscosity*/ 782 mubar[0]+=(H/(2*F[0]))*gauss_seg->weight*mu*f[0]; 783 mubar[1]+=(H/(2*F[1]))*gauss_seg->weight*mu*f[1]; 784 mubar[2]+=(H/(2*F[2]))*gauss_seg->weight*mu*f[2]; 785 mubar[3]+=(H/(2*F[3]))*gauss_seg->weight*mu*f[3]; 786 787 }//while 752 788 753 789 /*Assign output pointer*/ 754 *pviscosity=viscosity; 790 pviscosity[0]=mubar[0]; 791 pviscosity[1]=mubar[1]; 792 pviscosity[2]=mubar[2]; 793 pviscosity[3]=mubar[3]; 794 795 /*Clean up*/ 796 delete gauss_seg; 755 797 }/*}}}*/ 756 798 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Matice.h ¶
r26292 r26294 78 78 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 79 79 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 80 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input );80 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input); 81 81 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf); 82 82 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); -
TabularUnified issm/trunk-jpl/src/c/classes/Materials/Matlitho.h ¶
r26292 r26294 72 72 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");}; 73 73 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");}; 74 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input ){_error_("not supported");};74 void ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){_error_("not supported");}; 75 75 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");}; 76 76 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
Note:
See TracChangeset
for help on using the changeset viewer.