diff --git a/sim-test/rigid-test/cube/config.json b/sim-test/rigid-test/cube/config.json index 9bf68fb..a8f50b9 100644 --- a/sim-test/rigid-test/cube/config.json +++ b/sim-test/rigid-test/cube/config.json @@ -1,6 +1,6 @@ { "material": [1e5, 0.3, 1e3], - "mshFilePath": "/home/cflin/Documents/CppField/source/RigidElasticSim/sim-test/rigid-test/cube/cube_9743.msh", + "mshFilePath": "/home/cw/opt/StaticSimulation/sim-test/rigid-test/cube/cube_9743.msh", "DBC": [ { diff --git a/sim-test/rigid-test/rearAxle-mod/config.json b/sim-test/rigid-test/rearAxle-mod/config.json index 9b39242..4e98b13 100644 --- a/sim-test/rigid-test/rearAxle-mod/config.json +++ b/sim-test/rigid-test/rearAxle-mod/config.json @@ -1,6 +1,6 @@ { "material": [1e5, 0.3, 1e3], - "mshFilePath": "/home/cflin/Documents/CppField/source/RigidElasticSim/sim-test/rigid-test/rearAxle-mod/rearAxle-mod_.msh", + "mshFilePath": "/home/cw/opt/StaticSimulation/sim-test/rigid-test/rearAxle-mod/rearAxle-mod_.msh", "DBC": [ { diff --git a/sim-test/rigid-test/rocker-arm/config.json b/sim-test/rigid-test/rocker-arm/config.json index b90f702..2be5db7 100644 --- a/sim-test/rigid-test/rocker-arm/config.json +++ b/sim-test/rigid-test/rocker-arm/config.json @@ -1,6 +1,6 @@ { "material": [1e5, 0.3, 1e3], - "mshFilePath": "/home/cflin/Documents/CppField/source/RigidElasticSim/sim-test/rigid-test/rocker-arm/rocker-arm_.msh", + "mshFilePath": "/home/cw/opt/StaticSimulation/sim-test/rigid-test/rocker-arm/rocker-arm_.msh", "DBC": [ { diff --git a/src/static_sim/StaticSim.h b/src/static_sim/StaticSim.h index 2480935..8b77b5c 100644 --- a/src/static_sim/StaticSim.h +++ b/src/static_sim/StaticSim.h @@ -25,7 +25,10 @@ #include "BoundaryConditions.hpp" #include "Config.hpp" +#include "Utils.hpp" + #include +#include namespace ssim { class StaticSimGUI; @@ -85,19 +88,24 @@ namespace ssim { /// \param v_is_extract if (v_is_extract[i]){ extract the target i; } /// \param extract_coord_flg void ExtractTarget(std::string save_dir,std::vector v_is_extract,bool extract_coord_flg){ - if(extract_coord_flg){ - // TODO: add coordinate cols - spdlog::info("extract {}","coordinate"); + if(extract_coord_flg) { + Eigen::MatrixXd V_surf(SVI.size(), 3); + for (int svI = 0; svI < SVI.size(); ++svI) { + int vI = SVI[svI]; + Eigen::Vector3d u = U.segment<3>(vI * 3); + V_surf.row(svI) = TV.row(vI) + u.transpose(); + } + + igl::write_triangle_mesh(save_dir + "/deformed-surf.obj", V_surf, F_surf); + spdlog::info("save deformed surface mesh to 'deformed-surf.obj'"); } for(int i=0;i