BGA(Ball Grid Array)のはんだ溶融解析
1. 解析モデルの説明
10×10個のはんだボールを並べたBGA(Ball Grid Array)において、はんだの表面張力によるチップの移動解析(連成運動)をOpenFOAMのVOF法のソルバーinterFoamで計算しました。OpenFOAMでは、流体から力を受けて固体が移動する計算を行うことができます。
なお、初期配置したはんだペーストの形状は円柱とし、表面張力係数を定義しました。基板上のパッドおよびチップ裏面のパット部分には、あらかじめフラックスで表面処理され濡れ性が高くなっているものとし、10度の接触角を定義しました。その他の固体表面には、撥水性として150度の接触角を定義しました。

2. 解析結果
溶融した微小なはんだボールは、濡れ性の高い箇所に移動しようとし、かつ、高い表面張力によって球形になろうとします。チップは、溶融したはんだの表面張力(=表面張力係数×曲率)によって支えられ、チップの自重と釣り合う位置に落ち着きます。
3. まとめ
・ OpenFOAMでは電子部品のセルフアライメントのシミュレーションを行うことができます。
・ シミュレーションでは、初期配置するはんだペーストの量を自由に変更する事ができるため、適切なはんだ量の検討を行えます。
・ 溶融したはんだ形状をSTL形式で出力する事も可能なので、構造解析ソフトによる溶けたはんだボール形状を考慮した熱応力解析が可能です。
・ 弊社は、interFoamをC++によるユーザカスタマイズで表面張力の計算精度を高めたソルバーも開発しています。
4. 補足(流体力による構造物の移動方法)
OpenFOAMでは、スライディングメッシュによる攪拌解析の様に、ユーザーが指定した並進や回転で構造物(剛体)を移動させる他にも、流体力で構造物(剛体)が移動する計算も可能です。Foundation版のver8を例に、移動メッシュの設定方法を説明します。
移動メッシュは、0フォルダ内にpointDisplacementファイルを、constantフォルダ内にdynamicMeshDictファイルを設定する必要があります。
0フォルダ
・ pointDisplacementファイルにおいて、移動する壁面のパッチのtypeをmovingWallVelocityに指定します。
・ Uファイル等において、移動する壁面のパッチのtypeをmovingWallVelocityに指定します
constantフォルダ
・ dynamicMeshDictファイルにおいて、移動する壁面のパッチ名、質量重心等を設定します。
例)移動するパッチ名がs_move、質量が10000、重心座標が(0,0,1)の場合、
------------------------------------------------------------------
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ("libsixDoFRigidBodyMotion.so");
motionSolver sixDoFRigidBodyMotion;
patches (s_move);
mass 10000;
centreOfMass (0 0 1.0);
momentOfInertia (1000000 1000000 20000000);
orientation
(
1 0 0
0 1 0
0 0 1
);
g (0 0 -9.81);
rho rhoInf;
rhoInf 1000;
report on;
accelerationDamping 0.1;
------------------------------------------------------------------
参考チュートリアル:
インストール先/tutorials/multiphase/interFoam/RAS/floatingObject