Как работать с сим-данными по дифференциальным уравнениям

0

Я изучал динамическое моделирование, такое как планетарное или молекулярное движение.

Выходные данные огромны и сохраняются как текстовые данные.

Exp.

FILE* f = fopen("xyzFile.txt", "w");
for (int i=0;i<max;i++) {
    // Ordinary differential equation.
    ode(particle);
    fprintf(f, "%.8f %.8f %.8f\n", particle.x, particle.y, particle.z);
}
fclose(f);

Я не могу найти начальное значение, дату создания и т.д. Из имени файла.

Я бы хотел эффективно сохранить эти данные.

Должен ли я использовать любую базу данных? Я думаю, что Мондобб может быть приятным. Дайте мне знать хорошее решение.

Заранее спасибо.

Теги:
simulation
numerical

1 ответ

0

В какой-то мере я работал с базами данных, и я работал с большим количеством численных расчетов. Мой совет - использовать базу данных SQL, такую как Postgres или MySQL (я рекомендую Postgres over MySQL, хотя, вероятно, один из них будет работать).

Таблица для хранения позиций частиц может содержать один или несколько столбцов, которые индексируют контекстуальную информацию в других таблицах. Например: таблица позиций может иметь временную отметку моделирования (то есть время в мире моделирования), координаты x, y и z и индекс для частицы, который указывает на другую таблицу, которая имеет столбцы для начального положения частицы и, возможно, другие описательные данные.

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

Из того, что я знаю, SQL лучше подходит для таких целей, чем MongoDB или другие базы данных "NoSQL".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню