シミュ君

一念発起して物理学をゼロから勉強し直すぞ! 応援してください!

シミュ君

一念発起して物理学をゼロから勉強し直すぞ! 応援してください!

最近の記事

【Python】楕円経路に拘束された質点の運動シミュレーション

導出した経路に拘束された質点運動をシミュレーションするための計算アルゴリズムを用いた2つ目の例として楕円経路を取り上げるよ。計算に必要な経路に関する各種ベクトル(経路ベクトル・接線ベクトル・曲率ベクトル)の導出から始めるよ。 楕円経路の経路ベクトル・接線ベクトル・曲率ベクトル 楕円とは2次元平面上において、ある2点からの距離の和が等距離となる点の集合で定義される図形だね。2点をつなぐ直線をx軸、その直線の垂直方向をy軸と定義し、2点の中点を原点と定義するね。この2点は焦点

    • 【粒子法 MPS法】アルゴリズムの改善:DS法 人工斥力導入による安定化

      上記のnoteで解説したGC法に加えて、下記の書籍で詳しく解説してある標準MPSの高精度化に着手しているよ。目次は次のとおりだよ。 書籍:粒子法:連続体・混相流・粒状体のための計算科学 P.83 HS法 ポアソン方程式生成項の高精度化 P.85 HL法 ラプラシアンモデルの高精度化 P.87 ECS法 ポアソン方程式生成項の誤差補償 P.92 GC法 勾配モデルの高精度化 P109 DS法 人工斥力導入による安定化 P118 SPP法 表面粒子の境界条件適正化 P124

      • 【Python】経路からのズレを補正する経路補正力

        数値計算は有限桁しか扱えないので計算誤差が生じてしまうね。その結果、経路に拘束された運動も経路からのズレが生じてしまうね。このズレも以前に解説した補正ばね弾性力と補正粘性抵抗力を導入して補正することができるね。補正ばね弾性係数を$${k_c}$$、補正粘性抵抗係数を$${\beta_c}$$とし、経路からのズレを $$ \bar{\boldsymbol{r}}=\boldsymbol{r}-\boldsymbol{r}_{\rm path} ,   \bar{\boldsy

        • 【Python】円経路に拘束された質点の運動シミュレーション

          前回導出した経路に拘束された質点運動をシミュレーションするための計算アルゴリズムを用いた実際の例として円経路を取り上げるよ。計算に必要な経路に関する各種ベクトル(経路ベクトル・接線ベクトル・曲率ベクトル)の導出から始めるよ。 円経路の経路ベクトル・接線ベクトル・曲率ベクトルそもそも円とは2次元平面上において、ある点からの距離が等距離となる点の集合で定義される図形だね。中心座標$${(x_0, y_0)}$$、半径$${r}$$の円を表す式は以下のとおりだね。 $$ (x-

          経路に束縛された質点運動の計算アルゴリズムの導出

          今回は下図のような、指定した経路に運動が拘束された質点をシミュレーションするためのアルゴリズムの導出を行うよ。粒子を指定した経路に拘束するには、経路による拘束力ベクトル$${\boldsymbol{S}}$$を与える必要があるね。この拘束力は経路の垂直方向のみに働き、仕事をしないね。 時刻$${t}$$の経路に束縛された質点の位置ベクトル$${\boldsymbol{r}(t)}$$は、経路の始点を$${\boldsymbol{r}_0 (t)}$$、始点からの距離$${l

          経路に束縛された質点運動の計算アルゴリズムの導出

          【粒子法 MPS法】HL法について誰か教えてくださーい!

          書籍:粒子法:連続体・混相流・粒状体のための計算科学 P.83 HS法 ポアソン方程式生成項の高精度化 P.85 HL法 ラプラシアンモデルの高精度化 P.87 ECS法 ポアソン方程式生成項の誤差補償 P.92 GC法 勾配モデルの高精度化 P109 DS法 人工斥力導入による安定化 P118 SPP法 表面粒子の境界条件適正化 P124 WPP法 壁面における境界条件適正化 この書籍に基づいて粒子法(MPS法)の高精度化に挑戦しているのだけれども、自分の理解度が低いた

          【粒子法 MPS法】HL法について誰か教えてくださーい!

          【粒子法 MPS法】アルゴリズムの改善:GC法 勾配モデルの高精度化

          上記のnoteで解説したHS法に加えて、下記の書籍で詳しく解説してある標準MPSの高精度化に着手しているよ。目次は次のとおりだよ。 書籍:粒子法:連続体・混相流・粒状体のための計算科学 P.83 HS法 ポアソン方程式生成項の高精度化 P.85 HL法 ラプラシアンモデルの高精度化 P.87 ECS法 ポアソン方程式生成項の誤差補償 P.92 GC法 勾配モデルの高精度化 P109 DS法 人工斥力導入による安定化 P118 SPP法 表面粒子の境界条件適正化 P124

          【粒子法 MPS法】アルゴリズムの改善:GC法 勾配モデルの高精度化

          自重による一軸伸長(ヤング率・ポアソン比依存性)

          前回は弾性体全体に同じ応力が発生する一軸伸長を考えたね。単一の応力で表現することができるってことは、「微小体積=弾性体全体」と考えることができるので、単一の歪テンソルと応力テンソルで変形と応力を計算することができたね。今回は、位置によって応力が変化する例として、弾性体の自重による変形を考えるよ。この変形に対する歪テンソルと応力テンソルは次のとおりだね(ヤング率:$${Y}$$、ポアソン比$${\sigma}$$)。 $$ E=\left(\begin{matrix} - \

          自重による一軸伸長(ヤング率・ポアソン比依存性)

          線形弾性体の応力(ヤング率・ポアソン比)

          応力とは外部からの力に対して弾性体に生じる力だよ。3次元弾性体中の任意の微小体積表面の法線ベクトルを$${\boldsymbol{n}}$$として、応力ベクトル$${\boldsymbol{p}}$$は $$ \boldsymbol{p}= P\,\boldsymbol{n} $$ と表されるよ。$${P}$$は応力テンソルと呼ばれ $$ P=\left( \begin{matrix} P_{xx} &P_{xy} &P_{xz} \cr P_{yx} &P_{yy}

          線形弾性体の応力(ヤング率・ポアソン比)

          変位勾配テンソルによる変形(ツイスト)

          前回は変位勾配テンソルの成分に定数を与えました。テンソルの成分はもちろん位置によって変化する変数でもよいので、今回はz軸周りの回転量をz値によって変化させることで、ツイストを作ってみるね。もともとz軸周りの回転行列は $$ R = \left( \begin{matrix} \cos\theta & \sin\theta & 0 \cr -\sin\theta & \cos\theta & 0 \cr 0 & 0 & 0 \end{matrix} \right) $$ と

          変位勾配テンソルによる変形(ツイスト)

          変位勾配テンソルによる変形(定数)

          これから連続体力学(弾性体力学&流体力学)の勉強を進めていくための準備として、連続体の変位と変形の関係を表す変形勾配テンソルの可視化を3次元グラフィックスで行うよ。変形勾配テンソル($${D}$$)とは、変位$${\delta \boldsymbol{x}}$$に対する変形$${ \delta \boldsymbol{r}}$$ の関係を表すテンソルだよ。 $$ \delta \boldsymbol{r} =\frac{\partial \boldsymbol{r}}{\p

          変位勾配テンソルによる変形(定数)

          【three.js WebGL】3次元グラフの作り方

          前回に開発した2次元カラーマップは2次元平面を構成する格子点に任意の色を設定することで物理量などを可視化することができるね。今回2次元平面の垂直成分を与えることで、3次元的な可視化を行うことができるね。次のアニメーションは前回と同様、次式で与えた値をに対応する描画色と垂直成分を与えているよ。 $$ F(x,y,t) = \sin(\frac{x}{2}+\omega t) \times \sin(\frac{y}{2}+\omega t) $$ 下図のようにワイヤーフレー

          【three.js WebGL】3次元グラフの作り方

          【three.js webGL】2次元カラーマップの作り方

          今日はthree.jsで2次元平面上の各点に任意の色を指定することで、意味のある2次元配色を与えることで何かしらの量を可視化する2次元カラーマップの作り方を解説するよ。今回は下図のようなN✕Nの格子を個の小さな正方形を配置してポリゴンを生成し、(N+1)✕(N+1)個の格子点にそれぞれ任意の色を設定するよ。 下のアニメーションは各点$$(x,y)$$の値を次の式で設定して、1を赤、-1を青となるように各点の描画色を指定した結果だよ。 $$ F(x,y,t) = \sin(

          【three.js webGL】2次元カラーマップの作り方

          任意結合張力による運動:9連結子による角運動量保存運動

          前々回に導出した任意結合張力による運動の例として、重力なしで9個の質点を繋いで角運動量が一定になるように初速度を与えたときの運動をシミュレーションするよ。 Pythonプログラムソース上記のシミュレーションを行うプログラムソースを公開するよ。もしよかったら試してみてください。これからも応援してください。よろしくお願いしまーす! #################################################################TITLE =

          任意結合張力による運動:9連結子による角運動量保存運動

          【Python】任意多重結合振子によるカオス運動

          上記の2重振子運動における張力の計算アルゴリズムは、手動で導出しました。今回は、以前に解説した任意多重結合による運動の計算アルゴリズムに従って、張力に関する連立方程式もPythonで計算できるように改造するね。 計算結果次のアニメーションは固定された支点からつながった三角形型のおもりと、そこからぶら下がる2個のおもり、合計5個のおもりと6本の接続の系だね。接続数が6本だから、張力に関して6本の連立方程式となるのだけれども、 np.linalg.solve関数を用いて数値的に

          【Python】任意多重結合振子によるカオス運動

          【Python】任意多重結合における長さ補正力の導入

          前にも述べたけれども、ルンゲ・クッタ法では誤差が単調増加してしまうので、どんなに誤差設定(相対誤差・絶対誤差)を小さくしても長い経過時間後には計算が破綻してしまうね。そこで、以前にも導入したひもの長さを初期値に戻す補正力を導入するよ。下図は$${i}$$番目と$${j}$$番目のおもりをつなぐひもの補正力を表す模式図だよ。 ひもの長さの初期値を$${ L^{(0)}_{ij}}$$、相対速度ベクトルを$${\bar{\boldsymbol{v}}_{ij}}$$、相対位置ベ

          【Python】任意多重結合における長さ補正力の導入