SlideShare a Scribd company logo
1 of 55
Download to read offline
OpenFOAMにおけるDEM
計算の衝突モデルの解読
第44回OpenCAE勉強会@関西	
  
2015/12/13	
⼤大阪⼤大学⼤大学院基礎⼯工学研究科
  博⼠士2年年  ⼭山本卓也
OpenFOAMでのDEM	
OpenFOAM-­‐2.0.0よりDEM解析が実装された。	
2011/6/16 	
  OpenFOAM-­‐2.0.0でDEM(Discrete	
  Element	
  
	
   	
  Method)の機能追加	
  
	
   	
  (Lagrangianライブラリが追加)	
  
2014/2/17 	
  OpenFOAM-­‐2.3.0でDPM(Discrete	
  ParHcle	
  
	
   	
  Modeling)が実装	
  
	
   	
  MP-­‐PIC(MulHphase	
  ParHcle-­‐in-­‐Cell)法が実装	
Release	
  History	
OpenFOAMのDEMについてあまりdocumentがないので調査する。	
  
	
  
粒子に働く力のモデルについて	
  
衝突モデル	
$FOAM_SRC/lagrangian/intermediate/submodels/KinemaHc/CollisionModel	
このフォルダ中に衝突のモデルが書かれている	
$tree	
  -­‐L	
  1	
├──	
  CollisionModel	
  
├──	
  NoCollision	
  
└──	
  PairCollision	
  
クラスは3つ	
  
NoCollisionクラス,	
  PairCollisionクラスは
CollisionModelクラスを継承	
基底クラスはCollisionModelクラスで	
  
継承クラスはNoCollisionクラスとPairCollisionクラス	
衝突モデルはPairCollisionとNoCollisionの2種類
衝突モデル	
$FOAM_SRC/lagrangian/intermediate/submodels/KinemaHc/CollisionModel	
このフォルダ中に衝突のモデルが書かれている	
template<class	
  CloudType>	
  
class	
  NoCollision	
  
:	
  
	
  	
  	
  	
  public	
  CollisionModel<CloudType>	
  
NoCollision.H	
  	
template<class	
  CloudType>	
  
class	
  PairCollision	
  
:	
  
	
  	
  	
  	
  public	
  CollisionModel<CloudType>	
PairCollision.H	
  	
クラスの継承	
class	
  derive	
  :	
  public	
  base	
baseの基底クラスをderiveの派生ク
ラスで継承する。	
「C++の絵本」 (株)アンク 翔泳社	
クラスは3つ	
  
NoCollisionクラス,	
  PairCollisionクラスは
CollisionModelクラスを継承
CollisionModelクラスの構造	
CollisionModel<CloudType>クラス	
nSubCycles	
 controlsWallInteracHon	
collide	
メンバ	
 クラス	
CollisionModelではnSubCycle,	
  
controlsWallInteracHon,	
  collideは初期化
している。(値として0	
  (false)を代入する。つ
まり、派生クラスにおいてオーバーライド
すること前提にしている。)	
	
  virtual	
  label	
  nSubCycles()	
  const;	
  
	
  virtual	
  bool	
  controlsWallInteracHon()	
  const;	
  
	
  virtual	
  void	
  collide();	
CollisionModel.H	
virtual:	
  仮想関数として指定	
  
(派生クラスで再定義した際に派生クラス側
のメンバ関数が呼ばれるようにするため)	
「C++の絵本」 (株)アンク 翔泳社
NoCollisionクラスの構造	
継承	
継承したメンバ	
 オーバーライド
したメンバ	
NoCollisionはac?veのメンバのみ定義	
  
オーバーライドしてnSubCycle,	
  
controlsWallInterac?on,	
  collideを設定	
   NoCollisionクラス	
CollisionModel<CloudType>クラス	
派生クラス上で
定義するメンバ	
CollisionModel<CloudType>クラス	
nSubCycles	
 controlsWallInteracHon	
collide	
メンバ	
 クラス	
NoCollisionクラス	
nSubCycles	
 controlsWallInteracHon	
collide	
 acHve
PairCollisionクラスの構造	
継承	
オーバーライド
したメンバ	
NoCollisionはオーバーライドして
nSubCycle,	
  controlsWallInterac?on,	
  
collideを設定	
  
PairCollisionクラス	
CollisionModel<CloudType>クラス	
派生クラス上で
定義するメンバ	
CollisionModel<CloudType>クラス	
nSubCycles	
 controlsWallInteracHon	
collide	
メンバ	
 クラス	
PairCollisionクラス	
nSubCycles	
 controlsWallInteracHon	
collide	
 preInteracHon	
parcelInteracHon	
 realRealInteracHon	
realReferredInteracHon	
wallInteracHon	
 duplicatePointInList	
postInteracHon	
 evaluatePair	
evaluateWall
pair衝突モデル	
$FOAM_SRC/lagrangian/intermediate/submodels/KinemaHc/CollisionModel/PairCollision	
このフォルダ中にpair衝突のモデルが書かれている	
$tree	
  -­‐L	
  1	
.	
  
├──	
  PairModel	
  
├──	
  WallModel	
  
└──	
  WallSiteData	
  
pair	
  collisionモデルではPairModelとWallModel
に分かれている。つまり、粒子どおしのペアと粒
子と壁のモデルで別に定義している	
PairModel	
  
├──	
  PairModel	
  
└──	
  PairSpringSliderDashpot	
WallModel	
  
├──	
  WallLocalSpringSliderDashpot	
  
├──	
  WallModel	
  
└──	
  WallSpringSliderDashpot	
基底クラスはPairModel	
  
派生クラスはPairSpringSliderDashpot	
基底クラスはWallModel	
  
派生クラスはWallLocalSpringSliderDashpot,	
  
WallSpringSliderDashpot
WallSpringSliderDashpotクラス	
WallModelクラス	
owner	
 dict	
 coeffDict	
 pREff	
controlsTimestep	
 nSubCycles	
evaluateWall	
継承	
WallSpringSliderDashpotクラス	
owner	
 dict	
 coeffDict	
 pREff	
controlsTimestep	
 nSubCycles	
evaluateWall	
 findMinMaxProperHes	
継承したメンバ	
 オーバーライド
したメンバ	
派生クラス上で
定義するメンバ	
volumeFactor	
WallModelでは各クラスを初期化している。
(値として0	
  (false)を代入する。つまり、派
生クラスにおいてオーバーライドすること
前提にしている。)	
オーバーライドしてpREff,	
  
controlsTimestep,	
  nSubCycles,	
  
evaluateWallを設定	
   WallSpringSliderDashpotクラス	
WallModelクラス
WallLocalSpringSliderDashpotクラス	
WallModelクラス	
owner	
 dict	
 coeffDict	
 pREff	
controlsTimestep	
 nSubCycles	
evaluateWall	
継承	
WallLocalSpringSliderDashpotクラス	
owner	
 dict	
 coeffDict	
継承したメンバ	
 オーバーライド
したメンバ	
派生クラス上で
定義するメンバ	
WallLocalSpringSliderDashpotクラス	
WallModelクラス	
pREff	
controlsTimestep	
 nSubCycles	
evaluateWall	
 findMinMaxProperHes	
volumeFactor	
WallModelでは各クラスを初期化している。
(値として0	
  (false)を代入する。つまり、派
生クラスにおいてオーバーライドすること
前提にしている。)	
オーバーライドしてpREff,	
  
controlsTimestep,	
  nSubCycles,	
  
evaluateWallを設定	
  
PairSpringSliderDashpotクラス	
PairModelクラス	
owner	
継承	
PairSpringSliderDashpotクラス	
継承したメンバ	
 オーバーライド
したメンバ	
派生クラス上で
定義するメンバ	
PairModelクラス	
dict	
 coeffDict	
controlsTimestep	
 nSubCycles	
evaluatePair	
owner	
 dict	
 coeffDict	
controlsTimestep	
 nSubCycles	
evaluatePair	
 findMinMaxProperHes	
volumeFactor	
 overlapArea	
PairModelでは各クラスを初期化している。
(値として0を代入する。つまり、派生クラス
においてオーバーライドすること前提にし
ている。)	
オーバーライドして
controlsTimestep,	
  nSubCycles,	
  
evaluateWallを設定	
  
PairSpringSliderDashpotクラス
PairCollisionクラスの構造	
PairCollisionクラス	
nSubCycles	
 controlsWallInteracHon	
 collide	
 preInteracHon	
 parcelInteracHon	
realRealInteracHon	
 realReferredInteracHon	
 wallInteracHon	
 duplicatePointInList	
postInteracHon	
 evaluatePair	
 evaluateWall	
クラス	
どのようなことをコード内で行っているかを調査する。	
privateメンバ	
 publicメンバ
PairCollisionクラスのpublicメンバ	
nSubCycles	
controlsWallInteracHon	
collide	
衝突モデルの基準を満たすために現在のsubcycleの時間ステップ
の数を返す	
  
コメント文を和訳	
モデルが壁との衝突を決めるかどうかを示し、wallImpactDistance
のために使う値を決めるために使用する	
  
衝突関数	
  
以下のprivateメンバを順次読み込む	
  
preInteracHon	
  
parcelInteracHon	
  
wallInteracHon	
  
postInteracHon	
  
PairCollisionクラスのprivateメンバ	
preInteracHon	
parcelInteracHon	
realRealInteracHon	
realReferredInteracHon	
wallInteracHon	
duplicatePointInList	
postInteracHon	
evaluatePair	
evaluateWall	
衝突の前処理	
  
parcel間の相互作用	
  
実際の(processor上にある)粒子間の相互作用	
  
コメント文を和訳	
実際の粒子を参照する(processor上にない)粒子の相互作用	
  
壁との相互作用	
  
コメントなし	
  
衝突後の後処理	
  
parcel間のpair力を計算する	
  
parcelへの壁面力を計算する	
  
PairCollisionクラスのcollideメンバ	
collide	
preInteracHon	
parcelInteracHon	
wallInteracHon	
postInteracHon	
realRealInteracHon	
realReferredInteracHon	
evaluatePair	
evaluatePair	
evaluateWall	
publicメンバであるcollideを呼べば、PairCollisionクラスのほとん
どのprivateメンバを使用し、parcelの衝突を計算できる。	
  
また、evaluate...は他のクラス(PairModel,	
  WallModel)からメンバ
関数を呼び出している。	
  
Pair(Wall)Modelクラスの構造	
PairModelクラス	
クラス	
どのようなことをコード内で行っているかを調査する。	
privateメンバ	
 publicメンバ	
owner	
 dict	
 coeffDict	
 controlsTimestep	
 nSubCycles	
 evaluatePair	
WallModelクラス	
owner	
 dict	
 coeffDict	
 controlsTimestep	
 nSubCycles	
pREff	
 evaluateWall
Pair(Wall)Modelクラスのpublicメンバ	
ownerのクラウドオブジェクトを返す	
  
コメント文を和訳	
owner	
dict	
coeffDict	
controlsTimestep	
nSubCycles	
evaluatePair	
pREff	
evaluateWall	
dicHonaryを返す	
  
coefficient	
  dicHonaryを返す	
  
subCycleで必要とされる時間ステップの制限をpair(wall)Modelが持つか
どうか	
  
最小時間ステップを満たすのに必要なsubCycleの数を計算する	
  
parcelのための壁との相互作用を計算する	
  
モデルのための粒子の有効半径を返す	
  
parcelのためのparcel間相互作用を計算する	
  
Pari(Wall)ModelクラスではcontrolsTimestep,	
  nSubCycles,	
  evaluatePair,	
  evaluateWall,	
  
pREffを初期化するのみ。オーバーライド前提のクラス。派生クラスに詳しい定義。	
  
PairSpringSliderDashpotクラスの構造	
PairSpringSliderDashpotクラス	
クラス	
privateメンバ	
 publicメンバ	
volumeFactor	
 overlapArea	
 controlsTimestep	
 nSubCycles	
 evaluatePair	
Wall(Local)SpringSliderDashpotクラス	
findMinMaxProperHes	
Wall(Local)SpringSliderDashpotクラスの構造	
evaluateWall	
 volumeFactor	
 controlsTimestep	
nSubCycles	
 evaluateWall	
pREff
PairSpringSliderDashpotクラスのメンバ	
volumeFactorを返す(volumeFactorは粒子数が1つでないparcelを
決める体積factor)	
  	
  
コメント文を和訳	
volumeFactor	
overlapArea	
controlsTimestep	
nSubCycles	
evaluatePair	
2つの粒子(球)が重なる面積を返す	
  
subCycleで必要とされる時間ステップの制限を持つかどうか	
  
最小時間ステップを満たすために必要なsubCycleの数を計算する	
  
parcel間のpair相互作用を計算する	
  
Wall(Local)SpringSliderDashpotクラスのメンバ	
volumeFactorを返す(volumeFactorは粒子数が1つでないparcelを
決める体積factor)	
  	
  
コメント文を和訳	
volumeFactor	
controlsTimestep	
nSubCycles	
subCycleで必要とされる時間ステップの制限を持つかどうか	
  
最小時間ステップを満たすために必要なsubCycleの数を計算する	
  
findMinMaxProperHes	
evaluateWall	
evaluateWall	
pREff	
最小時間ステップを決めるための適切なproperHesを見つける	
  
与えられた場所に置いてparcel-­‐壁間の相互作用を計算する	
  
モデルに必要な粒子の有効半径を返す	
  
与えられた場所に置いてparcel-­‐壁間の相互作用を計算する	
  
PairSpringSliderDashpotクラスの変数	
private変数	
private変数	
Estar	
 Gstar	
 b	
 mu	
 cohesionEnergyDensity	
Wall(Local)SpringSliderDashpotクラスの変数	
alpha	
 cohesion	
collisionResoluHonSteps	
 volumeFactor	
 useEquivalentSize	
private変数	
Estar	
 Gstar	
 b	
 mu	
 cohesionEnergyDensity	
alpha	
 cohesion	
collisionResoluHonSteps	
 volumeFactor	
 useEquivalentSize
PairSpringSliderDashpotクラスもしくは
Wall(Local)SpringSliderDashpotクラスの変数	
Estar	
Gstar	
b	
mu	
cohesionEnergyDensity	
alpha	
cohesion	
collisionResoluHonSteps	
volumeFactor	
useEquivalentSize	
有効Young率	
  
有効剪断弾性率	
  
回復係数に関するalpha係数	
  
バネ指数(b	
  =	
  1では線形バネ,	
  b	
  =	
  3/2	
  でHertzian)	
  
接線滑りでの摩擦係数	
  
結合エネルギー密度	
  
結合のスイッチ(on/off)	
  
衝突時の最小調和近似を解像する時間ステップ	
  
粒子数が1つでないparcelの等価な大きさを決める体積Factor	
  
等価な粒子径を使うスイッチ。計算負荷が重たくなるので使用す
る。	
  
pair衝突モデル	
粒子-­‐粒子間衝突モデル	
  
(PairModel)	
粒子-­‐壁間衝突モデル	
  
(WallModel)	
選択肢	
  
•  PairSpringSliderDashpot	
選択肢	
  
•  WallLocalSpringSliderDashpot	
  
•  WallSpringSliderDashpot	
壁ごとにSpringSliderDashpotを設定	
  
WallLocalSpringSliderDashpot	
  
WallSpringSliderDashpot	
  
すべての壁にSpringSliderDashpotを設定	
  
1.  バネ(spring)	
  
2.  スライダー(Slider)	
  
3.  ダッシュポット(Dashpot)	
1.  弾性	
  
2.  塑性	
  
3.  粘性	
F = Kδ
F =η !δ
!δ = 0 F <Y( )
!F = 0 F =Y( )
「粒子個別要素法」 森北出版	
  
著	
  Catherine	
  O’Sullivan	
  訳 鈴木輝一
レオロジーモデル	
1.  線形弾性	
  
2.  非線形弾性	
  
	
  
	
  
3.  粘性	
  
4.  剛完全塑性	
F =η !δ
!δ = 0 F <Y( )
!F = 0 F =Y( )
「粒子個別要素法」 森北出版	
  
著	
  Catherine	
  O’Sullivan	
  訳 鈴木輝一	
F = Kδ
F = f δ( )
F:	
  力	
  
K:	
  バネ剛性	
  
δ:	
  変位	
η:	
  減衰	
  
Y:	
  定数	
  
!δ =
dδ
dt
, !F =
dF
dt
複合レオロジーモデル	
「粒子個別要素法」 森北出版	
  
著	
  Catherine	
  O’Sullivan	
  訳 鈴木輝一	
F = Kδ +η !δ
F:	
  力	
  
K:	
  バネ剛性	
  
δ:	
  変位	
  
η:	
  減衰	
  
!δ =
dδ
dt
, !F =
dF
dt
線形Kelvin(Voigt)モデル	
線形Maxwellモデル	
!δ =
!F
K
+
F
η バネ	
 ダッシュポット
接触力の計算 (evaluatePair)	
rAB = pA − pB
vector	
  r_AB	
  =	
  (pA.posiHon()	
  -­‐	
  pB.posiHon());	
δ =
1
2
dA,Eff + dB,Eff( )− rAB
scalar	
  normalOverlapMag	
  =	
  0.5*(dAEff	
  +	
  dBEff)	
  -­‐	
  r_AB_mag;	
ˆrAB =
rAB
rAB
位置ベクトルrAB	
重なり距離(変位)δ	
方向ベクトル	
vector	
  rHat_AB	
  =	
  r_AB/(r_AB_mag	
  +	
  VSMALL);	
ˆrAB粒子間速度差uAB	
uAB = uA −uB
vector	
  U_AB	
  =	
  pA.U()	
  -­‐	
  pB.U();
接触力の計算 (evaluatePair)	
R =
1
2
dA,Eff dB,Eff
dA,Eff + dB,Eff
scalar	
  R	
  =	
  0.5*dAEff*dBEff/(dAEff	
  +	
  dBEff);	
有効半径R	
有効質量M	
M =
1
2
mAmB
mA + mB
scalar	
  M	
  =	
  pA.mass()*pB.mass()/(pA.mass()	
  +	
  pB.mass());	
法線方向接触剛性KN	
KN =
4
3
RE *
scalar	
  kN	
  =	
  (4.0/3.0)*sqrt(R)*Estar_;	
法線方向粘性係数ηN	
ηN =α MKN δ0.25
scalar	
  etaN	
  =	
  alpha_*sqrt(M*kN)*pow025(normalOverlapMag);
有効Young率	
  (Estar)	
有効Young率(E*)は以下のように定義	
1
E *
=
1−νs1
2
Es1
+
1−νs2
2
Es2
E:	
  Young率	
  
ν:	
  ポアソン比	
  
s1:	
  粒子1	
  
s2:	
  粒子2	
「粒子個別要素法」 森北出版	
  
著	
  Catherine	
  O’Sullivan	
  訳 鈴木輝一	
粒子1と粒子2が同じ物性の場合	
E* =
E
2 1−ν2
( )
	
  Estar_	
  =	
  E/(2.0*(1.0	
  -­‐	
  sqr(nu)));	
PairSpringSliderDashpot.C中で
有効剪断弾性率	
  (Gstar)	
有効剪断弾性率(G*)は以下のように定義	
1
G *
=
2 −νs1
Gs1
+
2 −νs2
Gs2
G:	
  剪断弾性率	
  
ν:	
  ポアソン比	
  
s1:	
  粒子1	
  
s2:	
  粒子2	
「粒子個別要素法」 森北出版	
  
著	
  Catherine	
  O’Sullivan	
  訳 鈴木輝一	
粒子1と粒子2が同じ物性の場合	
G* =
G
2 2 −ν( )
PairSpringSliderDashpot.C中で	
Gstar_	
  =	
  G/(2.0*(2.0	
  -­‐	
  nu))
接触力の計算 (evaluatePair)	
法線方向力FN,AB	
FN,AB = ˆrAB KNδb
−ηNuAB ⋅ ˆrAB( )
	
  vector	
  fN_AB	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rHat_AB	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *(kN*pow(normalOverlapMag,	
  b_)	
  -­‐	
  etaN*(U_AB	
  &	
  rHat_AB));	
F = Kδ +η !δ
線形Kelvin(Voigt)モデル	
バネ	
 ダッシュポット	
uAB ⋅ ˆrAB = !δ
F = Kδb
バネモデルの係数b	
b	
  =	
  1:	
  線形バネ	
  
bが1以外:	
  非線形バネ	
  
(bが3/2でヘルツ型非線形バネ)
重なり面積の計算	
球同士の重なり面積は以下のように定義	
hqp://mathworld.wolfram.com/Sphere-­‐SphereIntersecHon.html	
重なり部の半径a	
a =
1
2rAB
−rAB +rA −rB( ) −rAB −rA +rB( ) −rAB +rA +rB( ) rAB +rA +rB( )"# $%
1
2
a	
重なり部の断面積S	
S = πa2
=
π
4rAB
2
−rAB +rA −rB( ) −rAB −rA +rB( ) −rAB +rA +rB( ) rAB +rA +rB( )"# $%
	
  mathemaHcal::pi/4.0	
  
	
  	
  /sqr(rAB)	
  
*(	
  
	
  	
  	
  	
  	
  (-­‐rAB	
  +	
  rA	
  -­‐	
  rB)	
  
	
  	
  	
  *(-­‐rAB	
  -­‐	
  rA	
  +	
  rB)	
  
	
  	
  	
  *(-­‐rAB	
  +	
  rA	
  +	
  rB)	
  
	
  	
  	
  *(	
  rAB	
  +	
  rA	
  +	
  rB)	
  
	
  	
  );	
overlapArea(scalar	
  rA,	
  scalar	
  rB,	
  scalar	
  rAB)クラス	
S
引張り力の計算	
a	
S	
S	
ˆrAB
if	
  (cohesion_)	
  
	
  	
  	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  fN_AB	
  +=	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐cohesionEnergyDensity_	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *overlapArea(dAEff/2.0,	
  dBEff/2.0,	
  r_AB_mag)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *rHat_AB;	
  
	
  	
  	
  	
  	
  	
  }	
FN,AB = ˆrAB KNδb
−ηNuAB ⋅ ˆrAB( )
−ˆrABES
引張り力は引張りエネルギー密度Eで定義
OpenFOAMでの接触モデル	
法線方向	
Kelvinモデル + 引張り力	
FN,AB = ˆrAB KNδb
−ηNuAB ⋅ ˆrAB − ES( )
接線方向は?	
+ 引張り力
接線方向接触力の計算
(evaluatePair)	
uslip,AB = uAB − uAB ⋅ ˆrAB( ) ˆrAB −ωA ×rA
ˆrAB −ωB ×rB
ˆrAB
vector	
  USlip_AB	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  U_AB	
  -­‐	
  (U_AB	
  &	
  rHat_AB)*rHat_AB	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  +	
  (pA.omega()	
  ^	
  (dAEff/2*-­‐rHat_AB))	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  (pB.omega()	
  ^	
  (dBEff/2*rHat_AB));	
接線方向速度uslip,AB	
接線方向変位ベクトルδT	
δT = uslip,ABΔt
vector	
  deltaTangenHalOverlap_AB	
  =	
  USlip_AB*deltaT;	
接線方向変位|δT|	
δT = uslip,ABΔt
scalar	
  tangenHalOverlapMag	
  =	
  mag(tangenHalOverlap_AB);
接線方向接触力の計算
(evaluatePair)	
KT = 8 RδG*
scalar	
  kT	
  =	
  8.0*sqrt(R*normalOverlapMag)*Gstar_;	
接線方向剛性KT	
接線方向粘性係数ηT	
ηT =ηN =α MKN δ0.25
scalar	
  etaT	
  =	
  etaN;
接線方向接触力の計算
(evaluatePair)	
滑りの判定	
KTδT > µ FN,AB
•  滑りが発生する場合	
 •  滑りが発生しない場合	
KTδT ≤ µ FN,AB
if	
  (kT*tangenHalOverlapMag	
  >	
  mu_*mag(fN_AB))	
 else	
FT,AB = −µ FN,AB
uslip,AB
uslip,AB
= −µ FN,AB τ AB
fT_AB	
  =	
  -­‐mu_*mag(fN_AB)*USlip_AB/mag(USlip_AB);	
FT,AB = −KT δT
δT
δT
−ηTuslip,AB
= −KTδT −ηTuslip,AB
fT_AB	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐kT*tangenHalOverlapMag	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  *tangenHalOverlap_AB/tangenHalOverlapMag	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  etaT*USlip_AB;
接線方向接触力の計算
(evaluatePair)	
滑りの判定	
•  滑りが発生する場合	
 •  滑りが発生しない場合	
FT,AB = −µ FN,AB
uslip,AB
uslip,AB
= −µ FN,AB τ AB
FT,AB = −KT δT
δT
δT
−ηTuslip,AB
= −KT δT τ AB −ηTuslip,AB
F = Kδ +η !δ
バネ	
 ダッシュポット	
線形Kelvin(Voigt)モデル	
τABは接線方向単位ベクトル	
スライダーモデル
OpenFOAMでの接触モデル	
接線方向	
Kelvinモデル	
•  接線方向の力が小
さく、滑らない場合	
•  接線方向の力が大
きく、滑る場合	
スライダーモデル
OpenFOAMでの接触モデル	
壁との衝突は?	
法線方向	
 接線方向	
+ 引張り力
壁との接触力の計算
(evaluateWall)	
rpw = p −w
	
  vector	
  r_PW	
  =	
  p.posiHon()	
  -­‐	
  site;	
位置ベクトルrpw	
粒子-­‐壁間速度差upw	
upw = up −uw
	
  vector	
  U_PW	
  =	
  p.U()	
  -­‐	
  data.wallData();	
δ = Rp,Eff − rpw
重なり距離(変位)δ	
	
  scalar	
  normalOverlapMag	
  =	
  max(pREff	
  -­‐	
  r_PW_mag,	
  0.0);
壁との接触力の計算
(evaluateWall)	
ˆrpw =
rpw
rpw
方向ベクトル	
	
  vector	
  rHat_PW	
  =	
  r_PW/(r_PW_mag	
  +	
  VSMALL);	
ˆrpw
法線方向粘性係数ηN	
ηN =α mKN δ0.25
scalar	
  etaN	
  =	
  alpha_*sqrt(p.mass()*kN)*pow025(normalOverlapMag);
壁との接触力の計算
(evaluateWall)	
法線方向力FN,pw	
FN,pw = ˆrpw KNδb
−ηNupw ⋅ ˆrpw( )
F = Kδ +η !δ
線形Kelvin(Voigt)モデル	
バネ	
 ダッシュポット	
upw ⋅ ˆrpw = !δ
F = Kδb
バネモデルの係数b	
b	
  =	
  1:	
  線形バネ	
  
bが1以外:	
  非線形バネ	
  
(bが3/2でヘルツ型非線形バネ)	
	
  vector	
  fN_PW	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rHat_PW	
  
	
  	
  	
  	
  	
  	
  	
  *(kN*pow(normalOverlapMag,	
  b_)	
  -­‐	
  etaN*(U_PW	
  &	
  rHat_PW));
引張り力の計算	
	
  if	
  (cohesion)	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  fN_PW	
  +=	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐cohesionEnergyDensity_	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *mathemaHcal::pi*(sqr(pREff)	
  -­‐	
  sqr(r_PW_mag))	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *rHat_PW;	
  
	
  	
  	
  	
  }	
引張り力は引張りエネルギー密度Eで定義	
FN,pw = ˆrpw KNδb
−ηNupw ⋅ ˆrpw( )
−ˆrpwE π R2
p,Eff − rpw
2
( )( )
S	
球の断面積S	
S = π R2
p,Eff − rpw
2
( )
S	
ˆrpw
壁との接触モデル	
法線方向	
Kelvinモデル +	
  引張り力	
接線方向は?	
FN,pw = ˆrpw KNδb
−ηNupw ⋅ ˆrpw − E π R2
p,Eff − rpw
2
( )( )!
"
#
$
%
&
+ 引張り力
接線方向接触力の計算
(evaluateWall)	
uslip,pw = upw − upw ⋅ ˆrpw( ) ˆrpw −ωp × Rp,Eff
ˆrpw
	
  vector	
  USlip_PW	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  U_PW	
  -­‐	
  (U_PW	
  &	
  rHat_PW)*rHat_PW	
  
	
  	
  	
  	
  	
  	
  +	
  (p.omega()	
  ^	
  (pREff*-­‐rHat_PW));	
接線方向速度uslip,pw	
接線方向変位ベクトルδT,pw	
δT,pw = uslip,pwΔt
tangenHalOverlap_PW	
  +=	
  USlip_PW*deltaT;	
接線方向変位|δT,pw|	
δT,pw = uslip,pwΔt
scalar	
  tangenHalOverlapMag	
  =	
  mag(tangenHalOverlap_PW);
KT = 8 Rp,Eff δG*
scalar	
  kT	
  =	
  8.0*sqrt(pREff*normalOverlapMag)*Gstar_;	
接線方向剛性KT	
接線方向粘性係数ηT	
ηT =ηN =α MKN δ0.25
scalar	
  etaT	
  =	
  etaN;	
接線方向接触力の計算
(evaluateWall)
滑りの判定	
KTδT,pw > µ FN,pw
•  滑りが発生する場合	
 •  滑りが発生しない場合	
KTδT,pw ≤ µ FN,pw
if	
  (kT*tangenHalOverlapMag	
  >	
  mu_*mag(fN_PW))	
 else	
FT,pw = −µ FN,pw
uslip,pw
uslip,pw
= −µ FN,pw τ pw
fT_PW	
  =	
  -­‐mu_*mag(fN_PW)*USlip_PW/mag(USlip_PW);	
FT,pw = −KT δT,pw
δT,pw
δT,pw
−ηTuslip,pw
= −KTδT,pw −ηTuslip,pw
fT_PW	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐kT*tangenHalOverlapMag	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  *tangenHalOverlap_PW/tangenHalOverlapMag	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  etaT*USlip_PW;	
  
接線方向接触力の計算
(evaluateWall)
滑りの判定	
•  滑りが発生する場合	
 •  滑りが発生しない場合	
FT,pw = −µ FN,pw
uslip,pw
uslip,pw
= −µ FN,pw τ pw
FT,pw = −KT δT,pw
δT,pw
δT,pw
−ηTuslip,pw
= −KTδT,pw −ηTuslip,pw
接線方向接触力の計算
(evaluateWall)	
F = Kδ +η !δ
バネ	
 ダッシュポット	
線形Kelvin(Voigt)モデル	
τpwは接線方向単位ベクトル	
スライダーモデル
壁との接触モデル	
接線方向	
Kelvinモデル	
  +	
  スライダー
OpenFOAMでの接触モデル	
法線方向	
 接線方向	
+ 引張り力	
壁-­‐粒子間、粒子-­‐粒子間どちらでも変わらず	
  
衝突時の時間刻み決定方法
(controlsTimeStep,	
  nSubCycles)	
bool	
  Foam::WallSpringSliderDashpot<CloudType>::controlsTimestep()	
  const	
  
{	
  
	
  	
  	
  	
  return	
  true;	
  
}	
WallSpringSliderDashpot.C中	
controlTimestepメンバでは時間刻みコントロールするかどうかを決めるのみ
最小、最大値の検索方法
(findMinMaxProper?es)	
WallSpringSliderDashpot.C中	
  
findMinMaxProperHesクラス内	
scalar	
  dEff	
  =	
  p.d();	
  
...	
  
	
  RMin	
  =	
  min(dEff,	
  RMin);	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  rhoMax	
  =	
  max(p.rho(),	
  rhoMax);	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  UMagMax	
  =	
  max	
  
	
  	
  	
  	
  	
  	
  	
  	
  (	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mag(p.U())	
  +	
  mag(p.omega())*dEff/2,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  UMagMax	
  
	
  	
  	
  	
  	
  	
  	
  	
  );	
  
...	
  
	
  RMin	
  /=	
  4.0;	
  
	
  UMagMax	
  =	
  2*UMagMax;	
1
Rmin
=
1
r1
+
1
r2
粒子間最小有効粒子半径Rmin	
最大粒子速度Umag,max	
U max
= 2 U + ω ⋅ r( )max
半径が同じで最小の場合	
1
Rmin
=
2
rmin
=
4
dmin
Rmin =
dmin
4
衝突時の時間刻み決定方法
(controlsTimeStep,	
  nSubCycles)	
Foam::label	
  Foam::WallSpringSliderDashpot<CloudType>::nSubCycles()	
  const	
  
{	
  
...	
  
scalar	
  minCollisionDeltaT	
  =	
  
	
  	
  	
  	
  	
  	
  	
  	
  5.429675	
  
	
  	
  	
  	
  	
  	
  	
  *rMin	
  
	
  	
  	
  	
  	
  	
  	
  *pow(rhoMax/(Estar_*sqrt(UMagMax)	
  +	
  VSMALL),	
  0.4)	
  
	
  	
  	
  	
  	
  	
  	
  /collisionResoluHonSteps_;	
  
	
  
	
  	
  	
  	
  return	
  ceil(this-­‐>owner().Hme().deltaTValue()/minCollisionDeltaT);	
  
}	
  
WallSpringSliderDashpot.C中	
Δtmin =
π
7
5 5
4
!
"
#
$
%
&
2
5
Rmin
ρmax
E*
Umax
!
"
#
#
$
%
&
&
0.4
nstep
=
πRmin
5πρmin
4E*
Umax
!
"
##
$
%
&&
2
5
nstep
nsubCycle =
Δt
Δtmin
まとめ	
•  OpenFOAMでのDEM計算での衝突モデルを
解読した。	
  
•  バネ・ダッシュポット・スライダーが衝突モデ
ルとして使用されていることがわかった。	
  
	
  
•  もし、変な点・誤っている点があれば、連絡く
ださい。
References	
•  「C++の絵本」 (株)アンク 翔泳社	
  
•  「粒子個別要素法」 森北出版 著 Catherine	
  
O’Sullivan	
  訳 鈴木輝一	
  
•  hqp://mathworld.wolfram.com/Sphere-­‐
SphereIntersecHon.html

More Related Content

What's hot

OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』Fumiya Nozaki
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMFumiya Nozaki
 
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!Fumiya Nozaki
 
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』Fumiya Nozaki
 
OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差takuyayamamoto1800
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-Fumiya Nozaki
 
OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算takuyayamamoto1800
 
OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門takuyayamamoto1800
 
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析takuyayamamoto1800
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてFumiya Nozaki
 
OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数Fumiya Nozaki
 
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜Daisuke Matsubara
 
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)takuyayamamoto1800
 
PreCICE CHT with OpenFOAM and CalculiX
PreCICE CHT with OpenFOAM and CalculiXPreCICE CHT with OpenFOAM and CalculiX
PreCICE CHT with OpenFOAM and CalculiX守淑 田村
 
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法takuyayamamoto1800
 
FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX) FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX) 守淑 田村
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズmmer547
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化takuyayamamoto1800
 
Motor bike by cfmesh
Motor bike by cfmeshMotor bike by cfmesh
Motor bike by cfmeshEtsuji Nomura
 

What's hot (20)

OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAM
 
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!
 
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
 
OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
 
OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算
 
OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門
 
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
 
OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数
 
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜
桜の花の落ちるスピードは秒速5センチメートルか? 〜OpenFOAM編〜
 
interFoamの検証
interFoamの検証interFoamの検証
interFoamの検証
 
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
 
PreCICE CHT with OpenFOAM and CalculiX
PreCICE CHT with OpenFOAM and CalculiXPreCICE CHT with OpenFOAM and CalculiX
PreCICE CHT with OpenFOAM and CalculiX
 
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法
 
FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX) FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX)
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化
 
Motor bike by cfmesh
Motor bike by cfmeshMotor bike by cfmesh
Motor bike by cfmesh
 

Similar to OpenFOAMにおけるDEM計算の衝突モデルの解読

20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogrammingMasanori Kado
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義JPCERT Coordination Center
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4AdvancedTechNight
 
安全なプログラムの作り方
安全なプログラムの作り方安全なプログラムの作り方
安全なプログラムの作り方Kazuhiro Nishiyama
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについてSuguru ARAKAWA
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」yoshiaki iwanaga
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりVue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりYuta Ohashi
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義JPCERT Coordination Center
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma次世代DaoフレームワークDoma
次世代DaoフレームワークDomaToshihiro Nakamura
 
世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということYukei Wachi
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介Shintaro Hosoai
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 

Similar to OpenFOAMにおけるDEM計算の衝突モデルの解読 (20)

20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogramming
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
安全なプログラムの作り方
安全なプログラムの作り方安全なプログラムの作り方
安全なプログラムの作り方
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについて
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
 
Dakota+openFoam1
Dakota+openFoam1Dakota+openFoam1
Dakota+openFoam1
 
Molecule入門
Molecule入門Molecule入門
Molecule入門
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりVue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
 
Spock's world
Spock's worldSpock's world
Spock's world
 
はじめてのPowerShell
はじめてのPowerShellはじめてのPowerShell
はじめてのPowerShell
 
20180123 power shell
20180123 power shell20180123 power shell
20180123 power shell
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma次世代DaoフレームワークDoma
次世代DaoフレームワークDoma
 
世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 

More from takuyayamamoto1800

OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索takuyayamamoto1800
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumtakuyayamamoto1800
 
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smallOpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smalltakuyayamamoto1800
 
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...takuyayamamoto1800
 
How to get contour surface position by openfoam
How to get contour surface position by openfoamHow to get contour surface position by openfoam
How to get contour surface position by openfoamtakuyayamamoto1800
 
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMEstimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMtakuyayamamoto1800
 
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するParaviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するtakuyayamamoto1800
 
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価takuyayamamoto1800
 
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)takuyayamamoto1800
 

More from takuyayamamoto1800 (9)

OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
 
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smallOpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow small
 
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
 
How to get contour surface position by openfoam
How to get contour surface position by openfoamHow to get contour surface position by openfoam
How to get contour surface position by openfoam
 
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMEstimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAM
 
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するParaviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力する
 
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価
 
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

OpenFOAMにおけるDEM計算の衝突モデルの解読