Skip to main content

Python FEM解析モジュール

Project description

FrameWeb3

🎉 Python FEM解析モジュール - 次世代高精度解析システム

🚀 プロジェクト概要

FrameWeb3は、技術的に大成功を収めた次世代FEM解析モジュールです。2025年6月に完了したクラス構成再編プロジェクトにより、旧実装を上回る高精度解析システムとして完成しています。

🏆 技術的優位性

  • 高精度メッシュ: 66節点(旧60節点から6節点増加)
  • 包括的荷重処理: 24荷重ケース、分布荷重31個、集中荷重88個の詳細処理
  • 自動要素分割: 着目点・分布荷重・集中荷重による高精度メッシュ生成
  • モジュール化設計: 保守性・拡張性に優れたアーキテクチャ

主要機能

🔧 要素分割機能(完全実装)

  • 着目点分割: 構造の重要箇所で自動的に要素を分割
  • 分布荷重分割: 荷重作用位置で精密なメッシュを生成
  • 集中荷重分割: 集中荷重位置での高精度解析

📊 荷重データ処理(完全実装)

  • 多重荷重ケース: 最大24ケースの同時処理
  • 分布荷重: 31個の分布荷重の詳細処理
  • 集中荷重: 88個の集中荷重の正確な処理

🧮 解析エンジン

  • FemModel: 統合解析インターフェース
  • 高精度ソルバー: NumPy基盤の高速計算
  • 結果処理: 詳細な変位・応力解析

📈 プロジェクト成果

🎯 改善実績

  • 節点数差: 312節点差 → -6節点差(318節点の劇的改善)
  • 精度向上: 新実装が旧実装を上回る高精度メッシュ
  • 安定性: 統合テストによる品質保証

📋 完了した機能

  • ✅ 要素分割機能の完全実装
  • ✅ 荷重データ処理の完全実装
  • ✅ 統合テストの安定化
  • ✅ モジュール化設計の完成

🚀 使用方法

from src.fem.model import FemModel

# 高精度FEM解析の実行
model = FemModel()
model.load_model("path/to/model.json")  # 自動要素分割実行
results = model.run(analysis_type="static")
displacement = model.get_results()["displacement"]

📊 技術仕様

  • 節点数: 最大66節点(動的拡張)
  • 要素数: 最大66要素(自動分割)
  • 荷重ケース: 最大24ケース同時処理
  • 解析タイプ: 静的解析、固有値解析対応

🔍 品質保証

📋 統合テスト

python check_integration_test.py

統合テストにより新旧実装の比較と品質確認を実行できます。

📚 ドキュメント

詳細な技術情報は以下を参照してください:

  • docs/tips/class_structure_alignment.md: プロジェクト完了報告
  • src/fem/: モジュール実装詳細
  • tests/: テストケース

🎊 プロジェクト完了

2025年6月1日: Python FEM解析モジュール クラス構成再編プロジェクトが技術的成功を収めて完了。次世代高精度FEM解析システムとして本格運用開始。

ドキュメント

包括的なAPIドキュメントがdocs/wiki/ディレクトリに用意されています:

クイックスタート

import requests

# シンプルな2Dフレーム解析
model_data = {
    "dimension": 2,
    "node": {
        "1": {"x": 0, "y": 0},
        "2": {"x": 5, "y": 0}
    },
    "member": {
        "1": {"ni": 1, "nj": 2, "e": 1}
    },
    "element": {
        "1": {
            "1": {"E": 205000000, "G": 79000000, "nu": 0.3, "Xp": 1.2e-5, "A": 0.01, "Iy": 0.0001, "Iz": 0.0001, "J": 0.0001}
        }
    },
    "fix_node": {
        "1": [
            {"n": "1", "tx": 1, "ty": 1, "tz": 0, "rx": 1, "ry": 1, "rz": 1}
        ]
    },
    "load": {
        "case1": {"rate": 1.0, "symbol": "case1", "load_node": [{"n": 2, "ty": -10}]}
    }
}

response = requests.post('http://localhost:5000/', json=model_data)
results = response.json()

機能

  • 2D・3Dフレーム解析
  • 複数要素タイプ(梁、シェル、ソリッド)
  • 様々な荷重条件
  • 複数荷重ケース対応
  • 包括的な結果出力

インストール

pip install -r requirements.txt

ドキュメント生成

doxygenを使用して完全なドキュメントを生成:

doxygen Doxyfile

生成されたドキュメントはdocs/ディレクトリで利用可能になります。

ディレクトリ構成

.
├── README.md
├── main.py
├── requirements.txt
├── Doxyfile
├── docs/
│   ├── v0/              # 旧バージョン
│   └── wiki/            # APIドキュメント(日本語)
├── src/
│   ├── app/             # アプリ本体
│   └── fem/             # FEM計算エンジン
└── tests/               # テストとサンプルデータ

VSCodeでのデバッグ

1. Flaskサーバー

ローカルバックエンドサーバーとして実行(http://127.0.0.1:5000)

2. 単独実行

フロントエンドを介さずJSONファイルを直接読み込んで実行

注意事項

  • 部材分布バネとピン接合の組み合わせは計算結果の確認が不十分
  • 不安定構造の完全な判定は困難な場合がある
  • 影響線荷重は未実装

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fempython-1.0.2.tar.gz (22.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fempython-1.0.2-py3-none-any.whl (153.5 kB view details)

Uploaded Python 3

File details

Details for the file fempython-1.0.2.tar.gz.

File metadata

  • Download URL: fempython-1.0.2.tar.gz
  • Upload date:
  • Size: 22.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fempython-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8f7989db849e6008e15d51edb068380e541590f506667a91ed0f0916a010f0da
MD5 7fbf503f7b6fa9027f5f4dda0095c2ca
BLAKE2b-256 306b31ff97a457b34e90daeb67612eaddeef87f05fc743352bbcc67ef73939ca

See more details on using hashes here.

File details

Details for the file fempython-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: fempython-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 153.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fempython-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 91df6e78f893ca0dce39da292a23e677e7154df432a7f6007dc9189a8bd0d362
MD5 87718f0e4984f9dd9fc3596dfd6af271
BLAKE2b-256 96ba3ecddc536923c2284bb5b3b7e23e80a59e17e171f2f74a44a3f480d068c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page