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/ディレクトリに用意されています:
- 概要 - ドキュメント全体の概要
- はじめに - クイックスタートガイドと基本概念
- APIリファレンス - 詳細なエンドポイントドキュメント
- データ構造 - 完全な入出力形式リファレンス
- 使用例 - コード付きの実用的な使用例
- エラーハンドリング - 包括的なエラーリファレンス
- 解析ワークフロー - 内部処理ワークフロー
- クイックリファレンス - よく使用するパターン集
クイックスタート
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f7989db849e6008e15d51edb068380e541590f506667a91ed0f0916a010f0da
|
|
| MD5 |
7fbf503f7b6fa9027f5f4dda0095c2ca
|
|
| BLAKE2b-256 |
306b31ff97a457b34e90daeb67612eaddeef87f05fc743352bbcc67ef73939ca
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91df6e78f893ca0dce39da292a23e677e7154df432a7f6007dc9189a8bd0d362
|
|
| MD5 |
87718f0e4984f9dd9fc3596dfd6af271
|
|
| BLAKE2b-256 |
96ba3ecddc536923c2284bb5b3b7e23e80a59e17e171f2f74a44a3f480d068c7
|