我們在Comsol中經常需要對物體的邊界求積分,比如求物體在流場中所受的總流體牽引力,又或者是物體在電場中受到的總介電泳力。當物體的材料或者邊界條件存在突變時,物體表面的粘性應力或者麥克斯韋電應力可能會存在異常值。通常解決方法有細化網格、增加過度層等等,當時這些方法需要更改模型設置。這里介紹一種后處理的方法,在積分計算的時候增加條件來去除這些奇異點或異常值。
我以2D仿真中Janus微球在AC電場中所受的流場牽引力為例,從上圖可以看到上下兩個端點附近的流場牽引力存在異常值。
首先我們定義一個積分算子 intop1,這個算子的邊界就算選擇整個圓的邊界。
一般我們使用intop1( -spf.T_stressx)計算x方向物體受到流場的牽引力/阻力,但這樣計算就包含了異常值。
我們可以將|x|<0.1[um]范圍內的值在積分時排除掉,再計算積分即可。也就是在積分算子中加入一個if條件函數。
intop2(if( abs(x-0)<0.1[um], 0, -spf.T_stressx ))