Skip to content

Commit

Permalink
Not calculating old detla averaged centroid
Browse files Browse the repository at this point in the history
  • Loading branch information
dhyan1272 committed Aug 30, 2024
1 parent 3d8bdd6 commit 1fe77ea
Showing 1 changed file with 12 additions and 17 deletions.
29 changes: 12 additions & 17 deletions src/pmpo_MPMesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
int numElms = p_mesh->getNumElements();
auto numMPs = p_MPs->getCount();

const auto vtxCoords = p_mesh->getMeshField<polyMPO::MeshF_VtxCoords>();
//const auto vtxCoords = p_mesh->getMeshField<polyMPO::MeshF_VtxCoords>();
const auto elCenters = p_mesh->getMeshField<polyMPO::MeshF_ElmCenterXYZ>();

auto elm2VtxConn = p_mesh->getElm2VtxConn();
Expand All @@ -130,6 +130,7 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
printVTP_mesh(printVTPIndex);
}

/*
Vec3dView elmCenter("elementCenter",numElms);
Kokkos::parallel_for("calcElementCenter", numElms, KOKKOS_LAMBDA(const int elm){
int numVtx = elm2VtxConn(elm,0);
Expand All @@ -143,7 +144,7 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
elmCenter(elm)[1] = sum_y/numVtx;
elmCenter(elm)[2] = sum_z/numVtx;
});

*/
Vec3dView history("positionHistory",numMPs);
Vec3dView resultLeft("positionResult",numMPs);
Vec3dView resultRight("positionResult",numMPs);
Expand All @@ -157,37 +158,31 @@ void MPMesh::CVTTrackingElmCenterBased(const int printVTPIndex){
Vec3d dx = MPnew-MP;
while(true){
int numConnElms = elm2ElmConn(iElm,0);
Vec3d delta = MPnew - elmCenter(iElm);

//Old delta
//Vec3d delta = MPnew - elmCenter(iElm);

//New delta
Vec3d center(elCenters(iElm, 0), elCenters(iElm, 1), elCenters(iElm, 2));
delta = MPnew - center;
Vec3d center(elCenters(iElm, 0), elCenters(iElm, 1), elCenters(iElm, 2));
Vec3d delta = MPnew - center;

double minDistSq = delta[0]*delta[0] + delta[1]*delta[1] + delta[2]*delta[2];
int closestElm = -1;
//go through all the connected elm, calc distance
for(int i=1; i<=numConnElms; i++){
int elmID = elm2ElmConn(iElm,i)-1;
delta = MPnew - elmCenter(elmID);
//delta = MPnew - elmCenter(elmID);
//New delta
Vec3d center(elCenters(elmID, 0), elCenters(elmID, 1), elCenters(elmID, 2));
delta = MPnew - center;
Vec3d center(elCenters(elmID, 0), elCenters(elmID, 1), elCenters(elmID, 2));
delta = MPnew - center;

double neighborDistSq = delta[0]*delta[0] + delta[1]*delta[1] + delta[2]*delta[2];
if(neighborDistSq < minDistSq){
closestElm = elmID;
minDistSq = neighborDistSq;
}
/*
if(elm==2095){
printf("elm %d Loop %d Adj elm %d Mins %.15e %.15e=>%.15e %.15e %.15e C new: %.15e %.15e %.15e\n",
elm, i, elmID, neighborDistSq, minDistSq, mpTgtPos(mp,0), mpTgtPos(mp,1), mpTgtPos(mp,2),
elCenters(elmID, 0), elCenters(elmID, 1), elCenters(elmID, 2));
}
*/
}

//if(elm==2095) printf("Starting %d Ending %d %d \n", elm, iElm, closestElm);

if(closestElm<0){
MPs2Elm(mp) = iElm;
break;
Expand Down

0 comments on commit 1fe77ea

Please sign in to comment.