Проблема
В настоящее время я работаю над симуляцией Навье-Стокса с помощью конечных элементов, и я хотел бы изучить влияние различных параметров. Некоторые параметры указываются во входном файле или через параметры командной строки; другие параметры предоставляются в виде флагов в Makefile, поэтому мой код должен перекомпилироваться всякий раз, когда я изменяю эти параметры. Мне было бы интересно получить несколько советов о хорошем способе систематического изучения пространства параметров.
- Существуют ли полезные библиотеки / фреймворки C ++ / Python, которые могут помочь с такими вещами? Например, обнаружение boost.Program_options было большой помощью, поскольку возможно перегрузить параметры входного файла аргументами командной строки. Я также видел, как некоторые люди используют файл задания, достаточно эффективно описывающий каждый случай, и коллега предположил, что запись параметров в файлы vtu как блоки комментариев тоже может сработать.
- Возможно, вообще не стоит тратить на это много времени? Это просто отвлечение внимания и трата времени, и лучше всего просто тренироваться в процессе тестирования грубой силой и ad hoc?
Некоторые мысли
В настоящее время я делаю вещи в основном вручную, и я столкнулся со следующими проблемами:
- Именование тестовых случаев . Я попытался сохранить результаты в папках с именами параметров запуска, разделенных подчеркиванием, например
Re100_dt02_BDF1...
. Они быстро становятся длинными или трудными для чтения / шифрования, если их слишком сокращать. Кроме того, параметры действительного числа включают в себя,.
что неудобно / некрасиво. - Регистрация данных прогона . Иногда я хотел бы видеть результаты, записанные в терминал, а также сохраненные в текстовом файле. Этот ответ от StackOverflow, например, несколько полезен, но решения кажутся немного навязчивыми.
- Построение данных в соответствии с параметром . Требуется довольно много времени, чтобы собрать соответствующие данные из различных файлов журналов в один файл, который я затем могу построить, с лучшей системой, возможно, это станет проще.
- Запись комментариев на данные . После изучения результатов я записываю некоторые комментарии в текстовый файл, но иногда это сложно синхронизировать с папками результатов.