Changeset 26780
- Timestamp:
- 01/13/22 13:17:50 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r26691 r26780 29 29 #define NUMVERTICES 3 30 30 #define NUMVERTICES1D 2 31 //#define ISMICI 131 //#define MICI 1 //1 = DeConto & Pollard, 2 = DOMINOS 32 32 33 33 /*Constructors/destructor/copy*/ … … 4381 4381 ls_input->GetInputValue(&ls,&gauss); 4382 4382 4383 /*Do we assume that the calving front does not move?*/ 4384 //movingfrontvx[iv] = 0.; 4385 //movingfrontvy[iv] = 0.; 4386 4387 //if(Hc>80. && bed<0. && fabs(ls)<100.e3){ //Pollard & De Conto 4388 if(Hc>135. && bed<0. && fabs(ls)<100.e3){ // Crawford et all 4389 4390 lsf_slopex_input->GetInputValue(&dlsf[0],&gauss); 4391 norm_dlsf=0.; 4392 for(i=0;i<dim;i++) norm_dlsf+=pow(dlsf[i],2); 4393 norm_dlsf=sqrt(norm_dlsf); 4394 4395 /*use vel direction instead of LSF*/ 4396 vx_input->GetInputValue(&v[0],&gauss); 4397 vy_input->GetInputValue(&v[1],&gauss); 4398 vel=sqrt(v[0]*v[0] + v[1]*v[1]); 4399 norm_dlsf = max(vel,1.e-10); 4400 dlsf[0] = v[0]; 4401 dlsf[1] = v[1]; 4383 /*use vel direction instead of LSF*/ 4384 vx_input->GetInputValue(&v[0],&gauss); 4385 vy_input->GetInputValue(&v[1],&gauss); 4386 vel=sqrt(v[0]*v[0] + v[1]*v[1]); 4387 norm_dlsf = max(vel,1.e-10); 4388 dlsf[0] = v[0]; 4389 dlsf[1] = v[1]; 4390 4391 /*Do we assume that the calving front does not move if MICI is not engaged?*/ 4392 movingfrontvx[iv] = 0.; 4393 movingfrontvy[iv] = 0.; 4394 //movingfrontvx[iv] = -2000./(365*24*3600.)*dlsf[0]/norm_dlsf; 4395 //movingfrontvy[iv] = -2000./(365*24*3600.)*dlsf[1]/norm_dlsf; 4396 4397 if(MICI==1 && Hc>80. && bed<0. && fabs(ls)<100.e3){ //Pollard & De Conto 4398 IssmDouble C = (min(max(Hc,80.),100.) - 80.)/20. * 10./(24*3600.); /*Original MICI! convert from m/day to m/s*/ 4399 4400 /*Front motion = ice speed (v) - calving rate*/ 4401 movingfrontvx[iv] = v[0]-C*dlsf[0]/norm_dlsf; 4402 movingfrontvy[iv] = v[1]-C*dlsf[1]/norm_dlsf; 4403 } 4404 else if (MICI==2 && Hc>135. && bed<0. && fabs(ls)<100.e3){ // Crawford et all 4402 4405 4403 4406 /*5C Bn (worst case scenario)*/ … … 4405 4408 IssmDouble alpha = 7.3; 4406 4409 IssmDouble C = min(2000.,I*pow(Hc,alpha))/(24*3600.); /*convert from m/day to m/s*/ 4407 //IssmDouble C = (min(max(Hc,80.),100.) - 80.)/20. * 10./(24*3600.); /*Original MICI! convert from m/day to m/s*/ 4408 movingfrontvx[iv] = -C*dlsf[0]/norm_dlsf; 4409 movingfrontvy[iv] = -C*dlsf[1]/norm_dlsf; 4410 4411 /*Front motion = ice speed (v) - calving rate*/ 4412 movingfrontvx[iv] = v[0] -C*dlsf[0]/norm_dlsf; 4413 movingfrontvy[iv] = v[1] -C*dlsf[1]/norm_dlsf; 4410 4414 } 4411 4415 }
Note:
See TracChangeset
for help on using the changeset viewer.