🎃

plantFEM/sim/SeedClass.f90

に公開

Seed_クラス ドキュメント(自動生成につき要修正)

概要

Seed_クラスは植物の種子をシミュレーションするための基本的なデータ構造を提供します。このクラスは種子の形状、物理的特性、水分吸収特性、およびシミュレーションに必要な様々なパラメータを管理します。

依存モジュール

  • iso_fortran_env (intrinsic): Fortran環境変数へのアクセスを提供
  • MathClass: 数学的操作のためのユーティリティ
  • RandomClass: 乱数生成機能
  • LsystemClass: L-systemによる成長モデリング
  • FEMDomainClass: 有限要素法ドメイン管理
  • sim: シミュレーション関連の機能

プロパティ

ドメイン関連

プロパティ 説明
FEMDomain FEMDomain_ 有限要素法ドメイン (legacy)
seedDomain WaterAbsorption_ 種子の水分吸収ドメイン
water FEMDomain_ 水分に関するFEMドメイン
tissue FEMDomain_ 組織に関するFEMドメイン

材料特性

プロパティ 説明
Permiability MaterialProp_ 透過性
YoungsModulus MaterialProp_ ヤング率
PoissonRatio MaterialProp_ ポアソン比
density MaterialProp_ 密度
Cohesion MaterialProp_ 粘着力
phi MaterialProp_ 内部摩擦角
psi MaterialProp_ ダイレイタンシー角
a_Psi MaterialProp_ 水分ポテンシャルに関するパラメータ
a_P MaterialProp_ 圧力に関するパラメータ
theta_eq MaterialProp_ 平衡含水率
Psi_eq MaterialProp_ 平衡水分ポテンシャル
a_E MaterialProp_ ヤング率に関するパラメータ
a_v MaterialProp_ ポアソン比に関するパラメータ
E_eq MaterialProp_ 平衡ヤング率
v_eq MaterialProp_ 平衡ポアソン比

境界条件

プロパティ 説明
disp_x Boundary_ x方向変位境界条件
disp_y Boundary_ y方向変位境界条件
disp_z Boundary_ z方向変位境界条件
traction_x Boundary_ x方向牽引力境界条件
traction_y Boundary_ y方向牽引力境界条件
traction_z Boundary_ z方向牽引力境界条件
flux Boundary_ 流束境界条件
const Boundary_ 定数境界条件

種子特性

プロパティ デフォルト値 説明
num_of_seed integer(int32) 1 種子の数
mass real(real64) 0.0d0 種子の質量 (g/cm^3)
water_content real(real64) 0.0d0 種子の含水率 (%)
radius real(real64) 0.0d0 種子の半径 (cm)
width1 real(real64) 0.00d0 種子の幅1
width2 real(real64) 0.00d0 種子の幅2
width3 real(real64) 0.0d0 種子の幅3
width1_origin real(real64) 0.00d0 種子の初期幅1
width2_origin real(real64) 0.00d0 種子の初期幅2
width3_origin real(real64) 0.0d0 種子の初期幅3
location real(real64)(3) 0.0d0 種子の位置 (x,y,z)
path character(200) " " パス
name character(200) " " 名前

内部プロパティ

プロパティ デフォルト値 説明
step integer(int32) 0 現在のシミュレーションステップ

メソッド

初期化・生成

メソッド 説明
create 種子オブジェクトを作成
init 種子オブジェクトを初期化
import 外部データから種子オブジェクトをインポート
createMesh 種子のメッシュを生成

環境・材料設定

メソッド 説明
env 環境条件を設定
material 材料特性を設定

シミュレーション操作

メソッド 説明
grow 種子の成長をシミュレート
move 種子を移動
rotate 種子を回転

出力・保存

メソッド 説明
export 種子データをエクスポート
save 種子データを保存
open 保存された種子データを開く
flush 一時データをフラッシュ
show 種子データを表示
load 種子データを読み込み
gmsh Gmshフォーマットでデータを出力

測定・変換

メソッド 説明
length 種子の長さを測定
convertMeshType メッシュタイプを変換
result シミュレーション結果を取得

その他

メソッド 説明
remove 種子オブジェクトを削除

使用例

program seed_simulation
    use SeedClass
    implicit none
    
    type(Seed_) :: seed
    
    ! 種子の初期化
    call seed%init()
    
    ! 種子の形状設定
    seed%radius = 0.2d0
    seed%width1 = 0.5d0
    seed%width2 = 0.3d0
    seed%width3 = 0.4d0
    
    ! メッシュ生成
    call seed%createMesh()
    
    ! 材料特性設定
    call seed%material()
    
    ! 環境条件設定
    call seed%env()
    
    ! 成長シミュレーション
    call seed%grow()
    
    ! 結果の出力
    call seed%export()
    
end program seed_simulation

備考

  • このクラスは有限要素法を使用して種子の水分吸収と成長をシミュレートします。
  • 種子の形状は複数のパラメータ(半径、幅など)で定義されます。
  • 材料特性はヤング率、ポアソン比、透過性などの物理的特性を含みます。
  • 水分吸収は専用のWaterAbsorption_オブジェクトを通じて管理されます。

Discussion