В указанном вами файле VTK есть несколько вхождений 1.79769e+308
.Чтобы «увидеть» ваши данные, мне пришлось заменить их нулями.Сделав это и просмотрев ваш файл данных в VisIt , я бы предположил, что ваш метод записи данных точек неверен (три вложенных для циклов - которые сливают данные из 3D в одномерный список).
Я бы посоветовал вам написать несколько небольших наборов тестовых данных с помощью модуля записи VTK, а также этого простого кода C, который поставляется с VisIt для записи устаревших файлов VTK.Убедитесь, что наборы данных, написанные обоими методами, полностью совпадают (обратите внимание, что VisItWriterLib.c записывает форматы файлов VTK версии 2, тогда как вы используете версию 3 - однако это не должно вызывать проблем).
Редактировать: Как обсуждалось в комментариях, проблема заключалась в упорядочении вложенных циклов for, которые использовались для вывода данных точек и сглаживания их из 3D в одномерный список.Код
for(size_t i = 0; i < nx; ++i)
for(size_t j = 0; j < ny; ++j)
for(size_t k = 0; k < nz; ++k)
out << tempPhi(i,j,k) << std::endl;
должен фактически читать
for(size_t k = 0; k < nz; ++k)
for(size_t j = 0; j < ny; ++j)
for(size_t i = 0; i < nx; ++i)
out << tempPhi(i,j,k) << std::endl;
, т. Е. Данные должны быть записаны в столбце в главном порядке, а не в мажорной строке.Это тот момент, когда в документе формата файлов VTK отсутствует.