Я использую гм sh C ++ API как часть более крупного проекта оптимизации. Все, что мне нужно для gm sh, - это для меня sh несколько полигонов на каждой итерации для проведения анализа методом конечных элементов.
Согласно учебникам , однажды меня sh экземпляр генерируется, его можно сохранить в файл .msh
с помощью метода write()
, например:
gmsh::initialize();
// ...
// Geometry definition
// ...
gmsh::model::mesh::generate(2);
gmsh::write("myfile.msh");
А в файле .msh
я вижу все узлы, элементы и другая информация.
Теперь, как я уже упоминал выше, мне нужен только вывод gm sh, чтобы провести некоторый анализ с некоторыми функциями, которые я уже написал, и которым мне нужно только передать std::vector
или Eigen::Vector
, содержащий узлы и векторы.
Один (неэффективный) способ сделать это, конечно, экспортировать файл .msh
, а затем проанализировать его, чтобы создать std::vector
out узловой информации. Я ищу способ просто получить доступ к узлам и элементам, чтобы я мог сохранить их в std::vector
(или Eigen::Vector
) напрямую.
Есть ли способ избежать выгрузки всего в локальный файл ? Я знаю, что могу перепроектировать эту операцию, пройдя метод write()
и посмотрев, как узловая информация сохраняется в файле, но:
- Мне кажется, что должна быть какая-то функция API, которая служит именно этой цели
- Я бы предпочел не обращаться к огромным исходным файлам, чтобы самостоятельно выяснить эту информацию, так как мне нужно, чтобы это программное обеспечение было завершено как можно скорее