#include #include #include #include #include "Top3d.h" #include "Boundary.h" using Eigen::Tensor; using Tensor3f = Tensor; void print_tensor(const Tensor3f &t3) { for (int k = 0; k < t3.dimension(2); ++k) { std::cout << t3.chip(k, 2) << std::endl; std::cout << std::endl; } } int main() { auto para = std::make_shared(); para->penal=3; para->max_loop=4; double E = 1.0; double Poisson_ratio = 0.3; auto material = std::make_shared(E, Poisson_ratio); auto mesh = std::make_shared(10, 200,10); top::Top3d top3d(para, material, mesh); top::Boundary bdr(mesh); auto l_bd=bdr.GetLeftBoundary(); top3d.AddDBC(l_bd,{1,1,1}); top3d.AddNBC(bdr.GetRightBottomMidPoint(),{0,0,-1}); top3d.TopOptMainLoop(); return 0; }