Ice Sheet System Model  4.18
Code documentation
Functions
ExpToLevelSet.cpp File Reference
#include "./ExpToLevelSet.h"

Go to the source code of this file.

Functions

void ExpToLevelSetUsage (void)
 
 WRAPPER (ExpToLevelSet_python)
 

Function Documentation

◆ ExpToLevelSetUsage()

void ExpToLevelSetUsage ( void  )

Definition at line 8 of file ExpToLevelSet.cpp.

8  {/*{{{*/
9  _printf_("EXPTOLEVELSET - determien levelset distance between a contour and a cloud of points\n");
10  _printf_("\n");
11  _printf_(" Usage: \n");
12  _printf_(" distance=ExpToLevelSet(x,y,contourname)\n");
13  _printf_("\n");
14  _printf_(" x,y: cloud point.\n");
15  _printf_(" contourname: name of .exp file containing the contours.\n");
16  _printf_(" distance: distance vector representing a levelset where the 0 level is one the contour segments', \n");
17  _printf_("\n");
18  _printf_(" Example: \n");
19  _printf_(" distance=ExpToLevelSet(md.mesh.x,md.mesh.y,'Contour.exp')\n");
20  _printf_("\n");
21 }/*}}}*/

◆ WRAPPER()

WRAPPER ( ExpToLevelSet_python  )

Definition at line 22 of file ExpToLevelSet.cpp.

22  {
23 
24  /*diverse: */
25  int i;
26 
27  /* required input: */
28  int nods;
29  double *x = NULL;
30  double *y = NULL;
31  char *interptype = NULL;
32  double *flags = NULL;
33  Contours *contours = NULL;
34 
35  /* output: */
36  double *distance = NULL;
37 
38  /*Boot module: */
39  MODULEBOOT();
40 
41  /*check on input arguments: */
42  if(nrhs!=NRHS){
44  _error_("usage. See above");
45  }
46 
47  /*Fetch inputs: */
48  FetchData(&x,&nods,NULL,X);
49  FetchData(&y,NULL,NULL,Y);
50  FetchData(&contours,CONTOUR);
51 
52  /*Run interpolation routine: */
53  ExpToLevelSetx( &distance,x,y,nods,contours);
54  ContourToNodesx(&flags,x,y,nods,contours,2);
55 
56  /*Make flags into a sign, left or right, or nill: */
57  for(i=0;i<nods;i++){
58  if (flags[i]==0) flags[i]=-1;
59  else if (flags[i]==2) flags[i]=0;
60  }
61 
62  /*Multiply flags and distance: */
63  for(i=0;i<nods;i++)distance[i]*=flags[i];
64 
65  /* output: */
66  WriteData(PLHS0,distance,nods);
67 
68  /*Clean up*/
69  xDelete<double>(x);
70  xDelete<double>(y);
71  xDelete<char>(interptype);
72  delete contours;
73  xDelete<double>(distance);
74  xDelete<double>(flags);
75 
76  /*end module: */
77  MODULEEND();
78 }
WriteData
void WriteData(IssmPDouble **pmatrix, int *pnel, int *matrix, int M, int N)
Definition: WriteJavascriptData.cpp:16
_printf_
#define _printf_(StreamArgs)
Definition: Print.h:22
NRHS
#define NRHS
Definition: BamgConvertMesh.h:52
Contours
Declaration of Contours class.
Definition: Contours.h:10
ContourToNodesx
int ContourToNodesx(IssmPDouble **pflags, double *x, double *y, int nods, Contour< IssmPDouble > **contours, int numcontours, int edgevalue)
Definition: ContourToNodesx.cpp:6
ExpToLevelSetUsage
void ExpToLevelSetUsage(void)
Definition: ExpToLevelSet.cpp:8
FetchData
void FetchData(char **pstring, char *stringin)
Definition: FetchJavascriptData.cpp:16
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
ExpToLevelSetx
int ExpToLevelSetx(double **pdistance, double *x, double *y, int nods, Contours *contours)
Definition: ExpToLevelSetx.cpp:12