Changeset 17370
- Timestamp:
- 03/03/14 09:48:20 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r17368 r17370 93 93 94 94 /*Intermediaries */ 95 constint dim = 2; // solve for LSF in horizontal plane only95 int dim = 2; // solve for LSF in horizontal plane only 96 96 int i, row, col; 97 97 IssmDouble kappa; 98 98 IssmDouble Jdet, dt, D_scalar; 99 99 IssmDouble h,hx,hy,hz; 100 IssmDouble vel ,v[dim],w[dim];101 IssmDouble calvingrate , c[dim];100 IssmDouble vel; 101 IssmDouble calvingrate; 102 102 IssmDouble dlsf[dim], norm_dlsf, normal[dim]; 103 103 IssmDouble* xyz_list = NULL; … … 111 111 IssmDouble* B = xNew<IssmDouble>(dim*numnodes); 112 112 IssmDouble* Bprime = xNew<IssmDouble>(dim*numnodes); 113 IssmDouble D[dim][dim]; 113 IssmDouble* D = xNew<IssmDouble>(dim*dim); 114 IssmDouble* v = xNew<IssmDouble>(dim); 115 IssmDouble* w = xNew<IssmDouble>(dim); 116 IssmDouble* c = xNew<IssmDouble>(dim); 114 117 115 118 /*Retrieve all inputs and parameters*/ … … 165 168 for(col=0;col<dim;col++) 166 169 if(row==col) 167 D[row ][col]=D_scalar*w[row];170 D[row*dim+col]=D_scalar*w[row]; 168 171 else 169 D[row ][col]=0.;172 D[row*dim+col]=0.; 170 173 171 174 TripleMultiply(B,dim,numnodes,1, 172 &D[0][0],dim,dim,0,175 D,dim,dim,0, 173 176 Bprime,dim,numnodes,0, 174 177 &Ke->values[0],1); … … 177 180 int stabilization=2; 178 181 vel=0.; 179 for(i=0;i<dim;i++) vel+= pow(v[i],2);182 for(i=0;i<dim;i++) vel+=v[i]*v[i]; 180 183 vel=sqrt(vel)+1.e-14; 181 184 switch(stabilization){ … … 191 194 for(col=0;col<dim;col++) 192 195 if(row==col) 193 D[row ][col]=D_scalar*kappa;196 D[row*dim+col]=D_scalar*kappa; 194 197 else 195 D[row ][col]=0.;198 D[row*dim+col]=0.; 196 199 197 200 TripleMultiply(Bprime,dim,numnodes,1, 198 &D[0][0],dim,dim,0,201 D,dim,dim,0, 199 202 Bprime,dim,numnodes,0, 200 203 &Ke->values[0],1); … … 206 209 for(row=0;row<dim;row++) 207 210 for(col=0;col<dim;col++) 208 D[row ][col] = D_scalar*h/(2.*vel)*v[row]*v[col];211 D[row*dim+col] = D_scalar*h/(2.*vel)*v[row]*v[col]; 209 212 210 213 TripleMultiply(Bprime,dim,numnodes,1, 211 &D[0][0],dim,dim,0,214 D,dim,dim,0, 212 215 Bprime,dim,numnodes,0, 213 216 &Ke->values[0],1); … … 222 225 xDelete<IssmDouble>(basis); 223 226 xDelete<IssmDouble>(B); 227 xDelete<IssmDouble>(D); 224 228 xDelete<IssmDouble>(Bprime); 229 xDelete<IssmDouble>(v); 230 xDelete<IssmDouble>(w); 231 xDelete<IssmDouble>(c); 225 232 delete gauss; 226 233 return Ke;
Note:
See TracChangeset
for help on using the changeset viewer.