Changeset 18842
- Timestamp:
- 11/25/14 02:24:58 (10 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r18836 r18842 1316 1316 } 1317 1317 /*}}}*/ 1318 void Penta::GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){/*{{{*/ 1319 1320 /* Intermediaries */ 1321 const int dim=3; 1322 int i, dir,nrfrontnodes; 1323 IssmDouble levelset[NUMVERTICES]; 1324 1325 /*Recover parameters and values*/ 1326 GetInputListOnVertices(&levelset[0],levelsetenum); 1327 1328 int* indicesfront = xNew<int>(NUMVERTICES); 1329 /* Get basal nodes where there is no ice */ 1330 nrfrontnodes=0; 1331 for(i=0;i<NUMVERTICES2D;i++){ 1332 if(levelset[i]>=0.){ 1333 indicesfront[nrfrontnodes]=i; 1334 nrfrontnodes++; 1335 } 1336 } 1337 _assert_(nrfrontnodes==2); 1338 1339 /* arrange order of basal frontnodes such that they are oriented counterclockwise */ 1340 if((NUMVERTICES2D+indicesfront[0]-indicesfront[1])%NUMVERTICES2D!=NUMVERTICES2D-1){ 1341 int index=indicesfront[0]; 1342 indicesfront[0]=indicesfront[1]; 1343 indicesfront[1]=index; 1344 } 1345 1346 IssmDouble* xyz_front = xNew<IssmDouble>(2*dim*nrfrontnodes); 1347 /* Return basal and top front nodes */ 1348 for(i=0;i<nrfrontnodes;i++){ 1349 for(dir=0;dir<dim;dir++){ 1350 int ind1=i*dim+dir, ind2=(2*nrfrontnodes-1-i)*dim+dir; // vertex structure front segment: base0, base1, top1, top0 1351 xyz_front[ind1]=xyz_list[dim*indicesfront[i]+dir]; 1352 xyz_front[ind2]=xyz_list[dim*(indicesfront[i]+NUMVERTICES2D)+dir]; 1353 } 1354 } 1355 1356 *pxyz_front=xyz_front; 1357 1358 xDelete<int>(indicesfront); 1359 }/*}}}*/ 1318 1360 void Penta::InputDepthAverageAtBase(int enum_type,int average_enum_type){/*{{{*/ 1319 1361 -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r18786 r18842 96 96 bool IsFaceOnBoundary(void){_error_("not implemented yet");}; 97 97 void ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum); 98 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum) {_error_("not implemented yet");};98 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum); 99 99 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");}; 100 100 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm);
Note:
See TracChangeset
for help on using the changeset viewer.