Changeset 17368
- Timestamp:
- 02/28/14 13:36:22 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r17364 r17368 98 98 IssmDouble Jdet, dt, D_scalar; 99 99 IssmDouble h,hx,hy,hz; 100 IssmDouble vel,v[dim] ;100 IssmDouble vel,v[dim],w[dim]; 101 101 IssmDouble calvingrate, c[dim]; 102 102 IssmDouble dlsf[dim], norm_dlsf, normal[dim]; … … 153 153 norm_dlsf=sqrt(norm_dlsf); 154 154 155 if(norm_dlsf>1.e-10) 156 for(i=0;i<dim;i++) c[i]=calvingrate*dlsf[i]/norm_dlsf; 155 if(norm_dlsf>1.e-10){ 156 for(i=0;i<dim;i++) normal[i]=dlsf[i]/norm_dlsf; 157 for(i=0;i<dim;i++) c[i]=calvingrate*normal[i]; 158 } 157 159 else 158 160 for(i=0;i<dim;i++) c[i]=0.; 161 162 for(i=0;i<dim;i++) w[i]=v[i]-c[i]; 159 163 160 164 for(row=0;row<dim;row++) 161 165 for(col=0;col<dim;col++) 162 D[row][col]=((row==col)?D_scalar*(v[row]-c[row]):0.); 166 if(row==col) 167 D[row][col]=D_scalar*w[row]; 168 else 169 D[row][col]=0.; 163 170 164 171 TripleMultiply(B,dim,numnodes,1, … … 179 186 /* Artificial Diffusion */ 180 187 element->ElementSizes(&hx,&hy,&hz); 181 h=sqrt( pow(hx*v[0]/vel,2) + pow(hy*v[1]/vel,2) ); //FIXME: is this correct? 182 183 kappa=h*vel/2.; //FIXME: insert suitable value for kappa 188 h=sqrt( pow(hx*v[0]/vel,2) + pow(hy*v[1]/vel,2) ); 189 kappa=h*vel/2.; 184 190 for(row=0;row<dim;row++) 185 191 for(col=0;col<dim;col++) 186 D[row][col]=((row==col)?D_scalar*kappa:0.); 192 if(row==col) 193 D[row][col]=D_scalar*kappa; 194 else 195 D[row][col]=0.; 187 196 188 197 TripleMultiply(Bprime,dim,numnodes,1,
Note:
See TracChangeset
for help on using the changeset viewer.