Skip to content

Commit 775ca49

Browse files
committed
PR changes2_v0
1 parent 3545660 commit 775ca49

File tree

11 files changed

+1579
-231
lines changed

11 files changed

+1579
-231
lines changed

\

Lines changed: 1350 additions & 0 deletions
Large diffs are not rendered by default.

src/pmpo_MPMesh.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ void MPMesh::push_ahead(){
331331

332332
//Interpolates latitude longitude increments and mesh velocity increments to
333333
//MP positions
334-
sphericalInterpolation1(*this);
334+
sphericalInterpolationDispVelIncr(*this);
335335

336336
//Push the MPs
337337
p_MPs->updateRotLatLonAndXYZ2Tgt(p_mesh->getSphereRadius());

src/pmpo_MPMesh.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ class MPMesh{
6666
template <MeshFieldIndex meshFieldIndex>
6767
void assemblyVtx1();
6868
template <MeshFieldIndex meshFieldIndex>
69-
void subAssemblyVtx1(int size1, int size2, int comp, double* array);
69+
void subAssemblyVtx1(int vtxPerElm, int nCellsPlus1, int comp, double* array);
7070

71-
void subAssemblyCoeffs(int dim1, int dim2, double* m11, double* m12, double* m13, double* m14,
72-
double* m22, double* m23, double* m24,
73-
double* m33, double* m34,
74-
double* m44);
75-
void solveMatrixAndRegularize(int dim1, double* m11, double* m12, double* m13, double* m14,
76-
double* m22, double* m23, double* m24,
77-
double* m33, double* m34,
78-
double* m44);
71+
void subAssemblyCoeffs(int vtxPerElm, int nCellsPlus1, double* m11, double* m12, double* m13, double* m14,
72+
double* m22, double* m23, double* m24,
73+
double* m33, double* m34,
74+
double* m44);
75+
void solveMatrixAndRegularize(int nVerticesPlus1, double* m11, double* m12, double* m13, double* m14,
76+
double* m22, double* m23, double* m24,
77+
double* m33, double* m34,
78+
double* m44);
7979

8080
template<MeshFieldIndex meshFieldIndex>
8181
void setReconstructSlice(int order, MeshFieldType type);

src/pmpo_MPMesh_assembly.hpp

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,10 @@ void MPMesh::computeMatricesAndSolve(){
210210
}
211211

212212
//Method 2 for coefficients
213-
void MPMesh::subAssemblyCoeffs(int dim1, int dim2, double* m11, double* m12, double* m13, double* m14,
214-
double* m22, double* m23, double* m24,
215-
double* m33, double* m34,
216-
double* m44){
213+
void MPMesh::subAssemblyCoeffs(int vtxPerElm, int nCellsPlus1, double* m11, double* m12, double* m13, double* m14,
214+
double* m22, double* m23, double* m24,
215+
double* m33, double* m34,
216+
double* m44){
217217

218218
Kokkos::Timer timer;
219219
//Material Points Information
@@ -242,16 +242,16 @@ void MPMesh::subAssemblyCoeffs(int dim1, int dim2, double* m11, double* m12, dou
242242
if(p_mesh->getGeomType() == geom_spherical_surf)
243243
radius=p_mesh->getSphereRadius();
244244

245-
Kokkos::View<double**> m11_d("m11", dim1, dim2);
246-
Kokkos::View<double**> m12_d("m12", dim1, dim2);
247-
Kokkos::View<double**> m13_d("m13", dim1, dim2);
248-
Kokkos::View<double**> m14_d("m14", dim1, dim2);
249-
Kokkos::View<double**> m22_d("m22", dim1, dim2);
250-
Kokkos::View<double**> m23_d("m23", dim1, dim2);
251-
Kokkos::View<double**> m24_d("m23", dim1, dim2);
252-
Kokkos::View<double**> m33_d("m33", dim1, dim2);
253-
Kokkos::View<double**> m34_d("m34", dim1, dim2);
254-
Kokkos::View<double**> m44_d("m34", dim1, dim2);
245+
Kokkos::View<double**> m11_d("m11", vtxPerElm, nCellsPlus1);
246+
Kokkos::View<double**> m12_d("m12", vtxPerElm, nCellsPlus1);
247+
Kokkos::View<double**> m13_d("m13", vtxPerElm, nCellsPlus1);
248+
Kokkos::View<double**> m14_d("m14", vtxPerElm, nCellsPlus1);
249+
Kokkos::View<double**> m22_d("m22", vtxPerElm, nCellsPlus1);
250+
Kokkos::View<double**> m23_d("m23", vtxPerElm, nCellsPlus1);
251+
Kokkos::View<double**> m24_d("m23", vtxPerElm, nCellsPlus1);
252+
Kokkos::View<double**> m33_d("m33", vtxPerElm, nCellsPlus1);
253+
Kokkos::View<double**> m34_d("m34", vtxPerElm, nCellsPlus1);
254+
Kokkos::View<double**> m44_d("m34", vtxPerElm, nCellsPlus1);
255255

256256
auto sub_assemble = PS_LAMBDA(const int& elm, const int& mp, const int& mask) {
257257
if(mask && (elm2Process(elm)==comm_rank)) { //if material point is 'active'/'enabled'
@@ -279,16 +279,16 @@ void MPMesh::subAssemblyCoeffs(int dim1, int dim2, double* m11, double* m12, dou
279279
pumipic::RecordTime("VtxSubAssemblyComputeCoeff", timer.seconds());
280280

281281
Kokkos::Timer timer2;
282-
kkDbl2dViewHostU m11_h(m11, dim1, dim2);
283-
kkDbl2dViewHostU m12_h(m12, dim1, dim2);
284-
kkDbl2dViewHostU m13_h(m13, dim1, dim2);
285-
kkDbl2dViewHostU m14_h(m14, dim1, dim2);
286-
kkDbl2dViewHostU m22_h(m22, dim1, dim2);
287-
kkDbl2dViewHostU m23_h(m23, dim1, dim2);
288-
kkDbl2dViewHostU m24_h(m24, dim1, dim2);
289-
kkDbl2dViewHostU m33_h(m33, dim1, dim2);
290-
kkDbl2dViewHostU m34_h(m34, dim1, dim2);
291-
kkDbl2dViewHostU m44_h(m44, dim1, dim2);
282+
kkDbl2dViewHostU m11_h(m11, vtxPerElm, nCellsPlus1);
283+
kkDbl2dViewHostU m12_h(m12, vtxPerElm, nCellsPlus1);
284+
kkDbl2dViewHostU m13_h(m13, vtxPerElm, nCellsPlus1);
285+
kkDbl2dViewHostU m14_h(m14, vtxPerElm, nCellsPlus1);
286+
kkDbl2dViewHostU m22_h(m22, vtxPerElm, nCellsPlus1);
287+
kkDbl2dViewHostU m23_h(m23, vtxPerElm, nCellsPlus1);
288+
kkDbl2dViewHostU m24_h(m24, vtxPerElm, nCellsPlus1);
289+
kkDbl2dViewHostU m33_h(m33, vtxPerElm, nCellsPlus1);
290+
kkDbl2dViewHostU m34_h(m34, vtxPerElm, nCellsPlus1);
291+
kkDbl2dViewHostU m44_h(m44, vtxPerElm, nCellsPlus1);
292292

293293
Kokkos::deep_copy(m11_h, m11_d);
294294
Kokkos::deep_copy(m12_h, m12_d);
@@ -305,33 +305,33 @@ void MPMesh::subAssemblyCoeffs(int dim1, int dim2, double* m11, double* m12, dou
305305
}
306306

307307
//Method 2 for coefficients Solve matrix
308-
void MPMesh::solveMatrixAndRegularize(int dim1, double* m11, double* m12, double* m13, double* m14,
308+
void MPMesh::solveMatrixAndRegularize(int nVerticesPlus1, double* m11, double* m12, double* m13, double* m14,
309309
double* m22, double* m23, double* m24,
310310
double* m33, double* m34,
311311
double* m44){
312312

313313
Kokkos::Timer timer;
314-
kkViewHostU<const double*> m11_h(m11, dim1);
315-
kkViewHostU<const double*> m12_h(m12, dim1);
316-
kkViewHostU<const double*> m13_h(m13, dim1);
317-
kkViewHostU<const double*> m14_h(m14, dim1);
318-
kkViewHostU<const double*> m22_h(m22, dim1);
319-
kkViewHostU<const double*> m23_h(m23, dim1);
320-
kkViewHostU<const double*> m24_h(m24, dim1);
321-
kkViewHostU<const double*> m33_h(m33, dim1);
322-
kkViewHostU<const double*> m34_h(m34, dim1);
323-
kkViewHostU<const double*> m44_h(m44, dim1);
314+
kkViewHostU<const double*> m11_h(m11, nVerticesPlus1);
315+
kkViewHostU<const double*> m12_h(m12, nVerticesPlus1);
316+
kkViewHostU<const double*> m13_h(m13, nVerticesPlus1);
317+
kkViewHostU<const double*> m14_h(m14, nVerticesPlus1);
318+
kkViewHostU<const double*> m22_h(m22, nVerticesPlus1);
319+
kkViewHostU<const double*> m23_h(m23, nVerticesPlus1);
320+
kkViewHostU<const double*> m24_h(m24, nVerticesPlus1);
321+
kkViewHostU<const double*> m33_h(m33, nVerticesPlus1);
322+
kkViewHostU<const double*> m34_h(m34, nVerticesPlus1);
323+
kkViewHostU<const double*> m44_h(m44, nVerticesPlus1);
324324

325-
Kokkos::View<double*> m11_d("m11", dim1);
326-
Kokkos::View<double*> m12_d("m12", dim1);
327-
Kokkos::View<double*> m13_d("m13", dim1);
328-
Kokkos::View<double*> m14_d("m14", dim1);
329-
Kokkos::View<double*> m22_d("m22", dim1);
330-
Kokkos::View<double*> m23_d("m23", dim1);
331-
Kokkos::View<double*> m24_d("m24", dim1);
332-
Kokkos::View<double*> m33_d("m33", dim1);
333-
Kokkos::View<double*> m34_d("m34", dim1);
334-
Kokkos::View<double*> m44_d("m44", dim1);
325+
Kokkos::View<double*> m11_d("m11", nVerticesPlus1);
326+
Kokkos::View<double*> m12_d("m12", nVerticesPlus1);
327+
Kokkos::View<double*> m13_d("m13", nVerticesPlus1);
328+
Kokkos::View<double*> m14_d("m14", nVerticesPlus1);
329+
Kokkos::View<double*> m22_d("m22", nVerticesPlus1);
330+
Kokkos::View<double*> m23_d("m23", nVerticesPlus1);
331+
Kokkos::View<double*> m24_d("m24", nVerticesPlus1);
332+
Kokkos::View<double*> m33_d("m33", nVerticesPlus1);
333+
Kokkos::View<double*> m34_d("m34", nVerticesPlus1);
334+
Kokkos::View<double*> m44_d("m44", nVerticesPlus1);
335335

336336
Kokkos::deep_copy(m11_d, m11_h);
337337
Kokkos::deep_copy(m12_d, m12_h);
@@ -347,9 +347,9 @@ void MPMesh::solveMatrixAndRegularize(int dim1, double* m11, double* m12, double
347347

348348
Kokkos::Timer timer2;
349349
auto dual_triangle_area=p_mesh->getMeshField<MeshF_DualTriangleArea>();
350-
Kokkos::View<double*[vec4d_nEntries]> VtxCoeffs("VtxCoeffs", dim1);
350+
Kokkos::View<double*[vec4d_nEntries]> VtxCoeffs("VtxCoeffs", nVerticesPlus1);
351351
double radius=p_mesh->getSphereRadius();
352-
Kokkos::parallel_for("fill", dim1, KOKKOS_LAMBDA(const int vtx){
352+
Kokkos::parallel_for("fill", nVerticesPlus1, KOKKOS_LAMBDA(const int vtx){
353353
Vec4d v0 = {m11_d(vtx), m12_d(vtx), m13_d(vtx), m14_d(vtx)};
354354
Vec4d v1 = {m12_d(vtx), m22_d(vtx), m23_d(vtx), m24_d(vtx)};
355355
Vec4d v2 = {m13_d(vtx), m23_d(vtx), m33_d(vtx), m34_d(vtx)};
@@ -378,7 +378,7 @@ void MPMesh::solveMatrixAndRegularize(int dim1, double* m11, double* m12, double
378378

379379
//Method2
380380
template <MeshFieldIndex meshFieldIndex>
381-
void MPMesh::subAssemblyVtx1(int size1, int size2, int comp, double* array) {
381+
void MPMesh::subAssemblyVtx1(int vtxPerElm, int nCellsPlus1, int comp, double* array) {
382382
Kokkos::Timer timer;
383383

384384
auto VtxCoeffs=this->precomputedVtxCoeffs;
@@ -402,7 +402,7 @@ void MPMesh::subAssemblyVtx1(int size1, int size2, int comp, double* array) {
402402

403403
double radius=p_mesh->getSphereRadius();
404404

405-
Kokkos::View<double**> array_d("reconstructedIceArea", size1, size2);
405+
Kokkos::View<double**> array_d("reconstructedIceArea", vtxPerElm, nCellsPlus1);
406406
auto sub_assemble = PS_LAMBDA(const int& elm, const int& mp, const int& mask) {
407407
if(mask && (elm2Process(elm)==comm_rank)) {
408408
int nVtxE = elm2VtxConn(elm,0); //number of vertices bounding the element
@@ -426,7 +426,7 @@ void MPMesh::subAssemblyVtx1(int size1, int size2, int comp, double* array) {
426426
pumipic::RecordTime("polyMPOsubAssemblyFieldCompute", timer.seconds());
427427

428428
Kokkos::Timer timer2;
429-
kkDbl2dViewHostU arrayHost(array, size1, size2);
429+
kkDbl2dViewHostU arrayHost(array, vtxPerElm, nCellsPlus1);
430430
Kokkos::deep_copy(arrayHost, array_d);
431431
pumipic::RecordTime("PolyMPOsubAssemblyFieldGet", timer2.seconds());
432432
}

src/pmpo_c.cpp

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ void polympo_setMPICommunicator_f(MPMesh_ptr p_mpmesh, MPI_Fint fcomm){
6161

6262
void polympo_createMPs_f(MPMesh_ptr p_mpmesh,
6363
const int numElms,
64-
const int numMPs, // total nof of MPs which is >= no of active MPs
64+
const int numMPs, // total number of MPs which is >= no of active MPs
6565
int* mpsPerElm,
6666
const int* mp2Elm,
6767
const int* isMPActive) {
@@ -136,7 +136,7 @@ void polympo_createMPs_f(MPMesh_ptr p_mpmesh,
136136
}
137137

138138
void polympo_startRebuildMPs_f(MPMesh_ptr p_mpmesh,
139-
const int numMPs, // Total # MPs which is GREATER than or equal to number of active MPs
139+
const int numMPs, // Total MPs which is GREATER than or equal to number of active MPs
140140
const int* allMP2Elm,
141141
const int* addedMPMask) {
142142
checkMPMeshValid(p_mpmesh);
@@ -199,9 +199,9 @@ void polympo_startRebuildMPs_f(MPMesh_ptr p_mpmesh,
199199

200200
void polympo_startRebuildMPs2_f(MPMesh_ptr p_mpmesh,
201201
const int sizeMP2elm,
202-
const int* elem_ids,
203-
const int nMPs_delete,
204-
const int nMPs_add,
202+
const int* elem_ids,
203+
const int nMPs_delete,
204+
const int nMPs_add,
205205
int* recvMPs_elm,
206206
int* recvMPs_ids) {
207207

@@ -237,8 +237,6 @@ void polympo_startRebuildMPs2_f(MPMesh_ptr p_mpmesh,
237237
pumipic::RecordTime("polympo_startRebuildMPs2_f", timer.seconds());
238238
}
239239

240-
241-
242240
void polympo_finishRebuildMPs_f(MPMesh_ptr p_mpmesh){
243241
Kokkos::Timer timer;
244242
checkMPMeshValid(p_mpmesh);
@@ -948,6 +946,7 @@ void polympo_setMeshDualTriangleArea_f(MPMesh_ptr p_mpmesh, const int nVertices,
948946
checkMPMeshValid(p_mpmesh);
949947
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
950948

949+
PMT_ALWAYS_ASSERT(p_mesh->getNumVertices()==nVertices);
951950
//copy the host array to the device
952951
auto dualArea = p_mesh->getMeshField<polyMPO::MeshF_DualTriangleArea>();
953952
auto h_dualArea = Kokkos::create_mirror_view(dualArea);
@@ -963,6 +962,7 @@ void polympo_getMeshDualTriangleArea_f(MPMesh_ptr p_mpmesh, const int nVertices,
963962
checkMPMeshValid(p_mpmesh);
964963
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
965964

965+
PMT_ALWAYS_ASSERT(p_mesh->getNumVertices()==nVertices);
966966
//copy the device to host
967967
auto dualArea = p_mesh->getMeshField<polyMPO::MeshF_DualTriangleArea>();
968968
auto h_dualArea = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), dualArea);
@@ -1238,52 +1238,50 @@ void polympo_setReconstructionOfStress_f(MPMesh_ptr p_mpmesh, const int order, c
12381238
(void)meshEntType;
12391239
}
12401240

1241-
12421241
//With MPI communication done via MPAS
1243-
void polympo_vtxSubAssemblyIceArea_f(MPMesh_ptr p_mpmesh, int size1, int size2, int comp, double* array){
1242+
void polympo_vtxSubAssemblyIceArea_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, int comp, double* array){
12441243
checkMPMeshValid(p_mpmesh);
12451244
auto mpmesh = ((polyMPO::MPMesh*)p_mpmesh);
12461245
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
1247-
PMT_ALWAYS_ASSERT(size1 <= maxVtxsPerElm);
1248-
PMT_ALWAYS_ASSERT(size2 == p_mesh->getNumElements()+1);
1249-
PMT_ALWAYS_ASSERT(comp == 0 || comp== 1);
1250-
mpmesh->subAssemblyVtx1<polyMPO::MeshF_VtxMass>(size1, size2, comp, array);
1246+
PMT_ALWAYS_ASSERT(vtxPerElm <= maxVtxsPerElm);
1247+
PMT_ALWAYS_ASSERT(nCellsPlus1 == p_mesh->getNumElements()+1);
1248+
PMT_ALWAYS_ASSERT(comp == 0 || comp== 1); //either first or second component
1249+
mpmesh->subAssemblyVtx1<polyMPO::MeshF_VtxMass>(vtxPerElm, nCellsPlus1, comp, array);
12511250
}
12521251

1253-
void polympo_vtxSubAssemblyVelocity_f(MPMesh_ptr p_mpmesh, int size1, int size2, int comp, double* array){
1252+
void polympo_vtxSubAssemblyVelocity_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, int comp, double* array){
12541253
checkMPMeshValid(p_mpmesh);
12551254
auto mpmesh = ((polyMPO::MPMesh*)p_mpmesh);
12561255
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
1257-
PMT_ALWAYS_ASSERT(size1 <= maxVtxsPerElm);
1258-
PMT_ALWAYS_ASSERT(size2 == p_mesh->getNumElements()+1);
1259-
PMT_ALWAYS_ASSERT(comp == 0 || comp== 1);
1260-
mpmesh->subAssemblyVtx1<polyMPO::MeshF_Vel>(size1, size2, comp, array);
1256+
PMT_ALWAYS_ASSERT(vtxPerElm <= maxVtxsPerElm);
1257+
PMT_ALWAYS_ASSERT(nCellsPlus1 == p_mesh->getNumElements()+1);
1258+
PMT_ALWAYS_ASSERT(comp == 0 || comp== 1); //either first or second component
1259+
mpmesh->subAssemblyVtx1<polyMPO::MeshF_Vel>(vtxPerElm, nCellsPlus1, comp, array);
12611260
}
12621261

1263-
void polympo_subAssemblyCoeffs_f(MPMesh_ptr p_mpmesh, int dim1, int dim2, double* m11, double* m12, double* m13, double* m14,
1264-
double* m22, double* m23, double* m24,
1265-
double* m33, double* m34,
1266-
double* m44){
1262+
void polympo_subAssemblyCoeffs_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, double* m11, double* m12, double* m13, double* m14,
1263+
double* m22, double* m23, double* m24,
1264+
double* m33, double* m34,
1265+
double* m44){
12671266
checkMPMeshValid(p_mpmesh);
12681267
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
1269-
PMT_ALWAYS_ASSERT(dim1 <= maxVtxsPerElm);
1270-
PMT_ALWAYS_ASSERT(dim2 == p_mesh->getNumElements()+1);
1268+
PMT_ALWAYS_ASSERT(vtxPerElm <= maxVtxsPerElm);
1269+
PMT_ALWAYS_ASSERT(nCellsPlus1 == p_mesh->getNumElements()+1);
12711270
auto mpmesh = ((polyMPO::MPMesh*)p_mpmesh);
1272-
mpmesh->subAssemblyCoeffs(dim1, dim2, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44);
1271+
mpmesh->subAssemblyCoeffs(vtxPerElm, nCellsPlus1, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44);
12731272
}
12741273

1275-
void polympo_regularize_and_solve_matrix_f(MPMesh_ptr p_mpmesh, int dim1, double* m11, double* m12, double* m13, double* m14,
1274+
void polympo_regularize_and_solve_matrix_f(MPMesh_ptr p_mpmesh, int nVerticesPlus1, double* m11, double* m12, double* m13, double* m14,
12761275
double* m22, double* m23, double* m24,
12771276
double* m33, double* m34,
12781277
double* m44){
12791278
checkMPMeshValid(p_mpmesh);
1279+
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
1280+
PMT_ALWAYS_ASSERT(nVerticesPlus1 == p_mesh->getNumVertices()+1);
12801281
auto mpmesh = ((polyMPO::MPMesh*)p_mpmesh);
1281-
mpmesh->solveMatrixAndRegularize(dim1, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44);
1282-
1282+
mpmesh->solveMatrixAndRegularize(nVerticesPlus1, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44);
12831283
}
12841284

1285-
1286-
12871285
void polympo_applyReconstruction_f(MPMesh_ptr p_mpmesh){
12881286
checkMPMeshValid(p_mpmesh);
12891287
auto mpmesh = ((polyMPO::MPMesh*)p_mpmesh);
@@ -1322,6 +1320,7 @@ void polympo_setElmGlobal_f(MPMesh_ptr p_mpmesh, const int nCells, const int* ar
13221320
void polympo_setVtxGlobal_f(MPMesh_ptr p_mpmesh, const int nVertices, const int* array){
13231321
checkMPMeshValid(p_mpmesh);
13241322
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
1323+
PMT_ALWAYS_ASSERT(nVertices==p_mesh->getNumVertices());
13251324
Kokkos::View<int*, Kokkos::HostSpace> arrayHost("arrayHost", nVertices);
13261325
for (int i = 0; i < nVertices; i++) {
13271326
arrayHost(i) = array[i] - 1; // TODO right now elmID offset is set after MPs initialized

src/pmpo_c.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ void polympo_setReconstructionOfStress_f(MPMesh_ptr p_mpmesh, const int order, c
113113
void polympo_applyReconstruction_f(MPMesh_ptr p_mpmesh);
114114

115115
//Reconstruction using MPAS
116-
void polympo_vtxSubAssemblyIceArea_f(MPMesh_ptr p_mpmesh, int size1, int size2, int comp, double* array);
117-
void polympo_vtxSubAssemblyVelocity_f(MPMesh_ptr p_mpmesh, int size1, int size2, int comp, double* array);
118-
void polympo_subAssemblyCoeffs_f(MPMesh_ptr p_mpmesh, int dim1, int dim2, double* m11, double* m12, double* m13, double* m14,
119-
double* m22, double* m23, double* m24,
120-
double* m33, double* m34,
121-
double* m44);
122-
void polympo_regularize_and_solve_matrix_f(MPMesh_ptr p_mpmesh, int dim1, double* m11, double* m12, double* m13, double* m14,
116+
void polympo_vtxSubAssemblyIceArea_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, int comp, double* array);
117+
void polympo_vtxSubAssemblyVelocity_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, int comp, double* array);
118+
void polympo_subAssemblyCoeffs_f(MPMesh_ptr p_mpmesh, int vtxPerElm, int nCellsPlus1, double* m11, double* m12, double* m13, double* m14,
119+
double* m22, double* m23, double* m24,
120+
double* m33, double* m34,
121+
double* m44);
122+
void polympo_regularize_and_solve_matrix_f(MPMesh_ptr p_mpmesh, int nVeticesPlus1, double* m11, double* m12, double* m13, double* m14,
123123
double* m22, double* m23, double* m24,
124124
double* m33, double* m34,
125125
double* m44);

src/pmpo_defines.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#define MP_ACTIVE 1
66
#define MP_DELETE -1
7-
7+
#define INVALID_ELM_ID -1
88
typedef void* MPMesh_ptr;
99
//Function that receives void* and returns an int
1010
typedef int (*IntVoidFunc)(void*);

0 commit comments

Comments
 (0)