Skip to content

Commit da81582

Browse files
committed
changed all set mp data
1 parent 27b6bc1 commit da81582

File tree

1 file changed

+7
-90
lines changed

1 file changed

+7
-90
lines changed

src/pmpo_c.cpp

Lines changed: 7 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ void setMPData(MPMesh_ptr p_mpmesh,
251251

252252
auto mpData = p_MPs->getData<mpSlice>();
253253
auto mpAppID = p_MPs->getData<polyMPO::MPF_MP_APP_ID>();
254-
Kokkos::View<double**> mpData_d("mpData_d",vec3d_nEntries,numMPs);
254+
Kokkos::View<double**> mpData_d("mpData_d",nComps,numMPs);
255255
Kokkos::deep_copy(mpData_d, mpDataIn_h);
256256

257257
auto setData = PS_LAMBDA(const int&, const int& mp, const int& mask){
@@ -274,8 +274,7 @@ std::map<polyMPO::MaterialPointSlice, setMPFunc> setMPMap = {
274274
{polyMPO::MPF_Vel, setMPData<polyMPO::MPF_Vel>},
275275
{polyMPO::MPF_Rot_Lat_Lon_Incr, setMPData<polyMPO::MPF_Rot_Lat_Lon_Incr>},
276276
{polyMPO::MPF_Strain_Rate, setMPData<polyMPO::MPF_Strain_Rate>},
277-
{polyMPO::MPF_Stress, setMPData<polyMPO::MPF_Stress>},
278-
{polyMPO::MPF_Stress_Div, setMPData<polyMPO::MPF_Stress_Div>}
277+
{polyMPO::MPF_Stress, setMPData<polyMPO::MPF_Stress>}
279278
};
280279

281280
void polympo_setMPData_f(MPMesh_ptr p_mpmesh,
@@ -325,24 +324,7 @@ void polympo_setMPRotLatLon_f(MPMesh_ptr p_mpmesh,
325324
const double* mpRotLatLonIn){
326325
static int callCount = 0;
327326
PMT_ALWAYS_ASSERT(callCount == 0);
328-
checkMPMeshValid(p_mpmesh);
329-
auto p_MPs = ((polyMPO::MPMesh*)p_mpmesh)->p_MPs;
330-
PMT_ALWAYS_ASSERT(nComps == vec2d_nEntries);
331-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getCount());
332-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getMaxAppID());
333-
334-
auto mpRotLatLon = p_MPs->getData<polyMPO::MPF_Cur_Pos_Rot_Lat_Lon>();
335-
auto mpAppID = p_MPs->getData<polyMPO::MPF_MP_APP_ID>();
336-
kkViewHostU<const double**> mpRotLatLonIn_h(mpRotLatLonIn,nComps,numMPs);
337-
Kokkos::View<double**> mpRotLatLonIn_d("mpRotLatLonDevice",vec2d_nEntries,numMPs);
338-
Kokkos::deep_copy(mpRotLatLonIn_d, mpRotLatLonIn_h);
339-
auto setPos = PS_LAMBDA(const int& elm, const int& mp, const int& mask){
340-
if(mask){
341-
mpRotLatLon(mp,0) = mpRotLatLonIn_d(0, mpAppID(mp));
342-
mpRotLatLon(mp,1) = mpRotLatLonIn_d(1, mpAppID(mp));
343-
}
344-
};
345-
p_MPs->parallel_for(setPos, "setMPRotLatLon");
327+
setMPData<polyMPO::MPF_Cur_Pos_Rot_Lat_Lon>(p_mpmesh, nComps, numMPs, mpRotLatLonIn);
346328
callCount++;
347329
}
348330

@@ -371,25 +353,7 @@ void polympo_getMPRotLatLon_f(MPMesh_ptr p_mpmesh,
371353
}
372354

373355
void polympo_setMPMass_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, const double* mpMassIn) {
374-
Kokkos::Timer timer;
375-
checkMPMeshValid(p_mpmesh);
376-
auto p_MPs = ((polyMPO::MPMesh*)p_mpmesh)->p_MPs;
377-
PMT_ALWAYS_ASSERT(nComps == 1); //TODO mp_sclr_t
378-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getCount());
379-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getMaxAppID());
380-
381-
auto mpMass = p_MPs->getData<polyMPO::MPF_Mass>();
382-
auto mpAppID = p_MPs->getData<polyMPO::MPF_MP_APP_ID>();
383-
kkViewHostU<const double**> mpMassIn_h(mpMassIn,nComps,numMPs);
384-
Kokkos::View<double**> mpMassIn_d("mpMassDevice",nComps,numMPs);
385-
Kokkos::deep_copy(mpMassIn_d, mpMassIn_h);
386-
auto setMPMass = PS_LAMBDA(const int& elm, const int& mp, const int& mask){
387-
if(mask){
388-
mpMass(mp,0) = mpMassIn_d(0, mpAppID(mp));
389-
}
390-
};
391-
p_MPs->parallel_for(setMPMass, "setMPMass");
392-
pumipic::RecordTime("PolyMPO_setMPMass", timer.seconds());
356+
setMPData<polyMPO::MPF_Mass>(p_mpmesh, nComps, numMPs, mpMassIn);
393357
}
394358

395359
void polympo_getMPMass_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, double* mpMassHost) {
@@ -415,26 +379,7 @@ void polympo_getMPMass_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs
415379
}
416380

417381
void polympo_setMPVel_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, const double* mpVelIn) {
418-
Kokkos::Timer timer;
419-
checkMPMeshValid(p_mpmesh);
420-
auto p_MPs = ((polyMPO::MPMesh*)p_mpmesh)->p_MPs;
421-
PMT_ALWAYS_ASSERT(nComps == vec2d_nEntries);
422-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getCount());
423-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getMaxAppID());
424-
425-
auto mpVel = p_MPs->getData<polyMPO::MPF_Vel>();
426-
auto mpAppID = p_MPs->getData<polyMPO::MPF_MP_APP_ID>();
427-
kkViewHostU<const double**> mpVelIn_h(mpVelIn,nComps,numMPs);
428-
Kokkos::View<double**> mpVelIn_d("mpVelDevice",vec2d_nEntries,numMPs);
429-
Kokkos::deep_copy(mpVelIn_d, mpVelIn_h);
430-
auto setMPVel = PS_LAMBDA(const int& elm, const int& mp, const int& mask){
431-
if(mask){
432-
mpVel(mp,0) = mpVelIn_d(0, mpAppID(mp));
433-
mpVel(mp,1) = mpVelIn_d(1, mpAppID(mp));
434-
}
435-
};
436-
p_MPs->parallel_for(setMPVel, "setMPVel");
437-
pumipic::RecordTime("PolyMPO_setMPVel", timer.seconds());
382+
setMPData<polyMPO::MPF_Vel>(p_mpmesh, nComps, numMPs, mpVelIn);
438383
}
439384

440385
void polympo_getMPVel_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, double* mpVelHost) {
@@ -460,30 +405,8 @@ void polympo_getMPVel_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs,
460405
pumipic::RecordTime("PolyMPO_getMPVel", timer.seconds());
461406
}
462407

463-
//TODO: implement these
464408
void polympo_setMPStrainRate_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, const double* mpStrainRateIn){
465-
checkMPMeshValid(p_mpmesh);
466-
auto p_MPs = ((polyMPO::MPMesh*)p_mpmesh)->p_MPs;
467-
PMT_ALWAYS_ASSERT(nComps == 6); //TODO: mp_sym_mat3d_t
468-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getCount());
469-
PMT_ALWAYS_ASSERT(numMPs >= p_MPs->getMaxAppID());
470-
471-
auto mpStrainRate = p_MPs->getData<polyMPO::MPF_Vel>();
472-
auto mpAppID = p_MPs->getData<polyMPO::MPF_MP_APP_ID>();
473-
kkViewHostU<const double**> mpStrainRateIn_h(mpStrainRateIn,nComps,numMPs);
474-
Kokkos::View<double**> mpStrainRateIn_d("mpStrainRateDevice",nComps,numMPs);
475-
Kokkos::deep_copy(mpStrainRateIn_d, mpStrainRateIn_h);
476-
auto setMPStrainRate = PS_LAMBDA(const int& elm, const int& mp, const int& mask){
477-
if(mask){
478-
mpStrainRate(mp,0) = mpStrainRateIn_d(0, mpAppID(mp));
479-
mpStrainRate(mp,1) = mpStrainRateIn_d(1, mpAppID(mp));
480-
mpStrainRate(mp,2) = mpStrainRateIn_d(2, mpAppID(mp));
481-
mpStrainRate(mp,3) = mpStrainRateIn_d(3, mpAppID(mp));
482-
mpStrainRate(mp,4) = mpStrainRateIn_d(4, mpAppID(mp));
483-
mpStrainRate(mp,5) = mpStrainRateIn_d(5, mpAppID(mp));
484-
}
485-
};
486-
p_MPs->parallel_for(setMPStrainRate, "setMPStrainRate");
409+
setMPData<polyMPO::MPF_Strain_Rate>(p_mpmesh, nComps, numMPs, mpStrainRateIn);
487410
}
488411
void polympo_getMPStrainRate_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, double* mpStrainRateHost){
489412
checkMPMeshValid(p_mpmesh);
@@ -495,13 +418,7 @@ void polympo_getMPStrainRate_f(MPMesh_ptr p_mpmesh, const int nComps, const int
495418
(void)mpStrainRateHost;
496419
}
497420
void polympo_setMPStress_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, const double* mpStressIn){
498-
checkMPMeshValid(p_mpmesh);
499-
std::cerr << "Error: This routine is not implemented yet\n";
500-
exit(1);
501-
(void)p_mpmesh;
502-
(void)nComps;
503-
(void)numMPs;
504-
(void)mpStressIn;
421+
setMPData<polyMPO::MPF_Stress>(p_mpmesh, nComps, numMPs, mpStressIn);
505422
}
506423
void polympo_getMPStress_f(MPMesh_ptr p_mpmesh, const int nComps, const int numMPs, double* mpStressHost){
507424
checkMPMeshValid(p_mpmesh);

0 commit comments

Comments
 (0)