Palabos User Guide中文解读 | 第十二章 | 数据评估
作者的話:本人在學(xué)習(xí)palabos時,發(fā)現(xiàn)國內(nèi)中文資料甚少,恰好網(wǎng)上可以直接搜到palabos user guide這種英文資料,加之時間充裕,便打算開始翻譯,翻了一節(jié)后發(fā)現(xiàn)這可能算侵權(quán),就比較傷腦筋,突然想到自己寫中文解讀即可,便有了下面的博客。
Palabos User Guide
Release 1.0 r1
Copyright ? 2019 University of Geneva
Jul 05, 2019
Chapter Twelve
數(shù)據(jù)評估
12.1 概覽
在19.2節(jié)附錄(數(shù)據(jù)分析等的不變值算子操作(主要講預(yù)設(shè)的block-lattice內(nèi)的不變值用于數(shù)據(jù)后處理))中,有很多用于轉(zhuǎn)換數(shù)據(jù)的palabos代碼。
當(dāng)我們運行完程序后,接下來就到了處理數(shù)據(jù)的環(huán)節(jié),我們可能會用到一些標(biāo)準(zhǔn)的后處理工具,所以我們需要轉(zhuǎn)換一下數(shù)據(jù)。
本節(jié)會涉及到 computeVelocity 函數(shù)。可用于2D和3D中的atomic-blocks與multi-blocks。
下面是3D的例子:
// Version 1
void computeVelocity(MultiBlockLattice3D<T,Descriptor>& lattice,
MultiTensorField3D<T,Descriptor< T>::d>& velocity, Box3D domain);
// Version 2
std::unique_ptr<MultiTensorField3D<T,3> >
computeVelocity(MultiBlockLattice3D<T,Descriptor>& lattice, Box3D domain);
// Version 3
std::unique_ptr<MultiTensorField3D<T,3> >
computeVelocity(MultiBlockLattice3D<T,Descriptor>& lattice);
上面的version1,速度是在block-lattice的子域被計算的,得到的結(jié)果對應(yīng)的是3個元素的張量場的子域。
其中block-lattice和張量場無需擁有相同的尺寸,也不需要有相同的內(nèi)部區(qū)塊安排。如果兩者之一的域超過了另一個的尺寸,域會自動相應(yīng)地切對齊。
version2中的代碼更加常用,會自動生成一個與上面代碼中的domain尺寸相同的張量場。這里用到的是C++標(biāo)準(zhǔn)庫的指針功能。
當(dāng)你使用std::unique_ptr<MultiTensorField3D<T,3> >,就如同使用 MultiTensorField3D<T,3>*一樣。區(qū)別在于自動指針有著自動內(nèi)存管理的機制,把你從用完后還需要delete中解放出來。
下面是個典型的使用computeVelocity的例子:
pcout << *computeVelocity(lattice, domain) << endl;
如果你使用了這行代碼,計算結(jié)果會立刻出現(xiàn)在終端屏幕上。代碼前的星號是為了區(qū)分出別的速度域的指針。在程序末行,速度域的內(nèi)存會自動被處理,無需再消除。
version3中因為domain語句為整個lattice的區(qū)域,即lattice.getBoundingBox(),就非常的方便。
12.2 輸出數(shù)據(jù)評估算子
computeVelocity函數(shù)得到的值可以直接用于別的數(shù)據(jù)處理操作。由此代碼可以寫的比較復(fù)雜,例如,在之前節(jié)中提到的computeAverage函數(shù)可以被一個速度場的計算來替代(計算速度,將其值代入計算范數(shù)平方{normsquare},除以2,得到平均動能):
pcout << "The value " << *computeAverageEnergy(lattice) << " is the same as " << computeAverage (
*multiply ( 0.5, *computeNormSqr (
*computeVelocity(lattice) ) ) )
<< endl;
在附錄19章(部分函數(shù)和類的參考)列出了這個例子涉及的所有函數(shù)。更多的數(shù)據(jù)分析,標(biāo)量場構(gòu)建以及數(shù)據(jù)分析算子的結(jié)合計算都在examples/codesByTopic/scalarField目錄下。
總結(jié)
以上是生活随笔為你收集整理的Palabos User Guide中文解读 | 第十二章 | 数据评估的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节跳动第四批笔试题
- 下一篇: 计算机毕业设计之阿里云SpringBoo