Skip to content

Commit 13be2f7

Browse files
committed
Merge branch 'esmc_3D_fix' into develop
2 parents 31f8806 + eeccb72 commit 13be2f7

File tree

10 files changed

+469
-41
lines changed

10 files changed

+469
-41
lines changed

src/Infrastructure/Mesh/include/ESMCI_MBMesh_Glue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void MBMesh_addelements(MBMesh **mbmpp,
6060
int *_num_elems, int *elemId, int *elemType, InterArray<int> *_elemMaskII ,
6161
int *_areaPresent, double *elemArea,
6262
int *_coordsPresent, double *elemCoords,
63-
int *_num_elemConn, int *elemConn,
63+
int *_elemConn_size, int *elemConn,
6464
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
6565
int *rc);
6666

src/Infrastructure/Mesh/include/ESMCI_MeshCap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ namespace ESMCI {
138138
void meshaddelements(int *_num_elems, int *elemId, int *elemType, InterArray<int> *_elemMaskII ,
139139
int *_areaPresent, double *elemArea,
140140
int *_coordsPresent, double *elemCoords,
141-
int *_num_elemConn, int *elemConn,
141+
int *_elemConn_size, int *elemConn,
142142
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
143143
int *rc);
144144

src/Infrastructure/Mesh/include/ESMCI_Mesh_Glue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void ESMCI_meshaddelements(Mesh **meshpp,
7777
int *_num_elems, int *elemId, int *elemType, InterArray<int> *_elemMaskII ,
7878
int *_areaPresent, double *elemArea,
7979
int *_coordsPresent, double *elemCoords,
80-
int *_num_elemConn, int *elemConn,
80+
int *_elemConn_size, int *elemConn,
8181
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
8282
int *rc);
8383

src/Infrastructure/Mesh/interface/ESMC_Mesh.C

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,6 @@ int ESMC_MeshAddElements(ESMC_Mesh mesh, int elementCount, int *elementIds,
217217

218218
MeshCap *mc = static_cast<MeshCap*> (mesh.ptr);
219219

220-
// count elemconn
221-
int ec = 0;
222-
for (unsigned int i = 0; i < elementCount; ++i)
223-
ec += elementTypes[i];
224-
225220
// evaluate presence of input parameters
226221
int apresent = 0;
227222
if (elementArea != nullptr) apresent = 1;
@@ -237,7 +232,7 @@ int ESMC_MeshAddElements(ESMC_Mesh mesh, int elementCount, int *elementIds,
237232
em,
238233
&apresent, elementArea,
239234
&cpresent, elementCoords,
240-
&ec, elementConn,
235+
NULL, elementConn,
241236
&(mc->coordsys_mc), &(mc->sdim_mc),
242237
&localrc);
243238
// elementConn, elementMask, elementArea, elementCoords);

src/Infrastructure/Mesh/src/ESMCI_MBMesh_Glue.C

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ void MBMesh_addelements(MBMesh **mbmpp,
252252
int *elemType, InterArray<int> *_elemMaskII ,
253253
int *_areaPresent, double *elemArea,
254254
int *_coordsPresent, double *elemCoords,
255-
int *_num_elemConn, int *elemConn,
255+
int *_elemConn_size, int *elemConn,
256256
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
257257
int *rc)
258258
{
@@ -281,9 +281,6 @@ void MBMesh_addelements(MBMesh **mbmpp,
281281
// Number of elements being created
282282
int num_elems=*_num_elems;
283283

284-
// Total Size of connection list
285-
int num_elemConn=*_num_elemConn;
286-
287284
// Element mask array
288285
InterArray<int> *elemMaskII=_elemMaskII;
289286
int *elemMask=NULL;
@@ -344,24 +341,28 @@ void MBMesh_addelements(MBMesh **mbmpp,
344341
}
345342
}
346343

347-
// Check size of connectivity list
348-
int expected_conn_size=0;
344+
345+
//// Calc size of connectivity list
346+
int num_elemConn=0;
349347
if (pdim==2) {
350348
for (int i=0; i< num_elems; i++) {
351-
expected_conn_size += elemType[i];
349+
num_elemConn += elemType[i];
352350
}
353351
} else if (pdim==3) {
354352
for (int i=0; i< num_elems; i++) {
355-
if (elemType[i]==10) expected_conn_size += 4;
356-
else if (elemType[i]==12) expected_conn_size += 8;
357-
}
353+
if (elemType[i]==10) num_elemConn += 4;
354+
else if (elemType[i]==12) num_elemConn += 8;
355+
}
358356
}
359357

360-
if (expected_conn_size != num_elemConn) {
361-
int localrc;
362-
if(ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_VALUE,
363-
"- element connectivity list doesn't contain the right number of entries ",
364-
ESMC_CONTEXT, &localrc)) throw localrc;
358+
/// If size of array is available, make sure it matches
359+
if (_elemConn_size != NULL) {
360+
if (*_elemConn_size != num_elemConn) {
361+
int localrc;
362+
if(ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_VALUE,
363+
"element connectivity list doesn't contain the right number of entries ",
364+
ESMC_CONTEXT, &localrc)) throw localrc;
365+
}
365366
}
366367

367368

src/Infrastructure/Mesh/src/ESMCI_MeshCap.C

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ void MeshCap::meshaddnodes(int *num_nodes, int *nodeId,
561561
void MeshCap::meshaddelements(int *_num_elems, int *elemId, int *elemType, InterArray<int> *_elemMaskII ,
562562
int *_areaPresent, double *elemArea,
563563
int *_coordsPresent, double *elemCoords,
564-
int *_num_elemConn, int *elemConn,
564+
int *_elemConn_size, int *elemConn,
565565
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
566566
int *rc)
567567
{
@@ -576,7 +576,7 @@ void MeshCap::meshaddelements(int *_num_elems, int *elemId, int *elemType, Inter
576576
_num_elems, elemId, elemType, _elemMaskII ,
577577
_areaPresent, elemArea,
578578
_coordsPresent, elemCoords,
579-
_num_elemConn, elemConn,
579+
_elemConn_size, elemConn,
580580
_coordSys, _orig_sdim,
581581
&localrc);
582582
ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU,ESMC_CONTEXT, rc);
@@ -588,7 +588,7 @@ void MeshCap::meshaddelements(int *_num_elems, int *elemId, int *elemType, Inter
588588
_num_elems, elemId, elemType, _elemMaskII,
589589
_areaPresent, elemArea,
590590
_coordsPresent, elemCoords,
591-
_num_elemConn, elemConn,
591+
_elemConn_size, elemConn,
592592
_coordSys, _orig_sdim,
593593
&localrc);
594594
ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU,ESMC_CONTEXT, rc);

src/Infrastructure/Mesh/src/ESMCI_Mesh_Glue.C

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ void ESMCI_meshaddelements(Mesh **meshpp,
738738
int *_num_elems, int *elemId, int *elemType, InterArray<int> *_elemMaskII ,
739739
int *_areaPresent, double *elemArea,
740740
int *_elemCoordsPresent, double *elemCoords,
741-
int *_num_elemConn, int *elemConn,
741+
int *_elemConn_size, int *elemConn,
742742
ESMC_CoordSys_Flag *_coordSys, int *_orig_sdim,
743743
int *rc)
744744
#undef ESMC_METHOD
@@ -767,8 +767,6 @@ void ESMCI_meshaddelements(Mesh **meshpp,
767767

768768
int num_elems=*_num_elems;
769769

770-
int num_elemConn=*_num_elemConn;
771-
772770
InterArray<int> *elemMaskII=_elemMaskII;
773771

774772
int areaPresent=*_areaPresent;
@@ -807,27 +805,29 @@ void ESMCI_meshaddelements(Mesh **meshpp,
807805
}
808806

809807

810-
//// Check size of connectivity list
811-
int expected_conn_size=0;
808+
//// Calc size of connectivity list
809+
int num_elemConn=0;
812810
if (parametric_dim==2) {
813811
for (int i=0; i< num_elems; i++) {
814-
expected_conn_size += elemType[i];
812+
num_elemConn += elemType[i];
815813
}
816814
} else if (parametric_dim==3) {
817815
for (int i=0; i< num_elems; i++) {
818-
if (elemType[i]==10) expected_conn_size += 4;
819-
else if (elemType[i]==12) expected_conn_size += 8;
816+
if (elemType[i]==10) num_elemConn += 4;
817+
else if (elemType[i]==12) num_elemConn += 8;
820818
}
821819
}
822820

823-
if (expected_conn_size != num_elemConn) {
824-
int localrc;
825-
if(ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_VALUE,
826-
"- element connectivity list doesn't contain the right number of entries ",
827-
ESMC_CONTEXT, &localrc)) throw localrc;
821+
/// If size of array is available, make sure it matches
822+
if (_elemConn_size != NULL) {
823+
if (*_elemConn_size != num_elemConn) {
824+
int localrc;
825+
if(ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_VALUE,
826+
"element connectivity list doesn't contain the right number of entries ",
827+
ESMC_CONTEXT, &localrc)) throw localrc;
828+
}
828829
}
829830

830-
831831
// Error check size of elements
832832
if (parametric_dim==2) {
833833
int conn_pos=0;

0 commit comments

Comments
 (0)