Changeset 13065
- Timestamp:
- 08/16/12 11:09:34 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp
r13064 r13065 8183 8183 8184 8184 int i; 8185 IssmDouble a,c,d,z,s,viscosity;8185 IssmDouble z,s,viscosity,p,q,delta; 8186 8186 IssmDouble tau_perp,tau_par,eps_b,A; 8187 8187 IssmDouble epsilonvx[5]; /*exx eyy exy exz eyz*/ … … 8215 8215 A=matice->GetA(); 8216 8216 8217 /*Solve for tau_perp*/ 8218 int numroots; 8219 IssmDouble roots[3]; 8220 a = A; 8221 c = A *tau_perp*tau_perp; 8222 d = - eps_b; 8223 cubic(a,0.,c,d,roots,&numroots); 8224 tau_par=roots[0]; 8225 //printf(" (%g =0?)\n",a*roots[0]*roots[0]*roots[0]+c*roots[0]+d); 8217 /*Solve for tau_perp (http://fr.wikipedia.org/wiki/Méthode_de_Cardan)*/ 8218 p = tau_perp *tau_perp; 8219 q = - eps_b/A; 8220 delta = q *q + p*p*p*4./27.; 8221 _assert_(delta>0); 8222 tau_par = pow(0.5*(-q+sqrt(delta)),1./3.) - pow(0.5*(q+sqrt(delta)),1./3.); 8226 8223 8227 8224 /*Viscosity*/ 8228 8225 viscosity = 1./(2.*A*(tau_par*tau_par + tau_perp*tau_perp)); 8229 //printf("denom = %g (%g,%g)\n",tau_par*tau_par + tau_perp*tau_perp,tau_par,tau_perp);8230 8226 _assert_(!isnan(viscosity)); 8227 _assert_(viscosity > 0.); 8231 8228 8232 8229 /*Assign output pointer*/
Note:
See TracChangeset
for help on using the changeset viewer.