繊維配向テンソルと繊維配向ベクトル

altair_fukuoka
altair_fukuoka
Altair Employee
edited July 2021 in 質問と回答 (Q&A)
  • 繊維配向テンソルとベクトルの違い
  • ベクトルからテンソルに戻せるのかどうか

 

といった話をしていきます。

 

 

Answers

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited October 2018

    まず、Multiscale Designer が扱える繊維配向テンソルって何という話をします。

     

    繊維配向テンソルは、繊維の主な3つの配向方向と、それらに配向している繊維の割合がテンソルで示されています。テンソルの3つの固有ベクトルが、主となる配向方向で、3つの固有値がそれぞれの繊維の割合です。応力テンソルに対する主応力の方向と大きさと同じ関係です。

     

    例えば 下のテンソルの固有ベクトル v1, v2, v3 と固有値 g1, g2, g3 は

       |0.7 0   0  | A=|0   0.2 0  |   |0   0   0.1|
        |1|     |0|     |0| v1=|0|, v2=|1|, v3=|0|    |0|     |0|     |1|

    g1=0.7, g2=0.2, g3=0.1 となります。これらは存在確率の強さを示します。固有ベクトルを連続的につなぐような形で、固有値を使って確立密度関数 (PDF) と言うのを作って、連続的に分布させます。

    2019-02-20_9-58-56.png.e6d0cc527302dee1ad2d226242015096.png

     

    決して

     |0.7| |0.2| |0.1|

    の方向に繊維が向いているという意味ではありません(私も最初勘違いしてました)。


     

    このように、向きと割合という2つの情報を持てるのが繊維配向テンソルということになります。

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited October 2018

    では、繊維配向ベクトルは何でしょう。繊維配向ベクトルには向きの概念のみあります。

     |0.5| |0.5| |0  |

    と言ったら、XY  平面で X を 0 度と考えれば 45 度に繊維が向いているという意味になります。割合という概念はありません。

     

    テンソルが 6 成分で、ベクトルが 3 成分ですので、割合という情報の欠落は仕方ないところでしょう。

     

    ベクトルはテンソルが持つ情報を持たないので、これはもう数学的に等価なテンソルに戻すすべはありません。しかし、等価ではなくとも、足りない3成分を利用者側が何かを仮定して補えば、何か似た感じのテンソルにはできるということです。

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited October 2018

    繊維配向ベクトルを繊維配向テンソルに復元するアイデアその1です。

     

    繊維配向ベクトルをそのまま X, Y, Z 方向に向いている繊維の割合と受け止めてしまうことです。たとえばベクトルが

     |0.5| |0.5| |0  |

    なら、テンソルを

       |0.5 0   0  | A=|0   0.5 0  |   |0   0   0  |

    としてしまうことです。つまり 45度方向を向いていると解釈するのではなく、0 度と 90度が半分ずつあると解釈したわけです。

     

    これは一見うまく行きそうで、とても簡単な方法ですが、ひとつ困ったことがあり、45度と -45度を区別できません。例えば、-45度のベクトル

     | 0.5| |-0.5| | 0  |

    に対しても、確率がマイナスなんてことはないので、全く同じ A をつくることになってしまいます。結果 45度と -45度で、同じ物性が与えられることになります。ものすごくあっちこっちの向きに繊維がちらばっているような製品には、これで十分かもしれません。簡単さの代わりに、情報をあきらめるということです。

     

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited October 2020

    繊維配向ベクトルを繊維配向テンソルに復元するアイデアその2です。

     

    繊維配向ベクトルの向きに繊維が 100% あり、その他の方向には、0% である、と解釈する方法です。面倒くさいですが、アイデア1の 45, -45度の違いも区別できます。順番に説明しましょう。

     

    繊維配向ベクトルを v1 としたら、v1 に直交する v2, v3 を何とか見繕ってください。この3つが繊維配向テンソルの固有ベクトルということになります。そしたら繊維配向ベクトル行列を V=[ v1 v2 v3] と書いておきます。繊維配向テンソルの固有値が割合ですので、固有値は、1 0 0 と考えてしまいます。v2, v3 の方向には存在しないということですね。こちらも行列形式で次のように書いておきます。

       |1 0 0| G=|0 0 0|   |0 0 0|

     

    そうするとあら不思議 A=V G VT  (T は転置行列、縦横入れ替えたもの)と言う形で、繊維配向テンソル A が逆算できてしまうんです。その考え方で私が書いてみた Compose の変換スクリプトはこちらです。

    https://community.altair.com/community?id=community_question&sys_id=315608f61b2bd0908017dc61ec4bcb05

     

     

     

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited October 2018

    ベクトルがテンソルに対して 3 成分の情報がないということは、逆に言えば、その部分を好きに解釈して、復元できるということです。ですので皆さんのアイデア、実装があればぜひ、投稿してください。

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited December 2018

    今度は、HyperMesh で行った繊維配向テンソルのマッピングの結果を可視化する方法です。MultiScale Designer 全く関係なくて、HyperMesh と HyperView の作業になります。

     

    マッピング自体は下の例題を参考に行ってください。これはマッピングが終わってからの説明です。

    http://丈犖.跳.jp

     

    マッピングが終わると、このように、テンソルの書かれたテーブルが出てます。これを HyperView でテンソル演算して、主方向を描かせると良さそうです。

    image.png.606ce221f45f7398077975992806bab3.png

     

    HyperMesh の Tables (表ですね) は Matrix Browser で扱えるので、Matrix Browser を立ち上げて、作業しましょう

    image.png.261b062ee6df2fb3415fcadcfd3326fb.png

     

    image.png.f3e87c65b462e8e80c2018f632864140.png

     

    これで HyperView で読めるデータを作れます。

    image.png.97a65fd765e9afffb8db1816ff9ffe64.png

     

    image.png.f88b2625c2b82be56e2e677e2335e9d9.png

     

    image.png.e722ec25d9c1e79a5864aaf24a3f2196.png

     

    もう一息です。HyperView で可視化しましょう。

    2018-12-25_13-25-17.png.055c74e7f0f184847cfc2b24b4c164e5.png

     

    実は、テンソルではなくて、6個のばらばらなスカラーとして読み込まれてるので、テンソルとして扱わせます。

    image.png.562534cc648dea769a75b680c6d0cfbe.png

     

    image.png.7eb54e3ce4ceab7d898143e20332188b.png

     

    image.png.5c24a322851dd0fea8e1c0e5c8fc992c.png

     

     

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited July 2021

    まず、Multiscale Designer が扱える繊維配向テンソルって何という話をします。

     

    繊維配向テンソルは、繊維の主な3つの配向方向と、それらに配向している繊維の割合がテンソルで示されています。テンソルの3つの固有ベクトルが、主となる配向方向で、3つの固有値がそれぞれの繊維の割合です。応力テンソルに対する主応力の方向と大きさと同じ関係です。

     

    例えば 下のテンソルの固有ベクトル v1, v2, v3 と固有値 g1, g2, g3 は

       |0.7 0   0  | A=|0   0.2 0  |   |0   0   0.1|
        |1|     |0|     |0| v1=|0|, v2=|1|, v3=|0|    |0|     |0|     |1|

    g1=0.7, g2=0.2, g3=0.1 となります。これらは存在確率の強さを示します。固有ベクトルを連続的につなぐような形で、固有値を使って確立密度関数 (PDF) と言うのを作って、連続的に分布させます。

    2019-02-20_9-58-56.png.e6d0cc527302dee1ad2d226242015096.png

     

    決して

     |0.7| |0.2| |0.1|

    の方向に繊維が向いているという意味ではありません(私も最初勘違いしてました)。


     

    このように、向きと割合という2つの情報を持てるのが繊維配向テンソルということになります。

    式の文字ずれがどうにも直せないため、こちらに書き直しました。

    https://community.altair.com/community?id=community_question&sys_id=517af8acdbe1f410e8863978f496192d