Skip to content

Commit d762d4b

Browse files
authored
Merge pull request #45 from SCOREC/yg/advectionFix
Revert set/get dispIncr back
2 parents 6a0a2a6 + 51ed0fa commit d762d4b

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/pmpo_MPMesh.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
9090
printVTP_mesh(printVTPIndex);
9191
}
9292

93-
Vec3dView elmCenter("elmentCenter",numElms);
94-
auto calcCenter = PS_LAMBDA(const int& elm, const int&, const int&){
93+
Vec3dView elmCenter("elementCenter",numElms);
94+
Kokkos::parallel_for("calcElementCenter", numElms, KOKKOS_LAMBDA(const int elm){
9595
int numVtx = elm2VtxConn(elm,0);
9696
double sum_x = 0.0, sum_y = 0.0, sum_z = 0.0;
9797
for(int i=1; i<= numVtx; i++){
@@ -102,7 +102,7 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
102102
elmCenter(elm)[0] = sum_x/numVtx;
103103
elmCenter(elm)[1] = sum_y/numVtx;
104104
elmCenter(elm)[2] = sum_z/numVtx;
105-
};
105+
});
106106

107107
Vec3dView history("positionHistory",numMPs);
108108
Vec3dView resultLeft("positionResult",numMPs);

src/pmpo_c.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,9 @@ void polympo_setMeshOnSurfDispIncr_f(MPMesh_ptr p_mpmesh, const int nComps, cons
619619
//check mpMesh is valid
620620
checkMPMeshValid(p_mpmesh);
621621
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
622-
kkViewHostU<const double*[vec2d_nEntries]> arrayHost(array,nVertices);
622+
kkViewHostU<const double**> arrayHost(array,nComps,nVertices);
623+
Kokkos::View<double**> array_d("meshDispIncrDevice",nComps,nVertices);
624+
Kokkos::deep_copy(array_d, arrayHost);
623625

624626
auto vtxField = p_mesh->getMeshField<polyMPO::MeshF_OnSurfDispIncr>();
625627

@@ -628,14 +630,18 @@ void polympo_setMeshOnSurfDispIncr_f(MPMesh_ptr p_mpmesh, const int nComps, cons
628630
PMT_ALWAYS_ASSERT(static_cast<size_t>(nVertices*vec2d_nEntries)==vtxField.size());
629631

630632
//copy the host array to the device
631-
Kokkos::deep_copy(vtxField,arrayHost);
633+
Kokkos::parallel_for("set mesh dispIncr", nVertices, KOKKOS_LAMBDA(const int iVtx){
634+
vtxField(iVtx,0) = array_d(0,iVtx);
635+
vtxField(iVtx,1) = array_d(1,iVtx);
636+
});
632637
}
633638

634639
void polympo_getMeshOnSurfDispIncr_f(MPMesh_ptr p_mpmesh, const int nComps, const int nVertices, double* array) {
635640
//check mpMesh is valid
636641
checkMPMeshValid(p_mpmesh);
637642
auto p_mesh = ((polyMPO::MPMesh*)p_mpmesh)->p_mesh;
638-
kkVec2dViewHostU arrayHost(array,nVertices);
643+
kkDbl2dViewHostU arrayHost(array,nComps,nVertices);
644+
Kokkos::View<double**> array_d("meshDispIncrDevice",nComps,nVertices);
639645

640646
auto vtxField = p_mesh->getMeshField<polyMPO::MeshF_OnSurfDispIncr>();
641647

@@ -645,7 +651,11 @@ void polympo_getMeshOnSurfDispIncr_f(MPMesh_ptr p_mpmesh, const int nComps, cons
645651
PMT_ALWAYS_ASSERT(static_cast<size_t>(nVertices*vec2d_nEntries)==vtxField.size());
646652

647653
//copy the device array to the host
648-
Kokkos::deep_copy(arrayHost, vtxField);
654+
Kokkos::parallel_for("get mesh dispIncr", nVertices, KOKKOS_LAMBDA(const int iVtx){
655+
array_d(0,iVtx) = vtxField(iVtx,0);
656+
array_d(1,iVtx) = vtxField(iVtx,1);
657+
});
658+
Kokkos::deep_copy(arrayHost, array_d);
649659
}
650660

651661
void polympo_push_f(MPMesh_ptr p_mpmesh){

0 commit comments

Comments
 (0)