27 |
|
|
28 |
/* reads a mesh from a Finley file of name fname */ |
/* reads a mesh from a Finley file of name fname */ |
29 |
|
|
30 |
Finley_Mesh* Finley_Mesh_read(char* fname,index_t order) { |
Finley_Mesh* Finley_Mesh_read(char* fname,index_t order, index_t reduced_order, bool_t optimize_labeling) { |
31 |
|
|
32 |
dim_t numNodes, numDim, numEle, i0, i1; |
dim_t numNodes, numDim, numEle, i0, i1; |
33 |
index_t tag_key; |
index_t tag_key; |
60 |
|
|
61 |
fscanf(fileHandle_p, "%1d%*s %d\n", &numDim,&numNodes); |
fscanf(fileHandle_p, "%1d%*s %d\n", &numDim,&numNodes); |
62 |
/* allocate mesh */ |
/* allocate mesh */ |
63 |
mesh_p = Finley_Mesh_alloc(name,numDim,order); |
mesh_p = Finley_Mesh_alloc(name,numDim,order,reduced_order); |
64 |
if (! Finley_noError()) return NULL; |
if (! Finley_noError()) return NULL; |
65 |
|
|
66 |
Finley_NodeFile_allocTable(mesh_p->Nodes, numNodes); |
Finley_NodeFile_allocTable(mesh_p->Nodes, numNodes); |
96 |
return NULL; |
return NULL; |
97 |
} |
} |
98 |
/* read the elements */ |
/* read the elements */ |
99 |
mesh_p->Elements=Finley_ElementFile_alloc(typeID,mesh_p->order); |
mesh_p->Elements=Finley_ElementFile_alloc(typeID,mesh_p->order, mesh_p->reduced_order); |
100 |
Finley_ElementFile_allocTable(mesh_p->Elements, numEle); |
Finley_ElementFile_allocTable(mesh_p->Elements, numEle); |
101 |
mesh_p->Elements->minColor=0; |
mesh_p->Elements->minColor=0; |
102 |
mesh_p->Elements->maxColor=numEle-1; |
mesh_p->Elements->maxColor=numEle-1; |
119 |
Finley_setError(VALUE_ERROR,error_msg); |
Finley_setError(VALUE_ERROR,error_msg); |
120 |
return NULL; |
return NULL; |
121 |
} |
} |
122 |
mesh_p->FaceElements=Finley_ElementFile_alloc(faceTypeID,mesh_p->order); |
mesh_p->FaceElements=Finley_ElementFile_alloc(faceTypeID,mesh_p->order, mesh_p->reduced_order); |
123 |
Finley_ElementFile_allocTable(mesh_p->FaceElements, numEle); |
Finley_ElementFile_allocTable(mesh_p->FaceElements, numEle); |
124 |
mesh_p->FaceElements->minColor=0; |
mesh_p->FaceElements->minColor=0; |
125 |
mesh_p->FaceElements->maxColor=numEle-1; |
mesh_p->FaceElements->maxColor=numEle-1; |
141 |
Finley_setError(VALUE_ERROR,error_msg); |
Finley_setError(VALUE_ERROR,error_msg); |
142 |
return NULL; |
return NULL; |
143 |
} |
} |
144 |
mesh_p->ContactElements=Finley_ElementFile_alloc(contactTypeID,mesh_p->order); |
mesh_p->ContactElements=Finley_ElementFile_alloc(contactTypeID,mesh_p->order, mesh_p->reduced_order); |
145 |
Finley_ElementFile_allocTable(mesh_p->ContactElements, numEle); |
Finley_ElementFile_allocTable(mesh_p->ContactElements, numEle); |
146 |
mesh_p->ContactElements->minColor=0; |
mesh_p->ContactElements->minColor=0; |
147 |
mesh_p->ContactElements->maxColor=numEle-1; |
mesh_p->ContactElements->maxColor=numEle-1; |
163 |
Finley_setError(VALUE_ERROR,error_msg); |
Finley_setError(VALUE_ERROR,error_msg); |
164 |
return NULL; |
return NULL; |
165 |
} |
} |
166 |
mesh_p->Points=Finley_ElementFile_alloc(pointTypeID,mesh_p->order); |
mesh_p->Points=Finley_ElementFile_alloc(pointTypeID,mesh_p->order, mesh_p->reduced_order); |
167 |
Finley_ElementFile_allocTable(mesh_p->Points, numEle); |
Finley_ElementFile_allocTable(mesh_p->Points, numEle); |
168 |
mesh_p->Points->minColor=0; |
mesh_p->Points->minColor=0; |
169 |
mesh_p->Points->maxColor=numEle-1; |
mesh_p->Points->maxColor=numEle-1; |