形状の最適化について挑戦してみました。
元ねたはこちら。
今のCode Aster13.6で計算できるようにしてみました。
主な変更点は次のとおり
- Numericは使わないから削除
import numpy as N #import numeric as N import math
- 1次要素を追加するところ
meshを読み込んだ後、節点GROUPの’TOUT’を追加します。
msh[0]=DEFI_GROUP(reuse =msh[0], MAILLAGE=msh[0], CREA_GROUP_NO=_F(GROUP_MA='model',NOM='TOUT',) ,);
そして、1次要素を追加します。
nmh[i]=CREA_MAILLAGE(MAILLAGE=msh[0],
CREA_POI1=_F(NOM_GROUP_MA='spElmt',
GROUP_NO='TOUT',),);
- 新しいmeshをつくるところ
msh[i]⇒msh[i+1]ではなく、msh[0]の計算対象のmesh groupを更新しています。
msh[0]=DEFI_GROUP(reuse =msh[0],
MAILLAGE=msh[0],
DETR_GROUP_MA=_F(NOM='model',),
DETR_GROUP_NO=_F(NOM='TOUT',),
CREA_GROUP_MA=_F(NOM='model',MAILLE=NewModel,),
CREA_GROUP_NO=_F(GROUP_MA='model',NOM='TOUT',) ,);
ASTKです。

1回目。

10回目

20回目

30回目

34回目(最終)

応力が低い部分が除かれていました。
使用したデータはOptiastkv13-6 です。
コメント