2013-10-14 55 views
0

我研究了行星或分子運動等動態模擬。如何通過微分方程處理sim數據

輸出數據很大,並保存爲文本數據。

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); 

我無法從文件名中找到初始值,創建日期等等。

我想有效地保存這些數據。

我必須使用任何數據庫嗎?我猜Mongodb可以很好。 讓我知道很好的解決方案。

在此先感謝。

回答

0

我已經在某種程度上使用了數據庫,並且已經進行了大量的數值模擬。我的建議是使用SQL數據庫,例如Postgres或MySQL(我推薦使用MySQL上的Postgres,儘管可能任何一個都可以)。

存儲粒子位置的表可以有一個或多個列,用於在其他表中索引上下文信息。例如:位置表可以有一個模擬時間戳(即模擬世界中的時間),x,y和z座標,以及一個粒子索引,該索引指向另一個表格,該表格具有列的初始位置粒子和其他描述性數據。

使用這種數據庫結構,您可以執行查詢以查找給定時間內所有粒子的位置,或兩次之間的位置或單個粒子的所有位置。

據我所知,SQL比MongoDB或其他「NoSQL」數據庫更適合這種用途。