Ice Sheet System Model  4.18
Code documentation
Macros | Functions
WritePythonData.cpp File Reference
#include "./pythonio.h"
#include "../../c/shared/shared.h"

Go to the source code of this file.

Macros

#define PY_ARRAY_UNIQUE_SYMBOL   PythonIOSymbol
 
#define NO_IMPORT
 

Functions

void WriteData (PyObject *py_tuple, int index, int integer)
 
void WriteData (PyObject *py_tuple, int index, char *string)
 
void WriteData (PyObject *tuple, int index, double *matrix, int M, int N)
 
void WriteData (PyObject *tuple, int index, int *matrix, int M, int N)
 
void WriteData (PyObject *tuple, int index, bool *matrix, int M, int N)
 
void WriteData (PyObject *py_tuple, int index, double *vector, int M)
 
void WriteData (PyObject *py_tuple, int index, short *vector, int M)
 
void WriteData (PyObject *py_tuple, int index, int *vector, int M)
 
void WriteData (PyObject *py_tuple, int index)
 
void WriteData (PyObject *py_tuple, int index, BamgGeom *bamggeom)
 
void WriteData (PyObject *py_tuple, int index, BamgMesh *bamgmesh)
 
void WriteData (PyObject *py_tuple, int index, IssmDenseMat< double > *matrix)
 
void WriteData (PyObject *py_tuple, int index, IssmSeqVec< double > *vector)
 
void WriteData (PyObject *py_tuple, int index, RiftStruct *riftstruct)
 
PyObject * PyArrayFromCopiedData (int dims[2], double *data)
 
PyObject * PyArrayFromCopiedData (int dimi, int dimj, double *data)
 
PyObject * PyArrayFromCopiedData (int dimi, int dimj, int *data)
 
PyObject * PyArrayFromCopiedData (int dimi, int dimj, bool *data)
 

Macro Definition Documentation

◆ PY_ARRAY_UNIQUE_SYMBOL

#define PY_ARRAY_UNIQUE_SYMBOL   PythonIOSymbol

Definition at line 11 of file WritePythonData.cpp.

◆ NO_IMPORT

#define NO_IMPORT

Definition at line 12 of file WritePythonData.cpp.

Function Documentation

◆ WriteData() [1/14]

void WriteData ( PyObject *  py_tuple,
int  index,
int  integer 
)

Definition at line 19 of file WritePythonData.cpp.

19  {
20 
21  #if _PYTHON_MAJOR_ >= 3
22  PyTuple_SetItem(py_tuple, index, PyLong_FromSsize_t((Py_ssize_t)integer));
23  #else
24  PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t((Py_ssize_t)integer));
25  #endif
26 
27 }/*}}}*/

◆ WriteData() [2/14]

void WriteData ( PyObject *  py_tuple,
int  index,
char *  string 
)

Definition at line 29 of file WritePythonData.cpp.

29  {
30 
31  PyTuple_SetItem(py_tuple, index, PyUnicode_FromString(string));
32 
33 }/*}}}*/

◆ WriteData() [3/14]

void WriteData ( PyObject *  tuple,
int  index,
double *  matrix,
int  M,
int  N 
)

Definition at line 35 of file WritePythonData.cpp.

35  {
36 
37  npy_intp dims[2]={0,0};
38  PyObject* array=NULL;
39 
40  /*copy matrix: */
41  double* matrix_python=xNew<double>(M*N);
42  memcpy(matrix_python,matrix,M*N*sizeof(double));
43 
44  dims[0]=(npy_intp)M;
45  dims[1]=(npy_intp)N;
46  array=PyArray_SimpleNewFromData(2,dims,NPY_DOUBLE,matrix_python);
47 
48  PyTuple_SetItem(tuple, index, array);
49 }/*}}}*/

◆ WriteData() [4/14]

void WriteData ( PyObject *  tuple,
int  index,
int *  matrix,
int  M,
int  N 
)

Definition at line 51 of file WritePythonData.cpp.

51  {
52 
53  npy_intp dims[2]={0,0};
54  PyObject* array=NULL;
55 
56  /*transform into long matrix: */
57  long* lmatrix=xNew<long>(M*N);
58  for(int i=0;i<M*N;i++)lmatrix[i]=(long)matrix[i];
59 
60  dims[0]=(npy_intp)M;
61  dims[1]=(npy_intp)N;
62  array=PyArray_SimpleNewFromData(2,dims,NPY_INT64,lmatrix);
63 
64  PyTuple_SetItem(tuple, index, array);
65 }/*}}}*/

◆ WriteData() [5/14]

void WriteData ( PyObject *  tuple,
int  index,
bool *  matrix,
int  M,
int  N 
)

Definition at line 67 of file WritePythonData.cpp.

67  {
68 
69  npy_intp dims[2]={0,0};
70  PyObject* array=NULL;
71 
72  /*copy matrix: */
73  bool* matrix_python=xNew<bool>(M*N);
74  memcpy(matrix_python,matrix,M*N*sizeof(bool));
75 
76  dims[0]=(npy_intp)M;
77  dims[1]=(npy_intp)N;
78  array=PyArray_SimpleNewFromData(2,dims,NPY_BOOL,matrix_python);
79 
80  PyTuple_SetItem(tuple, index, array);
81 }/*}}}*/

◆ WriteData() [6/14]

void WriteData ( PyObject *  py_tuple,
int  index,
double *  vector,
int  M 
)

Definition at line 83 of file WritePythonData.cpp.

83  {
84 
85  npy_intp dim = 10;
86  PyObject *array = NULL;
87 
88 
89  /*copy vector: */
90  double* vector_python=xNew<double>(M);
91  memcpy(vector_python,vector,M*sizeof(double));
92 
93  dim=(npy_intp)M;
94  array=PyArray_SimpleNewFromData(1,&dim,NPY_DOUBLE,vector_python);
95 
96  PyTuple_SetItem(py_tuple, index, array);
97 
98 }/*}}}*/

◆ WriteData() [7/14]

void WriteData ( PyObject *  py_tuple,
int  index,
short *  vector,
int  M 
)

Definition at line 100 of file WritePythonData.cpp.

100  {
101 
102  long* lvector=NULL;
103  npy_intp dim=10;
104  PyObject* array=NULL;
105 
106  /*transform into long matrix: */
107  lvector=xNew<long>(M);
108  for(int i=0;i<M;i++)lvector[i]=(long)vector[i];
109 
110  dim=(npy_intp)M;
111  array=PyArray_SimpleNewFromData(1,&dim,NPY_INT64,lvector);
112 
113  PyTuple_SetItem(py_tuple, index, array);
114 
115 }/*}}}*/

◆ WriteData() [8/14]

void WriteData ( PyObject *  py_tuple,
int  index,
int *  vector,
int  M 
)

Definition at line 117 of file WritePythonData.cpp.

117  {
118 
119  long* lvector=NULL;
120  npy_intp dim=10;
121  PyObject* array=NULL;
122 
123  /*transform into long matrix: */
124  lvector=xNew<long>(M);
125  for(int i=0;i<M;i++)lvector[i]=(long)vector[i];
126 
127  dim=(npy_intp)M;
128  array=PyArray_SimpleNewFromData(1,&dim,NPY_INT64,lvector);
129 
130  PyTuple_SetItem(py_tuple, index, array);
131 
132 }/*}}}*/

◆ WriteData() [9/14]

void WriteData ( PyObject *  py_tuple,
int  index 
)

Definition at line 134 of file WritePythonData.cpp.

134  {
135 
136  PyTuple_SetItem(py_tuple, index, Py_None);
137 
138 }/*}}}*/

◆ WriteData() [10/14]

void WriteData ( PyObject *  py_tuple,
int  index,
BamgGeom bamggeom 
)

Definition at line 142 of file WritePythonData.cpp.

142  {
143 
144  PyObject* dict=NULL;
145 
146  dict=PyDict_New();
147 
148  PyDict_SetItemString(dict,"Vertices",PyArrayFromCopiedData(bamggeom->VerticesSize,bamggeom->Vertices));
149  PyDict_SetItemString(dict,"Edges",PyArrayFromCopiedData(bamggeom->EdgesSize,bamggeom->Edges));
150  PyDict_SetItemString(dict,"TangentAtEdges",PyArrayFromCopiedData(bamggeom->TangentAtEdgesSize,bamggeom->TangentAtEdges));
151  PyDict_SetItemString(dict,"Corners",PyArrayFromCopiedData(bamggeom->CornersSize,bamggeom->Corners));
152  PyDict_SetItemString(dict,"RequiredVertices",PyArrayFromCopiedData(bamggeom->RequiredVerticesSize,bamggeom->RequiredVertices));
153  PyDict_SetItemString(dict,"RequiredEdges",PyArrayFromCopiedData(bamggeom->RequiredEdgesSize,bamggeom->RequiredEdges));
154  PyDict_SetItemString(dict,"CrackedEdges",PyArrayFromCopiedData(bamggeom->CrackedEdgesSize,bamggeom->CrackedEdges));
155  PyDict_SetItemString(dict,"SubDomains",PyArrayFromCopiedData(bamggeom->SubDomainsSize,bamggeom->SubDomains));
156 
157  PyTuple_SetItem(py_tuple, index, dict);
158 }

◆ WriteData() [11/14]

void WriteData ( PyObject *  py_tuple,
int  index,
BamgMesh bamgmesh 
)

Definition at line 161 of file WritePythonData.cpp.

161  {
162 
163  PyObject* dict=NULL;
164 
165  dict=PyDict_New();
166 
167  PyDict_SetItemString(dict,"Vertices",PyArrayFromCopiedData(bamgmesh->VerticesSize,bamgmesh->Vertices));
168  PyDict_SetItemString(dict,"Edges",PyArrayFromCopiedData(bamgmesh->EdgesSize,bamgmesh->Edges));
169  PyDict_SetItemString(dict,"Triangles",PyArrayFromCopiedData(bamgmesh->TrianglesSize,bamgmesh->Triangles));
170  PyDict_SetItemString(dict,"IssmEdges",PyArrayFromCopiedData(bamgmesh->IssmEdgesSize,bamgmesh->IssmEdges));
171  PyDict_SetItemString(dict,"IssmSegments",PyArrayFromCopiedData(bamgmesh->IssmSegmentsSize,bamgmesh->IssmSegments));
172  PyDict_SetItemString(dict,"VerticesOnGeomVertex",PyArrayFromCopiedData(bamgmesh->VerticesOnGeomVertexSize,bamgmesh->VerticesOnGeomVertex));
173  PyDict_SetItemString(dict,"VerticesOnGeomEdge",PyArrayFromCopiedData(bamgmesh->VerticesOnGeomEdgeSize,bamgmesh->VerticesOnGeomEdge));
174  PyDict_SetItemString(dict,"EdgesOnGeomEdge",PyArrayFromCopiedData(bamgmesh->EdgesOnGeomEdgeSize,bamgmesh->EdgesOnGeomEdge));
175  PyDict_SetItemString(dict,"SubDomains",PyArrayFromCopiedData(bamgmesh->SubDomainsSize,bamgmesh->SubDomains));
176  PyDict_SetItemString(dict,"SubDomainsFromGeom",PyArrayFromCopiedData(bamgmesh->SubDomainsFromGeomSize,bamgmesh->SubDomainsFromGeom));
177  PyDict_SetItemString(dict,"ElementConnectivity",PyArrayFromCopiedData(bamgmesh->ElementConnectivitySize,bamgmesh->ElementConnectivity));
178  PyDict_SetItemString(dict,"NodalConnectivity",PyArrayFromCopiedData(bamgmesh->NodalConnectivitySize,bamgmesh->NodalConnectivity));
179  PyDict_SetItemString(dict,"NodalElementConnectivity",PyArrayFromCopiedData(bamgmesh->NodalElementConnectivitySize,bamgmesh->NodalElementConnectivity));
180  PyDict_SetItemString(dict,"CrackedVertices",PyArrayFromCopiedData(bamgmesh->CrackedVerticesSize,bamgmesh->CrackedVertices));
181  PyDict_SetItemString(dict,"CrackedEdges",PyArrayFromCopiedData(bamgmesh->CrackedEdgesSize,bamgmesh->CrackedEdges));
182 
183  PyTuple_SetItem(py_tuple, index, dict);
184 }

◆ WriteData() [12/14]

void WriteData ( PyObject *  py_tuple,
int  index,
IssmDenseMat< double > *  matrix 
)

Definition at line 187 of file WritePythonData.cpp.

187  {
188 
189  int M,N;
190  double* buffer=NULL;
191  npy_intp dims[2]={0,0};
192  PyObject* array=NULL;
193 
194  matrix->GetSize(&M,&N);
195  buffer=matrix->ToSerial();
196 
197  dims[0]=(npy_intp)M;
198  dims[1]=(npy_intp)N;
199  array=PyArray_SimpleNewFromData(2,dims,NPY_DOUBLE,buffer);
200 
201  PyTuple_SetItem(py_tuple, index, array);
202 
203 }/*}}}*/

◆ WriteData() [13/14]

void WriteData ( PyObject *  py_tuple,
int  index,
IssmSeqVec< double > *  vector 
)

Definition at line 205 of file WritePythonData.cpp.

205  {
206 
207  int M;
208  double* buffer=NULL;
209  npy_intp dim=10;
210  PyObject* array=NULL;
211 
212  vector->GetSize(&M);
213  buffer=vector->ToMPISerial();
214 
215  dim=(npy_intp)M;
216  array=PyArray_SimpleNewFromData(1,&dim,NPY_DOUBLE,buffer);
217 
218  PyTuple_SetItem(py_tuple, index, array);
219 }

◆ WriteData() [14/14]

void WriteData ( PyObject *  py_tuple,
int  index,
RiftStruct riftstruct 
)

Definition at line 222 of file WritePythonData.cpp.

222  {
223 
224  int i;
225  PyObject* list=NULL;
226  PyObject* dict=NULL;
227 
228  list=PyList_New((Py_ssize_t)0);
229 
230  for (i=0; i<riftstruct->numrifts; i++) {
231  dict=PyDict_New();
232 
233  #if _PYTHON_MAJOR_ >= 3
234  PyDict_SetItemString(dict,"numsegs" ,PyLong_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
235  PyDict_SetItemString(dict,"fill" ,PyUnicode_FromString("Ice"));
236  PyDict_SetItemString(dict,"friction" ,PyLong_FromSsize_t((Py_ssize_t)0));
237  #else
238  PyDict_SetItemString(dict,"numsegs" ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
239  PyDict_SetItemString(dict,"fill" ,PyString_FromString("Ice"));
240  PyDict_SetItemString(dict,"friction" ,PyInt_FromSsize_t((Py_ssize_t)0));
241  #endif
242 
243  PyDict_SetItemString(dict,"segments" ,PyArrayFromCopiedData(riftstruct->riftsnumsegments[i] ,3,riftstruct->riftssegments[i]));
244  PyDict_SetItemString(dict,"pairs" ,PyArrayFromCopiedData(riftstruct->riftsnumpairs[i] ,2,riftstruct->riftspairs[i]));
245  PyDict_SetItemString(dict,"tips" ,PyArrayFromCopiedData(1 ,2,&riftstruct->riftstips[2*i]));
246  PyDict_SetItemString(dict,"penaltypairs" ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i]));
247  PyDict_SetItemString(dict,"fraction" ,PyFloat_FromDouble(0.));
248  PyDict_SetItemString(dict,"fractionincrement",PyFloat_FromDouble(0.1));
249  PyDict_SetItemString(dict,"state" ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],1,riftstruct->state[i]));
250 
251  PyList_Append(list, dict);
252  }
253 
254  PyTuple_SetItem(py_tuple, index, list);
255 }

◆ PyArrayFromCopiedData() [1/4]

PyObject* PyArrayFromCopiedData ( int  dims[2],
double *  data 
)

Definition at line 260 of file WritePythonData.cpp.

260  {
261 
262  double* pydata;
263  npy_intp pydims[2]={0,0};
264 
265  /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original
266  object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */
267 
268  pydims[0]=(npy_intp)dims[0];
269  pydims[1]=(npy_intp)dims[1];
270  pydata=xNew<IssmDouble>(dims[0]*dims[1]);
271  memcpy(pydata,data,dims[0]*dims[1]*sizeof(double));
272  return PyArray_SimpleNewFromData(2,pydims,NPY_DOUBLE,pydata);
273 }

◆ PyArrayFromCopiedData() [2/4]

PyObject* PyArrayFromCopiedData ( int  dimi,
int  dimj,
double *  data 
)

Definition at line 276 of file WritePythonData.cpp.

276  {
277 
278  double* pydata;
279  npy_intp pydims[2]={0,0};
280 
281  /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original
282  object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */
283 
284  pydims[0]=(npy_intp)dimi;
285  pydims[1]=(npy_intp)dimj;
286  pydata=xNew<IssmDouble>(dimi*dimj);
287  memcpy(pydata,data,dimi*dimj*sizeof(double));
288  return PyArray_SimpleNewFromData(2,pydims,NPY_DOUBLE,pydata);
289 }

◆ PyArrayFromCopiedData() [3/4]

PyObject* PyArrayFromCopiedData ( int  dimi,
int  dimj,
int *  data 
)

Definition at line 292 of file WritePythonData.cpp.

292  {
293 
294  long* pydata;
295  npy_intp pydims[2]={0,0};
296 
297  /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original
298  object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */
299 
300  pydims[0]=(npy_intp)dimi;
301  pydims[1]=(npy_intp)dimj;
302  pydata=xNew<long>(dimi*dimj);
303  for(int i=0;i<dimi*dimj;i++) pydata[i]=(long)data[i];
304  return PyArray_SimpleNewFromData(2,pydims,NPY_INT64,pydata);
305 }

◆ PyArrayFromCopiedData() [4/4]

PyObject* PyArrayFromCopiedData ( int  dimi,
int  dimj,
bool *  data 
)

Definition at line 308 of file WritePythonData.cpp.

308  {
309 
310  bool* pydata;
311  npy_intp pydims[2]={0,0};
312 
313  /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original
314  object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */
315 
316  pydims[0]=(npy_intp)dimi;
317  pydims[1]=(npy_intp)dimj;
318  pydata=xNew<bool>(dimi*dimj);
319  memcpy(pydata,data,dimi*dimj*sizeof(bool));
320  return PyArray_SimpleNewFromData(2,pydims,NPY_BOOL,pydata);
321 }
BamgGeom::RequiredVertices
double * RequiredVertices
Definition: BamgGeom.h:19
BamgGeom::Edges
double * Edges
Definition: BamgGeom.h:13
RiftStruct::riftsnumpairs
int * riftsnumpairs
Definition: RiftStruct.h:14
BamgGeom::CrackedEdges
double * CrackedEdges
Definition: BamgGeom.h:23
BamgGeom::CornersSize
int CornersSize[2]
Definition: BamgGeom.h:16
IssmSeqVec::ToMPISerial
doubletype * ToMPISerial(void)
Definition: IssmSeqVec.h:207
BamgMesh::VerticesOnGeomVertexSize
int VerticesOnGeomVertexSize[2]
Definition: BamgMesh.h:19
RiftStruct::riftsnumpenaltypairs
int * riftsnumpenaltypairs
Definition: RiftStruct.h:15
RiftStruct::riftstips
int * riftstips
Definition: RiftStruct.h:18
BamgMesh::EdgesOnGeomEdge
double * EdgesOnGeomEdge
Definition: BamgMesh.h:24
BamgMesh::NodalConnectivitySize
int NodalConnectivitySize[2]
Definition: BamgMesh.h:42
BamgMesh::NodalElementConnectivity
double * NodalElementConnectivity
Definition: BamgMesh.h:45
IssmDenseMat::ToSerial
doubletype * ToSerial(void)
Definition: IssmDenseMat.h:215
BamgGeom::Corners
double * Corners
Definition: BamgGeom.h:17
BamgMesh::VerticesOnGeomEdgeSize
int VerticesOnGeomEdgeSize[2]
Definition: BamgMesh.h:21
BamgGeom::TangentAtEdgesSize
int TangentAtEdgesSize[2]
Definition: BamgGeom.h:14
BamgGeom::RequiredEdgesSize
int RequiredEdgesSize[2]
Definition: BamgGeom.h:20
BamgMesh::NodalConnectivity
double * NodalConnectivity
Definition: BamgMesh.h:43
BamgMesh::Vertices
double * Vertices
Definition: BamgMesh.h:12
BamgMesh::SubDomainsSize
int SubDomainsSize[2]
Definition: BamgMesh.h:26
BamgGeom::SubDomainsSize
int SubDomainsSize[2]
Definition: BamgGeom.h:24
RiftStruct::state
double ** state
Definition: RiftStruct.h:19
BamgMesh::CrackedVertices
double * CrackedVertices
Definition: BamgMesh.h:31
BamgMesh::ElementConnectivity
double * ElementConnectivity
Definition: BamgMesh.h:41
IssmDenseMat::GetSize
void GetSize(int *pM, int *pN)
Definition: IssmDenseMat.h:165
BamgGeom::SubDomains
double * SubDomains
Definition: BamgGeom.h:25
BamgMesh::SubDomains
double * SubDomains
Definition: BamgMesh.h:27
BamgMesh::EdgesOnGeomEdgeSize
int EdgesOnGeomEdgeSize[2]
Definition: BamgMesh.h:23
BamgMesh::VerticesSize
int VerticesSize[2]
Definition: BamgMesh.h:11
BamgMesh::CrackedVerticesSize
int CrackedVerticesSize[2]
Definition: BamgMesh.h:30
BamgGeom::CrackedEdgesSize
int CrackedEdgesSize[2]
Definition: BamgGeom.h:22
BamgMesh::VerticesOnGeomEdge
double * VerticesOnGeomEdge
Definition: BamgMesh.h:22
BamgGeom::TangentAtEdges
double * TangentAtEdges
Definition: BamgGeom.h:15
BamgMesh::EdgesSize
int EdgesSize[2]
Definition: BamgMesh.h:14
RiftStruct::riftsnumsegments
int * riftsnumsegments
Definition: RiftStruct.h:16
BamgMesh::SubDomainsFromGeom
double * SubDomainsFromGeom
Definition: BamgMesh.h:29
BamgGeom::RequiredVerticesSize
int RequiredVerticesSize[2]
Definition: BamgGeom.h:18
IssmSeqVec::GetSize
void GetSize(int *pM)
Definition: IssmSeqVec.h:136
BamgMesh::Edges
double * Edges
Definition: BamgMesh.h:15
RiftStruct::riftssegments
int ** riftssegments
Definition: RiftStruct.h:17
RiftStruct::riftspenaltypairs
double ** riftspenaltypairs
Definition: RiftStruct.h:13
BamgMesh::SubDomainsFromGeomSize
int SubDomainsFromGeomSize[2]
Definition: BamgMesh.h:28
BamgMesh::IssmSegmentsSize
int IssmSegmentsSize[2]
Definition: BamgMesh.h:38
RiftStruct::numrifts
int numrifts
Definition: RiftStruct.h:11
BamgGeom::VerticesSize
int VerticesSize[2]
Definition: BamgGeom.h:10
BamgMesh::TrianglesSize
int TrianglesSize[2]
Definition: BamgMesh.h:16
BamgGeom::EdgesSize
int EdgesSize[2]
Definition: BamgGeom.h:12
BamgMesh::VerticesOnGeomVertex
double * VerticesOnGeomVertex
Definition: BamgMesh.h:20
RiftStruct::riftspairs
int ** riftspairs
Definition: RiftStruct.h:12
BamgMesh::IssmEdgesSize
int IssmEdgesSize[2]
Definition: BamgMesh.h:36
BamgGeom::Vertices
double * Vertices
Definition: BamgGeom.h:11
BamgMesh::NodalElementConnectivitySize
int NodalElementConnectivitySize[2]
Definition: BamgMesh.h:44
BamgGeom::RequiredEdges
double * RequiredEdges
Definition: BamgGeom.h:21
BamgMesh::IssmSegments
double * IssmSegments
Definition: BamgMesh.h:39
PyArrayFromCopiedData
PyObject * PyArrayFromCopiedData(int dims[2], double *data)
Definition: WritePythonData.cpp:260
BamgMesh::ElementConnectivitySize
int ElementConnectivitySize[2]
Definition: BamgMesh.h:40
BamgMesh::CrackedEdges
double * CrackedEdges
Definition: BamgMesh.h:33
BamgMesh::Triangles
double * Triangles
Definition: BamgMesh.h:17
BamgMesh::IssmEdges
double * IssmEdges
Definition: BamgMesh.h:37
BamgMesh::CrackedEdgesSize
int CrackedEdgesSize[2]
Definition: BamgMesh.h:32