Первый токен не может быть прочитан или не является ключевым словом «FoamFile» в OpenFOAM

Я новичок в программировании. Я пытаюсь запустить симуляцию камеры сгорания с помощью reactingFoam.

Я изменил учебник counterflow2D.

Для тех, кто, возможно, не знаком с OpenFOAM, это программа, построенная на C++, но она не требует программирования на C++, а просто четко определяет переменные в необходимых файлах.

В одной из своих первых попыток я сделал очень простую модель, но, поскольку я хотел ее очень хорошо проверить, я установил ее на 60 секунд с временным шагом 1e-6.

Мой компьютер не очень мощный, поэтому мне понадобилось около суток. (под этим я подразумеваю, что хотел бы найти решение, а не повторять симуляцию).

Я выполнил решатель, реагирующий на FOAM, используя 4 процессора параллельно, используя

mpirun -np 4 reactingFOAM -parallel › log

Журнал не показывает никаких признаков ошибки.

Проблема в том, что когда я использую реконструктор Par, он работает отлично, но затем я пытаюсь посмотреть результаты с помощью paraFoam, и появляется эта ошибка:

Из функции bool Foam::IOobject::readHeader(Foam::Istream&)

в файле db/IOobject/IOobjectReadHeader.C в строке 88

Чтение mypath/constant/reactions в строке 1

Первый токен не может быть прочитан или не является ключевым словом «FoamFile».

Я читал, что, возможно, некоторые файлы пусты, когда они не должны быть таковыми, но я не нашел этой проблемы.

Мой файл «реакции» не был изменен из учебника и всегда работал.

редактировать:

Извините за неконкретный вопрос. Я немного изменил его.


person edugius    schedule 13.05.2018    source источник
comment
Чтобы сделать это воспроизводимым для читателей, которые захотят помочь, нужно ли им увидеть что-то еще? Например, требует ли OpenFOAM от вас написания кода? Если задействован код, вероятно, стоит добавить это к вопросу. (На любой платформе вопросов и ответов лучше подумать о том, что читатели должны увидеть, а не добавлять всеобъемлющее сообщение «дайте мне знать, что вам нужно» — читатели обязательно спросят, нужно ли им что-то еще, но если вы сможете предоставление очевидно необходимых вещей в первую очередь, что очень помогает).   -  person halfer    schedule 14.05.2018
comment
Кажется, что файл «reactions» не содержит типичного заголовка «FoamFile», который, например, вы можете видеть в верхней части файла «controlDict». Однако очень трудно комментировать этот расплывчатый вопрос. Не могли бы вы улучшить свой вопрос, чтобы мы могли лучше помочь?   -  person Herpes Free Engineer    schedule 14.05.2018
comment
Спасибо за ваши ответы и за изменение моего вопроса в лучший формат. Извините, мой вопрос не ясен, я исправлю это. В противном случае я добавил заголовок этот в «реакции», и ошибка больше не появляется. Я очень благодарен за вашу помощь и ваше время, даже с моим неясным объяснением. Спасибо вам обоим! Могу ли я отблагодарить вас, поблагодарив, репутацией или чем-то в этом роде?   -  person edugius    schedule 14.05.2018
comment
@edugius Вы можете принять ответ, если считаете, что он полезен для вашей проблемы. Удовольствие.   -  person Herpes Free Engineer    schedule 14.05.2018


Ответы (1)


Типичный файл словаря OpenFOAM всегда содержит Foam::Istream с именем FoamFile. Пример типичного файла system/controlDict можно увидеть ниже:

FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}

Во время построения заголовка словаря, если этот Istream отсутствует, OpenFOAM прекращает свою работу, выдавая сообщение об ошибке, которое вы испытали:

First token could not be read or is not the keyword 'FoamFile'

Преимущество заголовка, возможно, состоит в том, чтобы внести свой вклад в механизмы абстракции OpenFOAM, что в противном случае было бы затруднительно.

Как упоминалось в комментариях, добавление объекта заголовка почти всегда решает эту проблему.

person Herpes Free Engineer    schedule 14.05.2018