Programs


ai/add_docstring.py

add_docstring.py は、PythonソースファイルにSphinx形式のDocstringを自動的に追加するためのツールです。このプログラムは、大規模言語モデル(LLM)の能力を活用し、指定されたPythonコードの内容に基づいて適切なDocstringを生成します。生成されたDocstringは、元のコードに組み込まれて新しいファイルとして出力されます。

このツールの主な機能は以下の通りです。

このプログラムは、手作業でのDocstring記述の手間を大幅に削減し、Pythonプロジェクトのドキュメント作成プロセスを効率化することで、コードの可読性とメンテナンス性を向上させることを目的としています。


ai/add_notes_pptx_com.py

add_notes_pptx_com.py は、PowerPointプレゼンテーションファイル(.pptx)の各スライドに、指定されたテキストファイルから読み込んだノート(発表者ノート)を自動的に挿入するPythonスクリプトです。WindowsのCOM(Component Object Model)オートメーション機能を利用してPowerPointアプリケーションを直接操作します。

このプログラムの主な機能は以下の通りです。

このプログラムは、大量のスライドにわたる発表者ノートを手動で追加する手間を省き、プレゼンテーションの準備プロセスを効率化することを目的としています。


ai/add_notes_pptx_lib.py

このプログラム add_notes_pptx_lib.py は、指定されたPowerPointプレゼンテーションファイル(.pptx)内の各スライドに、そのスライドに記述されたスピーカーノート(発表者ノート)の内容を字幕として追加することを目的としています。

主な機能:

解決する課題:

発表者がプレゼンテーション中にスピーカーノートを画面に表示しない場合でも、視聴者がノートの内容を視覚的に参照できるようにすることで、情報共有を促進します。また、アクセシビリティの向上(例:聴覚障がいのある視聴者への情報提供)にも寄与します。


ai/add_notes_pptx.py

add_notes_pptx.py は、Microsoft PowerPoint(.pptx)ファイルを操作するためのPythonスクリプトです。主な目的は、PowerPointスライドのノート情報を活用して、プレゼンテーションの表示内容を強化または自動化することです。

本プログラムは以下の2つの主要な機能モードを提供します。

  1. add モード:
  1. replace モード:

本プログラムは、PowerPointのノート機能をより柔軟に活用したいユーザーや、定型的なプレゼンテーションのテキスト更新作業を自動化したいユーザーの課題を解決します。

Launcher実装
default.log: 9-200-textbook.ini: [add_supertext_pptx_execute]

ai/add_notes_voice_pptx.py

このプログラム add_notes_voice_pptx.py は、PowerPoint (PPTX) ファイルのノート内容を音声ファイルに変換し、その音声ファイルを元のPPTXファイルに自動再生リンクとして埋め込むことを目的としています。特に、Windows環境のPowerPointと連携し、プレゼンテーションのナレーション作成プロセスを自動化します。

主な機能:

  1. PPTXノートまたは外部テキストからのナレーション抽出:
  1. 音声ファイル生成:
  1. PPTXへの音声リンク埋め込みと自動再生設定:
  1. TTSエンジンとボイスの管理:

解決する課題:

PowerPointプレゼンテーションに手動でナレーションを追加する作業は時間と手間がかかります。このプログラムは、テキストベースのノートから自動で音声を生成し、プレゼンテーションに統合することで、このプロセスを大幅に効率化し、一貫性のある音声付きプレゼンテーションの作成を支援します。

Launcher実装
default.log: 9-200-textbook.ini: [add_talk_pptx_execute]
default.log: 9-200-textbook.ini: [add_talk_pptx_list]
default.log: 9-200-textbook.ini: [add_talk_pptx_list_voicevox_voicemap]
default.log: 9-200-textbook.ini: [Button17.textbook]
default.log: 9-200-textbook.ini: add_dialog button dummy "text=list prests" "command=call [add_talk_pptx_list_atp]" (in [Button17.textbook])
default.log: 9-200-textbook.ini: add_dialog button dummy "text=list voices" "command=call [add_talk_pptx_list_pyttsx3]" (in [Button17.textbook])
default.log: 9-200-textbook.ini: add_dialog button dummy "text=list voices" "command=call [add_talk_pptx_list_winrt]" (in [Button17.textbook])
default.log: 9-200-textbook.ini: add_dialog button dummy "text=run VOICEVOX Engine" "command=call [speak_dialogue_voicevox_engine]" (in [Button17.textbook])

ai/ai_ocr2md.py

ai_ocr2md.py は、指定された画像ファイルまたはクリップボード上の画像からテキストを抽出し、その内容をMarkdown形式に整形して出力するAI OCRツールです。ユーザーは、使用するAI API(Geminiがデフォルト)やモデル、プロンプトの内容を細かく設定できます。

主な機能は以下の通りです。

  1. 画像入力: ローカルの画像ファイル (.png, .jpg など) を指定するか、Windowsのクリップボードから直接画像を読み込むことができます。
  2. AI OCR処理: Google Gemini API (デフォルト) を使用して、画像内のテキストを認識し、指定されたプロンプトに基づいてMarkdown形式に整形します。
  3. プロンプトのカスタマイズ: ai_ocr2md.ini ファイルを通じて、OCR処理に渡すプロンプトを自由に設定できます。これにより、出力されるMarkdownの形式や詳細度を制御可能です。
  4. 出力: 処理結果は、指定されたファイル名、または入力ファイル名に基づく自動生成ファイル名でMarkdown形式 (.md) として保存されます。

このプログラムは、紙のドキュメント、スクリーンショット、手書きメモなどの画像データから、編集可能な構造化されたテキストを効率的に生成する課題を解決します。

Launcher実装
default.log: 5-030-Converter.ini: [Button7.Converter]

ai/convert_ocr.py

convert_ocr.py は、画像、PDF、およびOffice文書からテキストを抽出し、Markdown (.md) 形式で出力することに特化したコマンドラインツールです。このプログラムは、OCR (光学文字認識) エンジンとして Tesseract-OCR または Generative AI (Google Geminiなど) を利用できます。

主な機能は以下の通りです。

このツールは、様々な形式のドキュメントから情報を抽出し、編集や再利用が容易なMarkdown形式で集約する作業を効率化するために設計されています。

Launcher実装
default.log: 5-030-Converter.ini: [Button8.Converter]

ai/debug_sphinx_build.py

debug_sphinx_build.py は、Sphinxドキュメントビルド時に発生するPythonモジュールのimportエラーを診断するためのユーティリティスクリプトです。このプログラムの主な目的と機能、および解決する課題は以下の通りです。

Sphinxプロジェクトにおいて、特にautodoc機能を使用する際に、依存するPythonモジュールが環境に存在しないことによるimportエラーが発生することがあります。このスクリプトは、Sphinxビルドプロセスの一部であるモジュールのロードとimport処理をシミュレートし、エラー箇所を特定する手助けをします。

  1. conf.py の優先的なロード: Sphinxのメイン設定ファイルである./source/conf.pyを最初にロードし、その内容を解析します。
  2. autodoc_mock_imports の適用: conf.py内で定義されているautodoc_mock_importsリストを読み取り、指定されたモジュール名をPythonのsys.modulesにダミーモジュールとして登録します。これにより、実際にインストールされていないモジュールがimportされてもエラーにならないようにします。
  3. ソースファイルの再帰的import: sourceディレクトリとそのサブディレクトリ内にあるすべての.pyファイルを再帰的に検索し、動的にimportを試みます。
  4. 特定のファイルのスキップ: conf.py自身は個別に処理するため再帰探索からは除外されます。また、ファイル名が _数字列 で終わるファイル(例: sample_1.py、test_2024.pyなど)は、通常テストファイルなどでありSphinxの対象外となることが多いためスキップします。
  5. エラー処理と継続: 通常、importエラーが発生すると処理を中断しますが、--keep-goingオプションが指定された場合は、エラーを記録しながらすべての対象ファイルを最後まで処理し、最後にエラーのサマリーを表示します。
  6. 手動モック機能: --mockオプションを使用して、conf.pyがロードされる前に、任意のモジュールを手動でダミーモジュールとして登録できます。
  7. sys.path の調整: --add-cwd や --add-source オプションにより、カレントディレクトリやSphinxのソースディレクトリをsys.pathに追加し、importパスを調整できます。

Sphinxドキュメントのビルドが、システムにインストールされていないライブラリのimportエラーで失敗する場合、原因となっているファイルを特定するのが困難な場合があります。このスクリプトは、Sphinxが内部的に行うimport処理を再現することで、どのファイルがどの依存関係で問題を抱えているかを明確にし、開発者がデバッグしやすくします。特に、大規模なプロジェクトで多数のPythonモジュールがある場合に、効率的にimportエラー箇所を特定するのに役立ちます。


ai/explain_program5.py

explain_program5.py は、指定されたプログラムコードを解析し、AI(OpenAIまたはGoogle Gemini)を利用してその技術ドキュメントをMarkdown形式で自動生成するツールです。プログラマーが手動でドキュメントを作成する手間を大幅に削減し、効率的なドキュメント生成を可能にします。

このプログラムの主な機能は以下の通りです。

本プログラムは、特に大規模なプロジェクトにおいて、多数のスクリプトやモジュールのドキュメントを迅速かつ一貫性のある形式で作成する際に役立ちます。

Launcher実装
default.log: 5-021-COE.ini: [make_doc_edit_source]
default.log: 5-021-COE.ini: [make_doc_execute]

ai/get_from_ai.py

get_from_ai.py は、INI形式の設定ファイルからプロンプトを読み込み、指定されたAIサービス(Google Gemini または OpenAI)に対してリクエストを送信し、その応答をファイルに保存するPythonスクリプトです。

主な機能:

解決する課題:

AIサービスとの対話において、プロンプトをコード内にハードコードするのではなく、設定ファイルとして外部化することで、プロンプトの管理と再利用を容易にします。また、AIからの応答を自動的にファイルに保存することで、その後の処理や記録を簡素化します。

Launcher実装
default.log: 9-200-textbook.ini: [Button7.textbook]
default.log: 9-200-textbook.ini: [get_from_ai_execute]
default.log: 9-200-textbook.ini: add_dialog button dummy "text=edit get_from_ai.ini" "command=call [get_from_ai_edit_prompt]" (in [Button7.textbook])

ai/get_gpu_inf.py

get_gpu_inf.py は、システムにNVIDIA製GPUが搭載されており、Pythonの深層学習ライブラリであるPyTorchがCUDAを通じてそのGPUを認識・利用できるかを確認するためのスクリプトです。

主な機能は以下の通りです。

このプログラムは、特に深層学習環境のセットアップ時に、PyTorchがGPUを正しく認識しているかを確認する目的で使用されます。


ai/get_paper_inf5.py

get_paper_inf5.py は、学術論文のPDFファイルからメタデータ(著者名、論文タイトル、ジャーナル名、発行年、DOIなど)を抽出し、その情報をExcelファイルに集約することを目的としたPythonプログラムです。抽出されたメタデータに基づいて、PDFファイルを命名規則に従ってリネームする機能も提供します。

主な機能は以下の通りです。

  1. PDFからのテキスト抽出: 指定されたPDFファイルからテキストコンテンツを抽出します。抽出されるテキストの最大バイト数を制限できます。
  2. 生成AIによるメタデータ抽出: 抽出されたテキストをOpenAIまたはGoogleの生成AI APIに送信し、定義されたプロンプトテンプレートに基づいてJSON形式で論文のメタデータを抽出します。
  3. Excelファイルへの記録: 抽出されたメタデータをExcelファイル (summary.xlsx など) に追記します。各行は1つの論文に対応し、カラムには各種メタデータが含まれます。
  4. ファイルのリネーム: 生成AIが推奨するファイル名(filename_rename)に基づいて、元のPDFファイルをリネームまたはコピーします。元のファイルの削除オプションも提供されます。
  5. 複数ファイルの処理: コマンドラインで指定されたPDFファイル、または指定ディレクトリ内の複数のPDFファイルを再帰的に処理する機能も備えています。
Launcher実装
default.log: 5-026-AI20260128.ini: [Button6.AI]
default.log: 5-026-AI20260128.ini: [paper_inf_edit_py]
default.log: 5-026-AI20260128.ini: [paper_inf_execute]
default.log: 5-026-AI20260128.ini: add_dialog button dummy "text=edit get_paper_inf5.py" "command=call [paper_inf_edit_py]" (in [Button6.AI])
default.log: 9-190-AI.ini: [Button6.AI]
default.log: 9-190-AI.ini: [paper_inf_edit_py]
default.log: 9-190-AI.ini: [paper_inf_execute]
default.log: 9-190-AI.ini: add_dialog button dummy "text=edit get_paper_inf5.py" "command=call [paper_inf_edit_py]" (in [Button6.AI])

ai/guess_speaker.py

guess_speaker.py は、OpenAI の GPT モデルと Function Calling 機能を利用して、文字起こしされた会話テキストを整形し、話者を推測するPythonプログラムです。主に以下の機能を提供します。
  1. テキストの整形: 入力された会話テキスト内の誤字や誤訳を訂正し、読みやすいように文ごとに改行を挿入します。
  2. 話者の推測: 会話の内容から登場する話者を推測し、各発言に推測された話者名を付与します。
  3. 構造化された出力: 整形されたテキストと推測された話者情報を [話者名]: 発言テキスト という形式でファイルに保存します。

このプログラムは、特に半導体・材料科学分野の講義録など、専門的な内容を含む音声認識結果の品質向上と可読性向上を目的としています。

Launcher実装
default.log: 5-026-AI20260128.ini: [transcribe_local_guess_speakers]
default.log: 9-190-AI.ini: [transcribe_local_guess_speakers]

ai/images2md_tags.py

images2md_tags.py は、指定された画像ファイルからサムネイル画像を生成し、それらを埋め込んだMarkdown形式のテキストを標準出力に生成するPythonスクリプトです。このプログラムは、大量の画像をMarkdownドキュメント(例えば、ブログ記事や技術ドキュメント、画像ギャラリーなど)に整理して埋め込むプロセスを自動化することを目的としています。

主な機能は以下の通りです。

これにより、手動でサムネイルを作成し、個々の画像のMarkdownリンクを記述する手間を省き、効率的なドキュメント作成を支援します。


ai/list_models.py

list_models.py は、LiteLLM ライブラリを利用して、OpenAI および Google AI (Gemini) の大規模言語モデル (LLM) に対する操作を支援する Python スクリプトです。このプログラムは主に以下の二つの機能を提供します。
  1. 利用可能モデルの一覧表示: 指定されたプロバイダー (OpenAI、Gemini、または両方) が現在提供している LLM のモデル名を一覧表示します。これにより、どのモデルが利用可能であるかを簡単に確認できます。
  2. モデル応答テスト: 指定された LLM モデルに対して、ユーザーが設定したプロンプトを送信し、その応答をコンソールに表示します。これは、API接続が正しく機能しているか、または特定のモデルが期待通りに応答するかを検証する際に役立ちます。

このプログラムは、APIキーの設定ファイル (ai.env など) または環境変数から API キーを読み込み、それを使用して各プロバイダーのサービスにアクセスします。

Launcher実装
default.log: 5-026-AI20260128.ini: [Button13.AI]

ai/make_sphinx_files.py

make_sphinx_files.py は、指定されたPythonスクリプトを対象として、Sphinx形式の技術ドキュメント(主にMarkdownとreStructuredTextファイル)の自動生成と更新を支援するツールです。このプログラムは、以下の主要な機能を自動化することで、Pythonプロジェクトのドキュメント作成プロセスを効率化します。

このプログラムは、特に大規模なプロジェクトや、頻繁に更新されるコードベースにおいて、ドキュメントの鮮度と整合性を保つための課題を解決します。

Launcher実装
default.log: 9-300-sphinx.ini: [Button4.sphinx]

ai/make_textbook5.py

make_textbook5.py は、AI(OpenAIのGPTシリーズまたはGoogleのGeminiシリーズ)を利用して、講義の文字起こしテキストとMarkdown形式のスライドから、教育用の教科書Markdownと、より洗練されたスライド用Markdownを自動生成するPythonスクリプトです。このプログラムは、AIプロンプトエンジニアリングを駆使し、ユーザーが指定する出力言語、専門分野、役割に基づいて最適なコンテンツを生成します。

主な機能:

解決する課題:

講義内容から教科書や洗練されたスライドを手動で作成する労力を大幅に削減し、教育コンテンツ制作の効率化と品質向上に貢献します。

Launcher実装
default.log: 9-200-textbook.ini: [Button8.textbook]
default.log: 9-200-textbook.ini: [textbook_execute]
default.log: 9-200-textbook.ini: add_dialog button dummy "text=edit make_ytextbook5.ini" "command=call [textbook_edit_prompt]" (in [Button8.textbook])

ai/md2html.py

md2html.py は、LaTeX形式の数式を含むMarkdownファイルを、MathJaxとインラインCSSが埋め込まれたスタンドアロンのHTMLファイルに変換するPythonスクリプトです。このプログラムの主な目的は、技術文書や研究ノートなど、数式を多用するMarkdownコンテンツをウェブブラウザで簡単に閲覧できる形式にすることです。

主な機能は以下の通りです。

このプログラムは、数式を含む技術文書を共有・公開する際に、読者が特別な環境設定なしで内容を閲覧できるHTMLを生成することで、手間を省くことを目指しています。


ai/OCR_image.py

OCR_image.py は、Pythonの pytesseract ライブラリを利用して、指定された画像ファイルから光学文字認識(OCR)を実行し、抽出されたテキストを標準出力に表示するプログラムです。

このプログラムの主な機能は以下の通りです。

  1. 画像からのテキスト抽出: 指定された画像ファイルを開き、Tesseract OCRエンジンを用いて画像内の文字を認識します。
  2. 多言語対応: 日本語(jpn)や英語(eng)など、複数の言語を指定して文字認識を行うことができます。複数の言語を同時に指定することも可能です。
  3. エラーハンドリング: ファイルが見つからない場合や、OCR処理中に何らかのエラーが発生した場合に、適切なメッセージを表示します。
  4. ダミー画像生成(初回実行時): 実行時に指定された画像ファイルが存在しない場合、プログラムが自動的にテスト用のダミー画像(「これはテスト画像です。」「Hello, OCR!」というテキストを含む)を生成し、その画像に対してOCRを実行します。これにより、ユーザーが事前に画像ファイルを用意していなくても、プログラムの動作を確認できます。

このプログラムは、紙媒体のドキュメントをスキャンした画像やスクリーンショットなどから、手軽にテキスト情報をデジタルデータとして抽出したいという課題を解決します。

Launcher実装
default.log: 5-030-Converter.ini: [Button10.Converter]

ai/OCR_pdf.py

OCR_pdf.py は、PDFファイルから光学文字認識(OCR)を実行し、そのテキストコンテンツを抽出するPythonスクリプトです。このプログラムは、スキャンされたPDFやテキストを選択・コピーできない画像ベースのPDFから、検索可能なテキストを効率的に抽出することを目的としています。

主な機能は以下の通りです。

このプログラムは、PDFからテキストデータを取得する必要があるが、既存のテキスト抽出ツールでは対応できない場合に有用です。

Launcher実装
default.log: 5-030-Converter.ini: [Button11.Converter]

ai/pptx2md_with_image.py

pptx2md_with_image.py は、PowerPointプレゼンテーションファイル(.pptx)またはPDFファイルを入力として受け取り、その内容を解析してAIモデルによる詳細な解説レポートを生成するPythonスクリプトです。

主な機能:

  1. コンテンツ抽出:
  1. PDF/画像変換:
  1. AIモデル連携:
  1. Markdownレポート出力:

解決する課題:

このプログラムは、PowerPointスライドの内容を自動的にテキスト化し、特に数式や画像が豊富に含まれる技術的なプレゼンテーションに対して、AIが文脈を理解した上で詳細な解説レポートを生成する手間を大幅に削減します。これにより、ドキュメント作成や学習プロセスを効率化します。

---

Launcher実装
default.log: 9-200-textbook.ini: [pptx2md_with_image_execute]

ai/speak.py

speak.py は、複数のText-to-Speech(TTS)エンジンを統合し、テキストデータから音声を生成・再生、または音声ファイルとして出力するためのコマンドラインインターフェースツールです。主な目的は、スクリプトや対話形式のテキスト(例: YouTube動画の台本、物語の朗読)を、話者ごとに異なる声で効率的に読み上げることです。

このプログラムは以下の機能を提供します。

これにより、ユーザーは用途に応じて最適なTTSエンジンを選択し、キャラクターごとの声を簡単に割り当てて、柔軟な音声コンテンツを生成できます。

Launcher実装
default.log: 5-026-AI20260128.ini: [speak_execute_ai]
default.log: 9-190-AI.ini: [speak_execute_ai]
default.log: 9-200-textbook.ini: [Button16.textbook]
default.log: 9-200-textbook.ini: [Button17.textbook]
default.log: 9-200-textbook.ini: [speak_dialogue_execute_textbook]
default.log: 9-200-textbook.ini: [speak_dialogue_list]
default.log: 9-200-textbook.ini: [speak_dialogue_openai_execute_textbook]
default.log: 9-200-textbook.ini: [speak_dialogue_openai_list]
default.log: 9-200-textbook.ini: [speak_dialogue_voicevox_execute_textbook]
default.log: 9-200-textbook.ini: [speak_dialogue_voicevox_list]
default.log: 9-200-textbook.ini: [speak_dialogue_voicevox_voicemap]
default.log: 9-200-textbook.ini: [speak_dialogue_yukkuri_execute_textbook]
default.log: 9-200-textbook.ini: [speak_dialogue_yukkuri_list]
default.log: 9-200-textbook.ini: [speak_winrt_execute_textbook]
default.log: 9-200-textbook.ini: [speak_winrt_list]
default.log: 9-200-textbook.ini: add_dialog button dummy "text=list presets" "command=call [speak_dialogue_yukkuri_list]" (in [Button16.textbook])
default.log: 9-200-textbook.ini: add_dialog button dummy "text=list voices" "command=call [speak_dialogue_list]" (in [Button16.textbook])
default.log: 9-200-textbook.ini: add_dialog button dummy "text=run VOICEVOX Engine" "command=call [speak_dialogue_voicevox_engine]" (in [Button16.textbook])

ai/tktts_aquestalkplayer.py

tktts_aquestalkplayer.py は、外部の音声合成ソフトウェアであるAquesTalkPlayerと連携し、指定されたテキストを音声ファイルとして出力するためのPythonライブラリです。

主な機能:

解決する課題:

このライブラリは、PythonアプリケーションからAquesTalkPlayerの音声合成機能を容易に利用できるようにすることを目的としています。特に、複数話者の対話文をそれぞれの話者に割り当てられたボイスで音声化するプロセスを効率的に自動化し、音声合成処理をPythonプログラムに統合することを可能にします。


ai/tktts_openai.py

tktts_openai.py ライブラリは、OpenAIが提供するテキスト読み上げ(Text-to-Speech; TTS)APIをPythonプログラムから簡単に利用するためのインターフェースを提供します。主な目的は、テキストデータを自然な音声に変換し、ファイルとして保存することです。

主な機能:

解決する課題:


ai/tktts_pyttsx3.py

tktts_pyttsx3.py は、Pythonの音声合成ライブラリ pyttsx3 を利用して、テキストを音声に変換・再生、または音声ファイルとして保存するための機能を提供するライブラリです。特に、複数の話者による対話形式のテキストを効率的に処理し、それぞれの話者に割り当てられた音声で出力する機能に重点を置いています。

主な目的は以下の通りです。

このライブラリは、複雑な音声合成設定を隠蔽し、開発者がテキストから音声への変換をより直感的かつ柔軟に行えるようにすることで、アプリケーション開発の効率化を支援します。


ai/tktts.py

tktts.py は、複数のテキスト読み上げ (Text-to-Speech, TTS) エンジンを統合し、統一されたインターフェースで利用可能にするPythonライブラリです。ユーザーは、ファイルやクリップボードからのテキスト読み込み、話者ごとの音声の割り当て、生成された音声の結合、そして再生またはファイル保存を簡単に行うことができます。

このライブラリの主な目的は以下の通りです。

tktts.py は、例えば物語の朗読、プレゼンテーションのナレーション、対話シミュレーションなど、テキストを音声に変換して利用する幅広いユースケースで、開発の時間と労力を削減することを目指しています。


ai/tktts_voicevox.py

tktts_voicevox.py は、PythonアプリケーションからVOICEVOXエンジンを介してテキストを音声合成するためのライブラリです。VOICEVOX REST APIと連携し、テキストを音声ファイル(WAV形式)として出力する機能を提供します。

主な目的と機能は以下の通りです。

本ライブラリは、VOICEVOXをバックエンドとするテキスト音声合成機能を、他のPythonプログラムに組み込むことを目的としています。


ai/tktts_winrt.py

tktts_winrt.pyは、tkttsライブラリのバックエンドとして設計されたPythonモジュールです。特にWindows環境での音声合成に特化しており、Windows.Media.SpeechSynthesis機能をPythonのwinsdkパッケージを介して利用します。

このライブラリの主な目的と機能は以下の通りです。

本ライブラリは、Windows環境で高品質なシステム組み込みの音声合成機能を手軽に利用し、テキストから音声ファイルを生成したり、即座に再生したりする課題を解決します。


ai/transcribe_simple.py

transcribe_simple.py は、指定された音声ファイル(または複数の音声ファイル)を OpenAI Whisper モデルを使用して文字起こしするPythonプログラムです。主に以下の機能を提供します。

このプログラムは、音声コンテンツをテキストデータとして利用したいユーザー(例: 会議の議事録作成、動画コンテンツの字幕作成、音声データのテキスト検索化)のために、簡潔なインターフェースで高品質な文字起こし機能を提供することを目的としています。

Launcher実装
default.log: 9-200-textbook.ini: [transcribe_simple_execute]

ai/translate5_GUI.py

translate5_GUI.py は、翻訳ツール translate5_com.py の強力な機能を、より直感的に操作できるグラフィカルユーザーインターフェース(GUI)を通じて提供するPythonアプリケーションです。主に、コマンドラインインターフェースに不慣れなユーザーが、複雑な設定を視覚的に行い、翻訳プロセスを簡単に実行できるようにすることを目的としています。

主な機能:

このプログラムは、translate5_com.py が提供する柔軟な翻訳機能を、使いやすいインターフェースで利用したいユーザーにとって非常に有用です。

Launcher実装
default.log: 5-026-AI20260128.ini: [Button2.AI]
default.log: 9-190-AI.ini: [Button2.AI]
default.log: 9-200-textbook.ini: [Button10.textbook]

ai/translate5.py

translate5.py は、多様なドキュメント形式(.docx, .pptx, .pdf, .html, .md, .txt)のテキストを、指定された翻訳API(OpenAI, Google/Gemini, DeepL)を使用して翻訳または修正するPythonスクリプトです。このプログラムは、特に構造化されたドキュメントからのテキスト抽出、翻訳、そして元の形式への再構築を効率的に行うことを目的としています。

主な機能は以下の通りです。

本プログラムは、専門文書やプレゼンテーション資料の多言語化、または既存文書の校正・リライト作業を自動化し、作業の効率化と品質向上に貢献します。

Launcher実装
default.log: 5-026-AI20260128.ini: [Button3.AI]
default.log: 5-026-AI20260128.ini: [Button6.AI]
default.log: 5-026-AI20260128.ini: [translate_execute]
default.log: 9-190-AI.ini: [Button3.AI]
default.log: 9-190-AI.ini: [Button6.AI]
default.log: 9-190-AI.ini: [translate_execute]

converter/bin2base64.py

bin2base64.py は、指定されたバイナリファイルをBase64形式にエンコードし、その結果を新しいファイルに保存するPythonスクリプトです。このプログラムの主な目的は、画像ファイル、音声ファイル、その他の任意のバイナリデータを、テキストとして安全に転送または保存できるようにすることです。これにより、バイナリデータをテキストベースのプロトコル(例: メール、HTTP POSTデータ、XML/JSON設定ファイル)で扱う際の互換性の問題が解決されます。

主な機能は以下の通りです。

  1. 入力ファイルの指定: コマンドライン引数で入力するバイナリファイル名を指定できます。指定がない場合は、スクリプトにハードコードされたデフォルトのファイル名を使用します。
  2. Base64エンコード: 入力ファイルをバイナリモードで読み込み、Pythonの標準ライブラリ base64 モジュールを使用してBase64形式にエンコードします。
  3. 出力ファイルの保存: エンコードされたデータを、元のファイル名に .base64 拡張子を付加した新しいファイルに保存します。

converter/binparser.py

binparser.py は、Pythonで記述されたバイナリファイル解析ツールです。このプログラムの主な目的は、バイナリファイルから特定のデータ形式(数値や文字列)を読み取ったり、ファイル内で特定の値を持つデータを探し出すことです。

主な機能は以下の通りです。

このプログラムは、バイナリファイルに含まれる未知のデータ構造を調査したり、特定の値がファイル内のどこに存在するかを効率的に特定したりする際に役立ちます。


converter/compare_dir_files.py

compare_dir_files.py は、二つの指定されたディレクトリツリーを比較し、特定のファイルパターンに基づいて、一方のディレクトリにのみ存在するファイルを検出するPythonスクリプトです。このプログラムの主な目的は、異なる場所に存在するコードベースやファイル群の同期状態を確認し、差分を特定することにあります。

主な機能は以下の通りです。

このプログラムは、例えば、開発中のプロジェクトディレクトリと、Sphinxドキュメントのソースディレクトリ間で、Pythonファイルの追加や削除が正しく反映されているかを確認するようなシナリオで役立ちます。


converter/convert2md.py

convert2md.py は、指定されたドキュメントファイル(PDF, DOCX, PPTX)や画像ファイル(JPG)を解析し、その内容をMarkdown形式のテキストに変換するPythonプログラムです。

主な機能は以下の通りです。

  1. 多様なファイル形式のサポート: markitdown ライブラリを利用して、PDF、Word (DOCX)、PowerPoint (PPTX) ファイルからテキストコンテンツを抽出し、Markdownに変換します。
  2. 画像ファイルの解析と説明: 入力ファイルがJPG形式の場合、OpenAIのVisionモデル(gpt-4o-mini)を利用して画像の内容を分析し、その説明文をMarkdownとして生成します。この機能は、.env ファイルに OPENAI_API_KEY が設定されている場合に有効になります。
  3. 環境変数からのAPIキー読み込み: OpenAI APIを利用する際に必要なAPIキーは、プログラムと同じディレクトリ、または親ディレクトリに配置された .env ファイルから自動的に読み込まれます。
  4. Markdownファイルとして保存: 変換されたMarkdownテキストは、入力ファイルと同じディレクトリに、入力ファイル名と同じ名前で .md 拡張子を持つファイルとして保存されます。

このプログラムは、異なる形式のコンテンツを統一されたMarkdown形式に変換することで、コンテンツの再利用、編集、管理を効率化することを目的としています。特に、画像の内容をAIが自動で説明する機能は、アクセシビリティの向上やコンテンツ作成プロセスの自動化に貢献します。


converter/convert.py

convert.py は、様々なファイル形式を別の形式へ自動的に変換するための汎用ユーティリティです。このプログラムは、指定されたディレクトリツリー内、または単一のファイルを走査し、設定された変換ルールに基づいてファイルを処理します。主に、オフィスドキュメント(Word, Excel, PowerPoint)、Markdown、Jupyter Notebook、画像ファイルなどをPDF、Markdown、HTML、または画像コレクション(PNGなど)に変換する用途を想定しています。

主な機能は以下の通りです。

このツールは、多数のファイルを一括して管理・変換する必要がある場合に特に役立ちます。

Launcher実装
default.log: 5-030-Converter.ini: [Button1.Converter]
default.log: 5-030-Converter.ini: [convert_execute]

converter/docx2img.py

docx2img.py は、Microsoft Word (.docx) 文書を画像ファイル (.png) に変換するためのPythonスクリプトです。このプログラムは、Word文書を中間的にPDFファイルに変換し、その後、そのPDFファイルからページごとに画像を抽出することで、最終的な画像ファイルを生成します。

主な機能:

解決する課題:
このスクリプトは、Microsoft Wordアプリケーションがインストールされていない環境でもWord文書の内容を閲覧可能な形式(画像)で提供したい場合に特に有用です。また、Word文書の内容をWebページに埋め込んだり、サムネイルやプレビュー画像として表示したりする際にも利用できます。


converter/docx2md.py

docx2md.py は、Microsoft Word (.docx) ファイルの内容を抽出し、Markdown形式に変換するためのPythonスクリプトです。このプログラムは、Wordドキュメントが持つ複雑な要素、特に数式、画像、および多様なテキスト書式をMarkdownの記法で再現することを目的としています。

主な機能

解決する課題

本プログラムは、Wordドキュメントから情報を抽出し、以下のような用途で再利用可能にするための課題を解決します。

Launcher実装
default.log: 9-200-textbook.ini: [docx2md_execute]

converter/docx2pdf.py

docx2pdf.py は、Microsoft Word ドキュメントファイル(.docx)をPDFファイルに変換するためのPythonスクリプトです。

このプログラムの主な目的は、ユーザーが手動でWordアプリケーションを開いて「名前を付けて保存」機能を使ってPDFに変換する手間を省き、コマンドラインから自動的に変換処理を実行できるようにすることです。これにより、バッチ処理や他の自動化スクリプトへの組み込みが容易になります。


converter/md2pdf.py

プログラム md2pdf.py は、Markdown形式のテキストファイルを受け取り、それを整形されたPDFドキュメントに変換するためのPythonスクリプトです。このプログラムの主な目的は、Markdownで記述された技術ドキュメント、レポート、メモなどを、読みやすく印刷可能なPDF形式で出力することです。特に、日本語テキストの適切な表示に対応している点が特徴です。

主な機能は以下の通りです。

このプログラムは、Markdownで記述された情報を手軽に共有可能なPDF形式に変換したいというニーズに応え、特に日本語環境での利用を考慮したソリューションを提供します。


converter/pandoc.py

pandoc.py は、Pandocツールをラップし、MarkdownファイルをMicrosoft Word文書(.docx)、PowerPointプレゼンテーション(.pptx)、またはHTMLファイル(.html)に変換するためのユーティリティです。Pandocの複雑なコマンドラインオプションを抽象化し、よりシンプルで使いやすいインターフェースを提供することを目的としています。

主な機能:

解決する課題:

Launcher実装
default.log: 5-030-Converter.ini: [Button6.Converter]
default.log: 5-030-Converter.ini: [pandoc_execute]
default.log: 5-030-Converter.ini: add_dialog button dummy "text=cmd" "command=call [cmd]" (in [Button6.Converter])
default.log: 9-200-textbook.ini: [Button6.textbook]
default.log: 9-200-textbook.ini: [pandoc_execute]
default.log: 9-200-textbook.ini: add_dialog button dummy "text=cmd" "command=call [cmd]" (in [Button6.textbook])

converter/pptx2md2.py

`pptx2md2.py は、PowerPointファイル (.pptx`) からテキスト、数式、および画像を抽出し、Markdown形式のドキュメントに変換するためのPythonスクリプトです。

converter/pptx2pdf.py

pptx2pdf.py は、Pythonで記述されたスクリプトであり、Microsoft PowerPointプレゼンテーションファイル(.pptx形式など)をPDFファイルに変換することを目的としています。本プログラムは、Windowsオペレーティングシステム上で、Microsoft PowerPointアプリケーションがインストールされている環境でのみ動作します。

主な機能は以下の通りです。

本プログラムは、PowerPointアプリケーションのCOM (Component Object Model) オートメーションインターフェースを利用することで、プログラム的にPowerPointのPDFエクスポート機能を利用するという課題を解決します。


converter/programs2single_md.py

programs2single_md.py は、指定されたディレクトリ以下のファイルを検索し、その内容を結合してMarkdown形式のファイルに効率的に出力するPythonスクリプトです。

目的: 大規模なプロジェクトのソースコードや関連ドキュメントなど、複数のテキストファイルを一元的にまとめ、単一または分割されたMarkdownファイルとして出力することを目的としています。これは、AIモデルへの入力準備や、コードベース全体のスナップショット作成などに特に有用です。

主な機能:

解決する課題:
手動で多数のファイルの内容をコピー&ペーストしてまとめる手間を省き、自動的かつ体系的にファイルを統合します。特に、入力サイズに制限があるシステム(例: 大規模言語モデルのプロンプト)に複数のコードファイルを提供する必要がある場合に、このツールは作業を大幅に簡素化します。


converter/read_BRUKER_raw.py

read_BRUKER_raw.py は、BRUKER社製のX線回折装置などによって生成された測定データファイルを解析し、その内容を可視化するためのPythonプログラムです。主に以下の機能を提供します。

このプログラムは、BRUKERデータ形式の特定のオフセットに依存しており、測定データの迅速な検証やデバッグ、さらにはデータ解析の前処理として役立ちます。


converter/renumber_slides.py

renumber_slides.py は、指定されたテキストファイル内のスライド番号を自動的に連番に振り直すPythonスクリプトです。主にMarkdown形式のスライド資料を対象としており、# Slide N ... という形式で記述されたヘッダー行のスライド番号 N を $1, 2, 3, \ldots$ のように修正します。

このプログラムは、スライドの追加や削除によって不整合になったスライド番号を簡単に修正することを目的としています。ファイルの内容を直接上書きするため、実行前に元のファイルのバックアップを取ることを推奨します。

Launcher実装
default.log: 9-200-textbook.ini: [edit_renumber_slides_py]
default.log: 9-200-textbook.ini: [replace_word_renumber]
default.log: 9-200-textbook.ini: [Replace_Words]

converter/replace.py

replace.py は、指定されたテキストファイルの内容を、設定ファイルで定義された正規表現パターンに基づいて置換するプログラムです。主に、大量のテキストデータにおける表記ゆれや特定のフレーズの一括修正、あるいは書式変換などの用途に利用できます。

主な機能:

Launcher実装
default.log: 9-200-textbook.ini: [edit_replace_py]
default.log: 9-200-textbook.ini: [replace_word_execute]
default.log: 9-200-textbook.ini: [Replace_Words]

converter/save_clipboard.py

このプログラム save_clipboard.py は、Windows環境のクリップボードに現在格納されている内容を自動的に検出し、ファイルとして保存することを目的としています。主要な機能は、クリップボードにテキストデータがあればそれをテキストファイル(.txt)として、なければ画像データ(DIB形式)があればそれを画像ファイル(.png)として保存することです。

プログラムの主な機能は以下の通りです。

このプログラムは、特に技術ドキュメントを作成する際に、クリップボードのスクリーンショットやコードスニペットを素早くファイル化し、さらにドキュメントに組み込むための手間を削減するという課題を解決します。

Launcher実装
default.log: 5-030-Converter.ini: [Button13.Converter]
default.log: 5-030-Converter.ini: [sphinx_clipboard_edit_source]
default.log: 5-030-Converter.ini: [sphinx_clipboard_execute]
default.log: 9-300-sphinx.ini: [Button5.sphinx]
default.log: 9-300-sphinx.ini: [sphinx_clipboard_edit_source]
default.log: 9-300-sphinx.ini: [sphinx_clipboard_execute]

converter/SS_window.py

SS_window.py は、実行中のコンピュータのウィンドウ一覧を表示し、ユーザーが選択した特定のウィンドウをアクティブにしてスクリーンショットを撮影するPythonスクリプトです。このプログラムはOSに依存するウィンドウ操作やスクリーンショット機能を、Windows、macOS、Linuxといった複数のプラットフォームに対応するように設計されています。

主な機能は以下の通りです。

このプログラムは、特定の作業ウィンドウを頻繁にキャプチャする必要があるユーザーや、クロスプラットフォームで動作するシンプルなスクリーンショットツールを求めるユーザーにとって有用です。


converter/txt2pdf.py

txt2pdf.py は、プレーンなテキストファイル(通常は .txt 拡張子を持つファイル)をPDF形式のドキュメントに変換するPythonスクリプトです。このプログラムの主な目的は、テキストファイルの内容を、レイアウトが整った形でPDFとして保存することであり、特に日本語を含むテキストの変換をサポートするように設計されています。

主な機能は以下の通りです。

このプログラムは、報告書やメモなどのテキストコンテンツを、印刷や共有に適したPDF形式に変換したいというニーズを解決します。


converter/xlsx2img.py

xlsx2img.py は、Microsoft Excel (XLSX/XLS) ファイルを画像ファイル(PNG、JPGなど)に変換するためのPythonスクリプトです。このプログラムは、Excelファイルを直接画像に変換するのではなく、中間形式としてPDFを利用する二段階のアプローチを採用しています。

主な機能は以下の通りです。

  1. ExcelファイルのPDF変換: 指定されたExcelファイルをPDF形式に変換します。この処理には、Windows環境で動作するMicrosoft ExcelアプリケーションのCOM (Component Object Model) インターフェースを利用します。
  2. PDFファイルの画像変換: 変換されたPDFファイルの各ページを、指定された画像フォーマット(PNG、JPGなど)の独立した画像ファイルとして出力します。この処理には、PyMuPDF (fitz) ライブラリを使用します。

このプログラムは、Excelの内容を視覚的に共有したい場合や、ドキュメントの特定の部分を画像として抽出したい場合に役立ちます。

注意点: 現状のコードでは、入力Excelファイルはプログラム内にハードコードされた test.xlsx がデフォルトとして使用され、コマンドライン引数で別の入力ファイルを指定しても、その引数は無視されます。出力ディレクトリと画像形式はコマンドライン引数で変更可能です。


converter/xlsx2pdf.py

xlsx2pdf.py は、Microsoft Excelファイル(.xlsx形式が一般的ですが、Excelがサポートする他の形式も含む)をPDF形式に変換するためのPythonスクリプトです。このプログラムの主な目的は、ExcelがインストールされているWindows環境において、ExcelファイルのPDF変換処理を自動化し、コマンドラインから簡単に実行できるようにすることです。

主な機能

解決する課題

このプログラムは、GUIベースのExcelアプリケーションを開いて手動で「名前を付けて保存」や「印刷」機能を使ってPDFに変換する手間を省き、スクリプトやバッチ処理の一部としてPDF変換を組み込みたい場合に有効です。特に、大量のExcelファイルを一括でPDF化する必要がある場合に、作業効率を大幅に向上させることができます。


crystal/analyze_symmetry_k.py

`analyze_symmetry_k.py` は、結晶構造の対称性を解析し、特に中心金属のd軌道と配位子の対称適応型線形結合 (SALC) のk点における互換性を評価するモジュールです。

このプログラムは、ユーザーが指定した構造JSONファイルから情報を読み込み、点群の自動検出、SALCの計算、およびk点におけるSALCの振る舞いを解析します。

コードのdocstringにある関連リンク `:doc:analyze_symmetry_k_usage` はSphinx/reStructuredText固有の記法であり、MySTのMarkdownでは直接利用できないため、このドキュメントでは言及しません。


crystal/bz_draw.py

`bz_draw.py` は、結晶学的パラメータに基づいて第一ブリルアンゾーン(逆空間)またはウィグナー・ザイツセル(実空間)を3Dで可視化するためのPythonスクリプトです。

このスクリプトは以下の機能を提供します。

Launcher実装
default.log: 7-012-Crystal.ini: [bz_draw_exec]

crystal/cfg2cif.py

cfg2cif.py は、CFGファイルをCIFファイルに変換するPythonスクリプトです。

このスクリプトは、Open-CFG形式のファイルから結晶構造情報を読み込み、CIF (Crystallographic Information File) 形式に変換して出力します。格子ベクトルの読み込みや、原子サイトの座標処理(必要に応じて `[0,1)` 範囲への丸め込み、指定範囲外の除外)をサポートしています。

関連リンクについては、元のコードのdocstringに :doc: ロールで cfg2cif_usage が指定されていますが、このドキュメントセットには含まれていないため、参照先は解決されません。

Launcher実装
default.log: 7-013-XRD.ini: [CIF_cfg2cif]

crystal/cif_inf_pymatgen.py

`cif_inf_pymatgen.py は、CIF(Crystallographic Information File)ファイルから結晶構造情報を読み込み、pymatgen` ライブラリを用いて解析し、その詳細を標準出力に表示するスクリプトです。

1.1. 概要

本スクリプトは、指定されたCIFファイルから結晶構造データを読み込み、pymatgen ライブラリの機能を用いて、その構造に関する詳細な情報を解析し、標準出力に表示します。具体的には、空間群の情報、格子定数、対称操作、原子サイトの座標と組成などが含まれます。また、元の構造に加え、対称化された構造の解析結果も提示します。

1.2. 詳細説明

  1. コマンドライン引数またはデフォルト設定に基づいて入力CIFファイルパスを決定します。
  2. tklib.tkApplication を使用して、標準出力に加え、ログファイルへの出力リダイレクトを設定します。
  3. pymatgen の Structure.from_file メソッドでCIFファイルを読み込み、Structure オブジェクトを作成します。
  4. 作成された Structure オブジェクトについて、print_inf 関数を呼び出して詳細情報を表示します。
  5. SpacegroupAnalyzer を用いて構造を対称化し、その対称化された Structure オブジェクトについても同様に print_inf 関数で詳細情報を表示します。
  6. 表示される情報には、空間群のシンボルと番号、対称操作の行列、格子定数、格子ベクトル、単位胞体積、独立なサイトおよび全サイトの原子種、分数座標、占有率が含まれます。

関連リンク:
:doc:cif_inf_pymatgen_usage

Launcher実装
default.log: 7-012-Crystal.ini: [CIF_inf_pymatgen]

crystal/cif_read.py

`cif_read.py は、CIF (Crystallographic Information File) 形式のファイルを読み込み、その結晶構造情報を解析し、標準出力に表示するためのスクリプトです。このスクリプトは、 tklib ライブラリの一部である tkCIF` クラスを利用してファイルのパースを行います。パース後、得られた結晶オブジェクトから単位胞情報、原子座標、密度などの主要なデータを計算し、出力します。

スクリプトの元々のdocstringには `:doc:cif_read_usage``` と記載がありますが、これはSphinx reStructuredTextのドキュメント間リンクであり、このMyST Markdownドキュメントではリンクとして機能しません。

Launcher実装
default.log: 7-012-Crystal.ini: [CIF_inf]

crystal/cif.py

'cif.py' は、Crystallographic Information File (CIF) 形式の結晶構造データを解析し、その健全性を検証し、必要な情報を抽出・再出力するためのPythonスクリプトです。このプログラムは、特に多数のCIFファイルを扱う研究者やデータベース管理者が、結晶構造データの品質管理、検証、および標準化された形式での再利用を行う際に役立ちます。

主な機能:

解決する課題:

このプログラムは、大量のCIFファイルから有効で信頼性の高い結晶構造データを選別し、データの品質を保証するための前処理ステップを提供します。例えば、広範なデータベースからダウンロードした結晶構造データの中から、物理的に妥当なものだけをフィルタリングする際に特に有効です。


crystal/convert_cell.py

convert_cell.py は、Pythonの pymatgen ライブラリを使用して、結晶構造記述ファイル(CIF形式)で定義された単位胞を別の格子設定に変換するためのプログラムです。このプログラムは、部分占有率を持つ原子サイトも適切に処理し、変換前後で物理的な密度が維持されていることを検証します。

主な機能は以下の通りです。

  1. CIFファイルの読み込み: 入力として与えられたCIFファイルを解析し、結晶構造データ(格子定数、原子の種類、位置、占有率など)を読み込みます。
  2. 空間群解析と単位胞の検出: pymatgen.symmetry.analyzer.SpacegroupAnalyzer を用いて、元の構造の空間群、R-格子の設定(六方晶または菱面体晶)、および中心化の種類(例: P, A, B, C, I, F)を自動的に検出します。
  3. 格子変換の実行: 以下のいずれかの方法で単位胞を変換します。
  1. 構造情報の報告: 変換前後の構造について、以下の詳細情報を出力します。
  1. 密度の整合性チェック: 変換前後で計算された原子密度と質量密度が、指定された相対許容誤差 eps (デフォルト 1e-4) の範囲内で一致することを確認します。これにより、変換が物理的に妥当であるかを検証します。一致しない場合は警告メッセージを出力します。
  2. 変換後のCIFファイルの出力: 変換された構造を新しいCIFファイルとして保存します。

このプログラムは、結晶構造シミュレーションや解析において、特定の格子設定への変換が必要な場面、あるいは異なる格子設定の構造データを比較する際に役立ちます。


crystal/crystal_convert_cell.py

このスクリプトは、指定された結晶構造の単位格子を、異なる基底ベクトル(例えばプリミティブセル)を持つ新しい単位格子に変換します。変換前と変換後の単位格子の格子パラメータ、格子ベクトル、体積、原子サイト情報を計算して表示し、さらに matplotlib の3Dプロット機能を使用して両方の単位格子と原子配置を視覚的に表示します。コマンドライン引数で結晶の種類、変換モード、原子の描画サイズを調整できます。

crystal/crystal_distance.py

`crystal_distance.py` は、結晶中の原子間距離を計算し、表示するためのPythonスクリプトです。与えられた格子定数と原子サイト情報に基づき、結晶中の原子間距離を計算します。また、実空間および逆空間の格子情報(格子ベクトル、メトリックテンソル、単位胞体積など)も計算し、標準出力に表示します。計算された原子間距離は、指定された距離範囲内でソートされて出力されます。

crystal/crystal_draw_cell_usage.md

`crystal_draw_cell.py は、指定された格子定数と原子サイト情報に基づき、実空間および逆空間の単位格子と原子配置を3Dで描画するPythonスクリプトです。格子定数から格子ベクトル、計量テンソル、単位格子の体積を計算し表示します。逆格子についても同様の計算と表示を行います。生成された原子サイトは、指定された描画範囲に基づいて重複を避けながらリストに追加されます。最終的に、matplotlib` を用いて実空間の単位格子、逆空間の単位格子、および原子配置を3Dプロットとして可視化し、表示します。

crystal/crystal_MP_Evjen.py

このPythonスクリプト `crystal_MP_Evjen.py` は、Evjen法を用いて結晶のマデルングポテンシャルを計算します。

crystal/crystal_MP_Ewald.py

このスクリプト `crystal_MP_Ewald.py` は、エワルド法を用いて結晶のマデルングポテンシャルを計算するプログラムです。

指定された結晶の格子パラメータとサイト情報に基づき、実空間和、逆空間和、および自己項の3つの成分を合計して、最終的なポテンシャルを求めます。


crystal/crystal_XRD.py

X線回折のブラッグ角計算スクリプトです。結晶格子パラメータとサイト情報に基づいて、X線回折ピークの `2θ 角、格子面間隔 d 、ミラー指数 (hkl)` を計算し、表示します。

crystal/diagonalize2d.py

`diagonalize2d.py` は、2x2の実数行列の対角化を可視化するPythonスクリプトです。

crystal/draw_2D_BZs.py

2次元のブリルアンゾーンと関連する格子点をプロットするスクリプト。

crystal/draw_band_fs.py

'draw_band_fs.py' は、固体の電子バンド構造、状態密度 (DOS)、フェルミ準位 (EF)、フェルミ面 (FS)、および有効質量をシミュレートし、可視化するためのPythonプログラムです。このプログラムは、1次元 (1D)、2次元 (2D)、3次元 (3D) の結晶に対応し、以下の3つの単純な物理モデルをサポートしています。
  1. 自由電子モデル (free): 相互作用のない電子ガス。
  2. タイトバインディングモデル (tb): 最近接ホッピングのみを考慮した単純なモデル。
  3. 準自由電子モデル (nfe): 自由電子モデルに弱い周期ポテンシャルを追加したモデル。

主な機能

解決する課題

このプログラムは、物性物理学における電子構造の基本的な概念(バンド構造、フェルミ準位、状態密度、フェルミ面、有効質量など)を、具体的な計算と視覚化を通じて理解するための教育的ツールとして設計されています。複雑な第一原理計算を行うことなく、これらの概念の物理的意味やモデル依存性を直感的に把握することを支援します。


crystal/draw_bravais_lattice.py

`draw_bravais_lattice.py` は、Python言語で記述されたスクリプトであり、ブラベー格子の単位格子と格子点を3Dで可視化することを目的としています。

このスクリプトは、指定された格子定数と結晶系に基づいて、ブラベー格子の単位格子、格子点、格子ベクトル、およびオプションで補助線や基本格子を3Dで描画します。Matplotlibライブラリを使用して3Dプロットを生成し、結果を画像ファイルとして保存し、同時に表示します。


crystal/draw_rhombohedral_cells.py

このスクリプトは、六方格子の基本ベクトル `a_1, a_2, a_3 を定義し、変換行列 T を用いて菱面体格子の基本ベクトル r_1, r_2, r_3` へ変換します。変換後の格子ベクトルおよび単位格子を 3D 空間上に描画し、両者の関係を視覚化します。

crystal/draw_unit_cell.py

結晶学における単位格子を3Dで可視化する機能を提供します。

crystal/draw_unit_cells_usage.md

結晶の格子定数と角度から基本格子ベクトルを計算します。直交座標系における3つの基本格子ベクトル `va, vb, vc を導出します。va はX軸に沿い、vb はXY平面にあり、vc` は3次元空間に配置されるように定義されます。

Parameters:

Returns:


crystal/Fhkl.py

Fhkl.py は、X線回折に関連する原子および結晶の特性(原子散乱因子、異常散乱因子、結晶構造因子)を計算し、その結果をテキスト出力およびグラフとして可視化するPythonプログラムです。

主な機能は以下の4つのモードに分けられます。

このプログラムは、X線回折実験の解析や設計において、物質の原子レベルおよび結晶レベルでのX線散乱特性を理解し、予測するために利用できます。


crystal/find_point_group.py

`find_point_group.py` は、XYZ形式の分子ファイルから点群を推定し、対称操作を直交化、整列、そして特定のSchoenflies記号(C3v/C4v/C6v/C2v/Dn/T/Td/Th/O/Oh)でラベル付けして表示するPythonスクリプトです。

主要な機能は以下の通りです。

このスクリプトは、共通ライブラリである `tkpointgroup の機能(tkpointgroup.snap_matrix(), tkpointgroup.normalize_symbol(), tkpointgroup.classify_label()`)を活用することで、コードの重複を削減し、堅牢性を向上させています。

Launcher実装
default.log: 7-012-Crystal.ini: [point_group_find_pg]

crystal/get_cif.py

'get_cif.py' は、[Materials Project](https://materialsproject.org/) のAPIを利用して、指定された化学式または構成元素リストに対応する結晶構造データ(CIF形式)を取得し、ローカルファイルとして保存するためのPythonスクリプトです。

主な機能:

解決する課題:

材料科学研究者がMaterials Projectの豊富な結晶構造データベースから特定の物質のデータを容易に検索・取得し、計算化学ソフトウェアなどで利用可能な標準的なファイル形式(CIF)として手元に保存する手間を軽減します。これにより、手動でのデータダウンロードやフォーマット変換の必要がなくなります。

Launcher実装
default.log: 5-026-Search.ini: [MP_search_strcutures]

crystal/guess_free_parameters_usage.md

`guess_free_parameters.py` は以下のコマンドライン引数を取ります。

```bash
python guess_free_parameters.py <cif_file> [OPTIONS]
```


crystal/interatomic_distance.py

原子間距離を計算するためのスクリプト。

crystal/kpath_pymatgen.py

`pymatgen` を用いて結晶構造の高対称k点経路を計算し、表示するスクリプトです。

入力された結晶構造のBravais格子に基づいて高対称k点経路を計算し、表示します。


crystal/kpath_seekpath.py

'kpath_seekpath.py' は、与えられた結晶構造ファイル(CIF形式)から、バンド構造計算のための標準的なk点パス(高対称点経路)と高対称点の分率座標を決定し、標準出力に表示するPythonスクリプトです。

このプログラムの主な機能は以下の通りです。

  1. 結晶構造の読み込み: CIFファイルから結晶構造情報を読み込みます。
  2. 原始セルの取得: 読み込んだ構造から原始セル(Primitive Cell)をPymatgenライブラリを使用して取得します。
  3. 高対称k点パスの決定: 'seekpath' ライブラリを用いて、原始セルの対称性に基づいた標準的な高対称k点パスを自動的に決定します。
  4. 高対称点の座標表示: 決定された高対称点の分率座標を標準出力に表示します。
  5. k点パスの表示: 各高対称点を結ぶパスを標準出力に表示します。

これにより、ユーザーはDFT(密度汎関数理論)などの計算手法でバンド構造を計算する際に必要なk点パス情報を簡単に得ることができます。


crystal/lattice_plane.py

このドキュメントは、Pythonプログラム `lattice_plane.py` の機能と使用方法について説明します。

`lattice_plane.py は、指定された格子定数とミラー指数 (hkl) に基づいて、結晶の単位格子とその中の (hkl) 面を3Dで描画するスクリプトです。コマンドライン引数としてミラー指数 h, k, l を受け入れ、それらの値に応じて面を可視化します。描画されるのは単位格子に最も近い (hkl)` 面の一部です。


crystal/MP_Ewald.py

'MP_Ewald.py' は、結晶構造データ(CIF形式)からマデルングポテンシャルをEwald法によって計算するPythonスクリプトです。このプログラムの主な目的は、結晶中の各原子サイトにおける静電ポテンシャル、および単位格子あたりの全マデルングエネルギーを精度良く算出することです。

主な機能:

解決する課題:

結晶中の静電相互作用は長距離にわたるため、単純に全ての原子間のクーロン力を合計すると収束が非常に遅くなるか、発散することがあります。Ewald法は、この長距離クーロン相互作用の合計を数学的に収束する3つの項(実空間和、逆空間和、自己エネルギー項)に分割することで、効率的かつ高精度にマデルングポテンシャルを計算することを可能にします。これにより、イオン結晶の安定性や物性を理解するための基礎データを提供します。

Launcher実装
default.log: 7-012-Crystal.ini: [Crystal_MP]

crystal/point_group.py

`point_group.py` は、結晶点群操作の解析と可視化を行うPythonユーティリティスクリプトです。

Hermann–Mauguin記号に基づいて、対称操作の表示、指定された方向ベクトルの群作用による展開、およびステレオ投影図の描画機能を提供します。
tkpointgroup ライブラリと連携し、点群の数学的処理を扱います。

Launcher実装
default.log: 7-012-Crystal.ini: [point_group_expand_xyz]
default.log: 7-012-Crystal.ini: [point_group_stereo]

crystal/search_cif_db_tkcif.py

`search_cif_db_tkcif.py` は、指定されたルートディレクトリ以下のCIFファイルを読み込み、その組成や結晶学的情報を抽出してSQLite3データベースにインデックス化します。一度データベースが構築されれば、ファイルシステムを再度スキャンすることなく、高速に組成に基づいた検索を実行できます。

主な機能は以下の3つのモードです。

CIFファイルの読み込みには `tkcif.tkcif_reader.read_structure() 関数を、組成の処理には pymatgen.core.Composition` クラスを使用しています。


crystal/symmetrize_pymatgen.py

symmetrize_pymatgen.py は、Pythonで記述されたスクリプトであり、pymatgen ライブラリの機能を利用して結晶構造の対称性を解析し、対称化された構造を新しいCIFファイルとして出力します。
Launcher実装
default.log: 7-012-Crystal.ini: [CIF_symmetrize]

crystal/symmetrize_tklib.py

`symmetrize_tklib.py は、pymatgen と tklib` という2つのPythonライブラリを組み合わせて使用し、結晶構造データを含むCIFファイルを対称化し、その結果を新しいCIFファイルとして保存するスクリプトです。

このスクリプトは、入力されたCIFファイルを読み込み、`pymatgen の SpacegroupAnalyzer を利用して結晶構造の対称性を解析します。対称化された構造からは、空間群情報、格子定数、原子サイトの情報が抽出されます。その後、抽出された情報は tklib の tkFile モジュールを用いて、特定のフォーマットで新しいCIFファイル ({filebody}-symmetrized.cif`) として出力されます。

`pymatgen の強力な対称性解析機能を活用しつつ、tklib` のデータ構造と連携して出力を生成するハイブリッドなアプローチを採用しており、材料科学分野での結晶構造解析ワークフローに貢献することを目的としています。


crystal/tkpointgroup_usage.md

* Herman–Mauguin (国際) と Schoenflies の相互変換

crystal/vib_irreps.py

このスクリプト `vib_irreps.py` は、指定されたXYZファイルと点群シンボルに基づき、分子の振動モードの既約表現を計算します。
Launcher実装
default.log: 7-012-Crystal.ini: [point_group_irreducible_vibration]

crystal/xyz2cif.py

`xyz2cif.py` は、XYZ形式の原子座標ファイルと設定ファイルからCIF (Crystallographic Information File) 形式のファイルを生成するスクリプトです。
Launcher実装
default.log: 7-013-XRD.ini: [CIF_xyz2cif]

crystal/zone_axes_usage.md

立方晶系の結晶面とゾーン軸を3Dで可視化するスクリプト。

develop/class_analyzer.py

class_analyzer.py は、Pythonのオブジェクト指向プログラミングにおけるオブジェクトの構造と振る舞いを動的に解析・表示するためのツールであり、特に材料科学分野で広く利用される pymatgen ライブラリのオブジェクトを対象としています。このプログラムは、指定された結晶構造情報ファイル(CIF)を読み込み、pymatgen の機能を用いてその結晶の対称性を解析します。その過程で生成される様々な pymatgen オブジェクト(CifParser、Structure、SpacegroupAnalyzer、SymmetrizedStructure、Siteなど)に対して、そのオブジェクトが持つメソッド(関数)と属性(変数)を一覧表示する機能を提供します。

主な機能は以下の通りです。

  1. オブジェクトの内部構造の動的解析: あらゆるPythonオブジェクトに対し、そのクラスが定義する呼び出し可能なメソッドと、呼び出し不可能な属性(変数)を動的に抽出し、リスト化します。
  2. 型に応じた情報の表示: 整数、浮動小数点数、真偽値、文字列、リスト、タプル、辞書といった基本的なPythonの型に対しては、その値と型を直接表示します。
  3. カスタムオブジェクトの詳細表示: pymatgen のようなライブラリで定義された複雑なカスタムオブジェクトに対しては、そのクラス名、モジュール名、そして利用可能なメソッドとその呼び出し結果(引数不要な場合)、およびその属性の現在の値と型を整形して表示します。
  4. 結晶学的対称性の解析: pymatgen を使用してCIFファイルから結晶構造を読み込み、空間群解析を実行し、対称化された構造や等価サイトの情報を取得します。
  5. 非対称単位の抽出: 対称化された構造から、結晶を記述するために必要な最小限のサイト群である非対称単位を抽出します。

このプログラムは、pymatgen オブジェクトがどのようなメソッドや属性を持っているかを学習し、デバッグする際に非常に役立ちます。特に、ライブラリのドキュメントだけでは理解しにくい、複雑なオブジェクトの具体的な中身や操作方法を視覚的に把握することを目的としています。


develop/make_mini_tklib.py

make_mini_tklib.py は、Pythonプログラムのエントリーポイントとなるスクリプトから静的にインポートされるモジュールを解析し、特定のPythonパッケージのサブセットを生成することを目的としたツールです。具体的には、指定されたエントリースクリプトがインポートするPythonファイルのうち、指定されたパッケージ (pkg_name) のルートディレクトリ (pkg_root) 配下にあるものを再帰的に収集し、出力ディレクトリ (out) へ元の相対パス構造を保ってコピーします。

このプログラムの主な機能は以下の通りです。

このツールは、大規模なPythonパッケージの中から、特定の用途に合わせた最小限の依存関係を持つサブパッケージを作成したい場合に有用です。これにより、配布物のサイズを削減し、デプロイメントを簡素化できます。


develop/make_run_report.py

`make_run_report.py は、指定された作業ディレクトリ (--workdir) で特定のコマンド (--cmd) を実行し、その実行結果を詳細なレポートとしてMarkdown形式で出力する簡易ツールです。このレポートには、コマンド実行前後のファイル差分、標準出力 (stdout)、標準エラー出力 (stderr)、プログラムの終了コード、実行中に生成または変更された画像ファイル、およびログファイル(.log, .out, .txt)や stderr 内で検出された警告 (WARNING) やエラー (ERROR`) の情報が含まれます。

オプションで pandoc コマンドが利用可能な場合、MarkdownレポートをHTML形式に変換することもできます。


develop/miniC.py

miniC.py は、独自のスクリプト言語である「miniC」のインタプリタです。このプログラムは、miniC言語で記述されたソースコードを読み込み、以下の3つの主要な段階を経て実行します。
  1. 字句解析 (Lexing): ソースコードを意味のある最小単位であるトークンに分割します。
  2. 構文解析 (Parsing): トークンのストリームから、プログラムの構造を表現する抽象構文木 (AST: Abstract Syntax Tree) を構築します。
  3. 実行 (Interpretation): 構築されたASTをトラバースし、各ノードに対応する処理を実行することで、プログラムのロジックを実行します。

本プログラムは、変数、数値、文字列、ブーリアン、リスト、辞書といったデータ型をサポートし、条件分岐 (if/elif/else)、繰り返し (for)、関数定義と呼び出し、そして組み込み関数 (print, exit, len, time, append, insert, open, read, write, close, add) を提供します。特に、ファイルI/Oの機能が強化されており、スクリプト内でファイルの読み書きを行うことができます。


editor/Iniedit.py

iniedit.py は、INIファイルやTOMLファイルなどの設定ファイルを編集するためのGUIベースのテキストエディタです。主に以下の機能を提供し、設定ファイルの管理と編集を効率化します。

editor/iniview_usage.md

iniview.pyw は、INI形式のファイルや一般的なテキストファイルを視覚的に閲覧および解析するためのグラフィカルユーザーインターフェース (GUI) ツールです。特に、従来のINIパーサーでは扱いにくい複数行の値(3重引用符で囲まれたテキストブロック)を含むINIファイルの閲覧に特化しています。

主な機能は以下の通りです。

本プログラムは、複雑な設定ファイルやログファイル、ソースコードなどを迅速に確認し、必要な情報を抽出する作業を効率化することを目的としています。


electrical/analyze_2layer_Hall_excel.py

analyze_2layer_Hall_excel.py は、Excel形式のホール測定データから、2層モデルを用いて薄膜(film)の有効ホール物性を計算するためのPythonプログラムです。基板単体(sub)と薄膜+基板(tot)のホール測定結果をインプットとして、膜厚、シート抵抗、ホール係数などの情報から薄膜固有の電気的特性(シートコンダクタンス、体積 Hall 係数、ホール移動度、キャリア密度など)を抽出します。

主な機能:

解決する課題:
積層構造を持つサンプル(例えば、薄膜が基板上に成膜されている場合)では、薄膜単体の電気特性を直接測定することが困難です。このプログラムは、基板単体と薄膜+基板の測定結果を解析することで、薄膜自体のホール物性を間接的に評価することを可能にします。


electrical/collect_resitest8300.py

collect_resitest8300.py は、Hall測定装置 (例えば 8310型) が出力するCSVファイルから、多層モデル解析に適した「primaryデータ」を抽出し、Excelファイルに追記するPythonプログラムです。

主な機能は以下の通りです。

このプログラムは、大量のHall測定データを効率的に集約し、後続のデータ解析プロセス(特に多層モデル解析)への準備を容易にすることを目的としています。


electrical/EF_T_DOS.py

EF_T_DOS.py は、VASP計算から得られるDOSCARファイル(またはその変換されたDOS.datファイル)を解析し、半導体のキャリア密度(電子と正孔)とフェルミ準位($E_F$)を計算するためのPythonスクリプトです。このプログラムは、指定された温度範囲またはフェルミ準位範囲において、電荷中性条件を満たす$E_F$とそれに伴うキャリア密度、ホール係数などの物理量を計算し、結果をグラフとして可視化します。

主な機能:

解決する課題:
このプログラムは、理論的な状態密度情報から、半導体材料の電気的特性(キャリア濃度、フェルミ準位、ホール係数など)が温度やフェルミ準位によってどのように変化するかを予測し、デバイス設計や材料開発のための基礎データを提供します。


electrical/EffectiveMass.py

`EffectiveMass.py は、バンド構造データ(波数 k とエネルギー E の関係)から実効質量と波数 k` の関係を計算し、その結果をプロットする Python スクリプトです。主に固体物理学におけるバンド計算結果の解析を目的としています。

electrical/mu_fit.py

mu_fit.py は、Hall効果測定から得られた温度依存移動度データに対して、複数の散乱メカニズム(光学フォノン、音響フォノン、中性不純物、イオン化不純物、粒界散乱)の物理モデルに基づいたフィッティングを行います。このツールは、パラメータの最適化、誤差評価、およびパラメータ感度診断の機能を提供します。

主な機能は以下の通りです。

:::note
フィッティングの目的関数は、移動度の対数スケールにおける残差二乗和を最小化します。
:::


electrical/mu_T_Fit2.py

mu_T_Fit2.py は、半導体のホール移動度の温度依存性データ($\mu-T$ データ)を解析し、その背後にある散乱メカニズムのパラメータを決定するためのPythonスクリプトです。このプログラムは、粒界散乱、光学フォノン散乱、音響フォノン散乱、イオン化不純物散乱などの複数の散乱メカニズムを考慮した移動度モデルを用いて、実験データをフィッティングします。

主な機能は以下の3つのモードで提供されます。

  1. init (初期化) モード: 入力された$\mu-T$データに対し、線形最小二乗法を用いて移動度モデルの初期パラメータを推定します。また、移動度および$\mu T^{0.5}$の活性化エネルギーの温度依存性も計算・表示します。
  2. fit (フィッティング) モード: 初期パラメータに基づき、非線形最小二乗法(scipy.optimize.minimize を利用)を用いて$\mu-T$データをモデルに最適にフィットさせます。これにより、粒界ポテンシャル障壁、光学フォノン散乱の前指数因子・エネルギー、およびその他の散乱メカニズムの係数と温度指数といった物理パラメータを高精度で決定します。フィッティング後、各散乱成分の移動度と、それらの全体移動度に対する相対的な重みを分解して表示します。
  3. sim (シミュレーション) モード: 指定された(またはパラメータファイルから読み込まれた)モデルパラメータを用いて、移動度の温度依存性をシミュレートし、各散乱メカニズムの寄与を分解して表示します。このモードは、モデルの挙動を理解したり、パラメータの感度を調べたりするのに役立ちます。

このプログラムは、半導体材料のキャリア輸送特性を詳細に理解し、材料設計やプロセス最適化のための貴重な情報を提供することを目的としています。


electrical/mu_TN_Fit.py

mu_TN_Fit.py は、半導体のホール移動度 ($\mu$) の温度 ($T$) およびキャリア濃度 ($N$) 依存性を、散乱メカニズムに基づいた非線形最小二乗法によりフィッティングするためのPythonプログラムです。主に、実験的に得られたホール移動度データから、材料固有の散乱パラメータを抽出することを目的としています。

このプログラムの主な機能は以下の通りです。

このプログラムは、半導体デバイスの設計や材料開発において、キャリア輸送特性を理解し予測するための重要なツールとなります。


electrical/N_T_Fit_semi_FEA.py

N_T_Fit_semi_FEA.py は、Free Electron Approximation (FEA) に基づいて半導体のホール効果測定データ(キャリア濃度、移動度、電気伝導率、ホール係数)を温度の関数として解析するためのPythonスクリプトです。主な機能は以下の通りです。
  1. シミュレーション (sim モード):

与えられた半導体パラメータ(有効質量、バンドギャップ、ドナー準位と濃度、アクセプター準位と濃度など)に基づき、フェルミ準位、電子濃度、正孔濃度、ホール係数などの温度依存性をシミュレートします。測定データがある場合は、それらと比較してグラフ表示し、活性化エネルギーも計算します。

  1. キャリア濃度フィッティング (fit, fit_e, fit_h モード):

測定されたキャリア濃度 $N$ の温度依存性を、非線形最小二乗法を用いてフィッティングします。

  1. ホール係数フィッティング (fit_RH モード):

測定されたホール係数 $R_H$ の温度依存性を、非線形最小二乗法を用いてフィッティングします。電子と正孔の二重キャリアモデルを使用し、散乱因子 $r$ を考慮します。このモードでは tkMobility クラスで定義された移動度モデルが使用されます。

本プログラムは、半導体の電子構造や欠陥準位を評価するために、ホール効果測定データと理論モデルを比較する強力なツールを提供します。


electrical/Ne_T_fit.py

`Ne_T_fit.py` は、半導体内の電子・正孔濃度、イオン化不純物濃度を温度の関数として計算するシミュレーターであり、実験的なキャリア密度データにモデルをフィッティングする機能も提供します。

フィッティングはデフォルトでネルダー・ミード法を使用し、ドナー/アクセプターのイオン化エネルギー、濃度、バンドギャップをフィッティングパラメータとして利用します。
ログ空間での最適化と、パラメータの不確かさ(共分散、相関、標準誤差)推定もサポートしています。


electrical/optimize_flex_CV.py

optimize_flex_CV.py は、半導体デバイスのCV(キャパシタンス-電圧)特性測定データに基づき、デバイスの物理パラメータを最適化して推定するプログラムです。主に、以下の機能を提供します。

このプログラムは、半導体デバイスの設計や解析において、CV測定データからデバイスの物理的特性を定量的に評価する際の課題を解決することを目指しています。


electrical/pnjunction.py

`pnjunction.py` は、PN接合ダイオードの電流-電圧 (IV) 特性を計算し、プロットするためのPythonスクリプトです。ユーザーが指定した半導体材料の物理パラメータと環境条件(温度)に基づき、ダイオードの基本的な電気的特性をシミュレーションします。

electrical/pvanalyze.py

pvanalyze.py は、太陽電池デバイスの IV 特性および光学スペクトルを解析するための Python スクリプトです。主に以下の処理を行います。

このスクリプトは、非線形最小二乗フィットで単一ダイオードモデルを厳密に最適化するものではありません。コード上では、局所多項式平滑化、接線推定、微分、ゼロクロス補間を用いて、IV 曲線から代表パラメータを抽出します。


electrical/pvfit_simple.py

pvfit_simple.py は、太陽電池の電流-電圧特性を一ダイオードモデル(Single-Diode Model, SDM)でフィッティングするための簡易ツールです。

主な目的は、測定IVデータから以下の5つのモデルパラメータを抽出することです。

| パラメータ | 意味 | 単位 |
|---|---|---|
| I0 | ダイオード逆飽和電流 | A |
| ndiode | ダイオード理想因子 | 無次元 |
| IPV | 光生成電流 | A |
| Rs | 直列抵抗 | Ω |
| Rsh | シャント抵抗 | Ω |

このスクリプトは、入力CSVファイルからIVデータを読み込み、必要に応じて初期値推定を行い、scipy.optimize.minimize によりパラメータを最適化します。

実行モードは以下の3種類です。

| モード | 内容 |
|---|---|
| init | IVデータから初期パラメータを推定し、CSVへ保存 |
| fit | 初期パラメータまたは既存CSVを用いてSDMフィッティングを実行 |
| sim | 指定済みパラメータでIVカーブを計算・表示 |

処理の大まかな流れは以下です。

  1. コマンドライン引数を解析する。
  2. 入力CSVから DataValue 行を読み込み、電圧 V と電流 I を抽出する。
  3. 電圧昇順にソートし、xmin, xmax が指定されていれば範囲を制限する。
  4. init モードでは初期パラメータを推定する。
  5. fit モードでは対数電流誤差を目的関数としてパラメータを最適化する。
  6. 最終IVカーブを線形スケールと対数スケールで表示する。
  7. パラメータCSVを保存する。

electrical/pvfit.py

pvfit.py は、太陽電池または半導体デバイスの電流-電圧特性を、拡張一ダイオードモデル(Extended Single Diode Model, Extended SDM)で解析する Python スクリプトです。

主な用途は次の通りです。

このプログラムでは、外部印加電圧 $V$ に対して直接電流を陽に計算するのではなく、接合電圧 $V_d$ を未知数とする暗黙方程式を数値的に解き、直列抵抗 $R_s$ とシャント抵抗 $R_{sh}$ の影響を含めて電流を求めます。


electrical/S2L.py

S2L.py は、Single Parabolic Band (SPB) モデルと緩和時間近似(緩和時間指数 $r=0$)を用いて、熱電材料のローレンツ数 $L$ と電子熱伝導率 $k_e$ を実験データから推定するPythonプログラムです。

主な機能は以下の通りです。

  1. データ読み込み: Excel (.xlsx) または CSV 形式の入力ファイルから、温度 ($T$), ゼーベック係数 ($S$), 電気伝導率 ($\sigma$), 全熱伝導率 ($\kappa$) のデータを読み込みます。
  2. フェルミ準位の計算: 入力されたゼーベック係数 $S$ と温度 $T$ を基に、SPBモデルにおける規格化フェルミ準位 $\eta = E_F/k_B T$ を二分法(Bisection Method)により数値的に計算します。
  3. ローレンツ数の計算: 計算された規格化フェルミ準位 $\eta$ を用いて、SPBモデルに基づくローレンツ数 $L$ を算出します。
  4. 電子熱伝導率の計算: 電気伝導率 $\sigma$ と温度 $T$、計算されたローレンツ数 $L$ から、電子熱伝導率 $k_e = L \sigma T$ を計算します。
  5. キャリア濃度の計算: 有効質量 (meff) と温度 $T$ から有効状態密度 $N_C$ を算出し、規格化フェルミ準位 $\eta$ を用いてキャリア濃度 $N_e$ を計算します。
  6. 結果の出力: 計算された規格化フェルミ準位、フェルミ準位、キャリア濃度、ローレンツ数、電子熱伝導率を元の入力データとともに新しいExcelファイルに出力します。
  7. グラフ表示: 計算結果(キャリア濃度 $N_e$ とゼーベック係数 $S$ の温度依存性、ローレンツ数 $L$ の温度依存性、キャリア濃度 $N_e$ に対する電気伝導率 $\sigma$ とゼーベック係数 $S$ およびローレンツ数 $L$ の関係)をグラフとして表示します。

このプログラムは、熱電材料の電子輸送特性をSPBモデルに基づいて解析し、ローレンツ数を実験的に決定することで、格子熱伝導率などを分離・評価する際に役立ちます。


electrical/S2m.py

S2m.py は、熱電材料の温度 ($T$)、ゼーベック係数 ($S$)、キャリア濃度 ($N$) の測定データから、有効質量 ($m_{eff}$) を推定し、その妥当性を検証するPythonスクリプトです。このプログラムは、Snyder et al. の研究論文に基づいた経験的または理論的な近似式を用いて有効質量を計算します。

主な機能は以下の通りです。

このプログラムは、熱電材料の物理特性評価、特に有効質量の評価において、実験データを基にした迅速な解析を可能にします。


electrical/schottky.py

`schottky.py` は、ショットキーダイオードの電流-電圧(IV)特性をシミュレーションするためのPythonスクリプトです。このプログラムは、さまざまなショットキーモデル(単純拡散、拡散、ショットキー障壁低下、トンネル、熱電子電界放出)を用いてIV特性を計算し、結果をプロットします。物理定数や材料パラメータをコマンドライン引数として受け取り、順方向および逆方向バイアスでの電流を数値的に解きます。

関連リンク: `schottky_usage`


electrical/Seebeck2.py

Seebeck2.py は、ゼーベック(Seebeck)係数と温度から材料の有効質量を推定するためのPythonスクリプトです。本プログラムは、G.J. Snyder, A. Pereyra and R. Gurunathan, Adv. Funct. Mater. 32, 2112772 (2022) の論文に記載された手法に基づいて開発されています。

electrical/Seebeck_scan.py

`Seebeck_scan.py` は、熱電材料のゼーベック係数を、フェルミ準位、キャリア濃度、温度、有効質量といった様々な物理パラメータをスキャンしながら計算し、結果をプロットするスクリプトです。

散乱因子 $r$ の異なる値に対して以下のスキャンモードをサポートしています。

計算はFermi-Dirac積分に基づき、キャリアタイプ(電子または正孔)を指定できます。結果はCSVファイルとして保存することも可能です。

散乱因子 $r$ はキャリアの緩和時間 $\tau(E)$ がエネルギー $E$ の $(r-1/2)$ 乗に比例することで定義されます。


electrical/Seebeck_ZT.py

`Seebeck_ZT.py` は、熱電輸送特性を計算するためのモジュールです。ゼーベック係数 ($S$)、ローレンツ因子 ($L$)、電気伝導度 ($\sigma$)、移動度 ($\mu$)、電子熱伝導度 ($\kappa_e$)、パワーファクター ($PF$)、およびZT因子を計算し、キャリア濃度依存性をプロットおよびExcelファイルに保存します。

このモジュールは、3次元放物線バンドモデルと緩和時間近似($\tau(E) \propto E^{r-1/2}$)に基づき、フェルミ・ディラック積分を用いた厳密な輸送積分によって熱電輸送特性を評価します。コマンドライン引数を通じて、温度 ($T$)、有効質量 ($m^*$)、参照移動度 ($\mu_{\text{ref}}$)、格子熱伝導率 ($\kappa_{\text{latt}}$)、キャリア種別、散乱因子 $r$ のリストなどを設定できます。


electrical/T_distrib.py

T_distrib.py は、積層型熱電 (TE) スタックの1次元定常状態温度プロファイルを計算するPythonプログラムです。このプログラムは、スタックを構成する複数の層(電極、TE半導体、界面)を考慮し、外部環境との熱交換モデルに基づいて温度分布を予測します。

主な機能は以下の2つのモードで提供されます。

  1. delta モード:

このモードでは、スタックの上面と下面における表面熱抵抗を、明示的な空気境界層(厚さ delta_top / delta_bottom、熱伝導率 k_air)としてモデル化します。これは、単純な熱抵抗ネットワークとして扱われ、総熱抵抗とそこを流れる熱流束を計算します。

  1. conv_rad モード:

このモードでは、表面熱抵抗を自然対流と熱放射の物理モデルに基づいて予測します。

このモードでは、内部スタックと外部環境(空気、放射環境)との間で、熱流束が平衡するような表面温度を数値的に求めます。

両モード共通で、内部スタックは以下の層で構成されます。
上部電極 / 界面1/2 / TE半導体 / 界面2/3 / 下部電極

プログラムは、以下の情報を標準出力に出力します。

また、温度プロファイルを示す図をPNG画像ファイルとして保存します。この図は、物理スケールと模式(変形)スケールの2つのグラフが縦に並べられた形式で表示されます。

現在のプログラムのバグについて:
main 関数内の delta モードの処理が2度記述されており、2度目の呼び出しにおいて compute_piecewise_profile 関数の戻り値の数が誤って指定されています。これにより、delta モードでプログラムを実行すると ValueError: too many values to unpack エラーが発生し、正常に動作しません。この技術ドキュメントでは、バグが修正された場合の delta モードの期待される動作について記述します。


electrical/weighted_mobility.py

weighted_mobility.py は、電気伝導率 ($\sigma$) とゼーベック係数 ($S$) から、加重移動度 ($\mu_w$) および加重キャリア濃度 ($n_w$) を計算するためのPythonスクリプトです。このプログラムは、半導体材料の電気的輸送特性解析に利用され、Snyderの近似式、または自由電子モデルに基づいた近似解および厳密解を用いて加重移動度を算出します。

主な機能は以下の通りです。

このスクリプトは、材料の輸送特性を解析し、キャリアの移動度や濃度を実験データから逆算する際に有用です。


Launcher/Launcher.py

Launcher.py は、Pythonで記述されたGUIベースのアプリケーションランチャーです。このプログラムの主要な目的は、ユーザーが事前に定義したアプリケーションやスクリプトを、使いやすいグラフィカルインターフェースを通じて簡単に起動できるようにすることです。

主な機能は以下の通りです。

このプログラムは、特定のプロジェクト環境下で複数のツールやスクリプトを効率的に管理・実行する際のハブとしての役割を果たすことを目的としています。

Launcher実装
default.log: 0-010-ExternalApps.ini: [Button1.External applications]
default.log: 0-010-ExternalApps.ini: [Button2.External applications]
default.log: 0-010-ExternalApps.ini: [Button4.External applications]
default.log: 0-010-ExternalApps.ini: [Button5.External applications]
default.log: 0-010-ExternalApps.ini: [External applications].select
default.log: 3-001-RButton.ini: [RButton_edit_Launcher_py]
default.log: 3-001-RButton.ini: [TButton5]
default.log: 3-001-RButton.ini: [TButton].onload
default.log: 3-001-RButton.ini: [TButton_Launcher_Electrical]
default.log: 5-021-COE.ini: [Development_COE_Launcher_COE]
default.log: 5-021-COE.ini: [Development_COE_Launcher_MDX]
default.log: 5-021-COE.ini: [Development_COE_Launcher_tutorial]

Launcher/tkLauncherApp.py

tkLauncherApp.py は、PythonのTkinterライブラリをベースとしたGUIアプリケーションフレームワークである tklib.tkgui.tkapplication_gui.tkApplication_GUI を拡張したクラスです。このライブラリの主な目的は、スクリプトの実行、アプリケーションの設定管理、ユーザーとの対話、ファイルシステム操作などを容易にするための、多機能なランチャーアプリケーションの基盤を提供することです。

主な機能は以下の通りです。

このライブラリは、複雑なPythonスクリプトや外部アプリケーションをGUIから起動・管理したい開発者にとって、強力なツールとなることを目指しています。

Launcher実装
default.log: 3-001-RButton.ini: [RButton_edit_tkLauncherApp_py]

math_/sympy_examples.py

提供された sympy_examples.py のソースコードは現在空であるため、このプログラムは特定の機能を持たず、実行しても何も処理を行いません。もし将来的に sympy ライブラリを活用した数式処理、シンボリック計算、方程式の解法、微積分、線形代数などのロジックが追加された場合、その目的が明確になり、多岐にわたる数学的問題の解決に貢献することが期待されます。

math_/sympy_with_test.py

本プログラム sympy_with_test.py は、Pythonのシンボリック計算ライブラリ SymPy を用いて、ユーザーがコマンドラインから指定した数式に対して微分、積分、またはテイラー展開の処理を実行し、その結果を数値計算による近似値と比較して標準出力に表示するスクリプトです。

目的:
SymPy によるシンボリックな数式処理の結果が、NumPy を用いた数値計算による近似値とどの程度一致するかを視覚的に検証し、理解を深めることを目的としています。

主な機能:

解決する課題:
抽象的なシンボリック計算の結果と、具体的な数値計算の挙動との関連性を、具体的な例を通して理解する手助けとなります。特に、数値微分の近似精度や、テイラー展開の近似範囲における誤差の振る舞いを観察できます。


multimedia/split_audio_with_overlap.py

`split_audio_with_overlap.py` は、指定された音声ファイルを、指定された最大サイズとオーバーラップ時間に基づいて複数のチャンクに分割し、それぞれを個別の音声ファイルとして保存するスクリプトです。これにより、大容量の音声ファイルを管理しやすいサイズに分割したり、処理負荷を軽減したりすることが可能になります。
Launcher実装
default.log: 5-026-AI20260128.ini: [split_audio_execute]
default.log: 9-190-AI.ini: [split_audio_execute]
default.log: 9-200-textbook.ini: [split_audio_execute]

multimedia/to_audio.py

to_audio.py は、様々な形式の音声ファイルや動画ファイルから音声トラックを抽出し、指定されたオーディオ形式に変換して出力するためのPythonスクリプトです。主に pydub ライブラリと ffmpeg を利用して、柔軟なファイル変換機能を提供します。

主な機能は以下の通りです。

このプログラムは、例えば動画ファイルからBGMのみを抽出したい場合や、異なるデバイスで再生するためにオーディオファイルの形式や品質を変換したい場合などの課題を解決します。

Launcher実装
default.log: 5-026-AI20260128.ini: [audio_convert_execute]
default.log: 9-190-AI.ini: [audio_convert_execute]
default.log: 9-200-textbook.ini: [audio_convert_execute]

optimize/optimize_ga_swarm_remc.py

optimize_ga_swarm_remc.py は、複数の最適化アルゴリズム(遺伝的アルゴリズム、粒子群最適化、レプリカ交換モンテカルロ法、Nelder-Meadシンプレックス法)を使用して、Ackley関数をベースとした多次元関数を最小化するためのPythonスクリプトです。このプログラムは、特にグローバル最適化問題を解決することを目的としており、異なるアルゴリズムの性能比較や、特定の問題に対する最適な探索戦略の評価に役立ちます。

主な機能は以下の通りです。

このプログラムは、複雑な多峰性を持つ関数(複数の局所最適解を持つ関数)のグローバル最適解を見つけるという課題に取り組んでいます。


optimize/optimize.py

optimize.py は、勾配降下法、共役勾配法、ニュートン法、シンプレックス法といった様々な数値最適化アルゴリズムを用いて、2変数の目的関数に対する最小値を探索するPythonプログラムです。主に、与えられた初期値から出発して関数の最小点を見つけることを目的としています。

主な機能は以下の通りです。

このプログラムは、多変数関数の最小化問題に取り組む際の強力なツールとして機能し、異なる最適化手法の挙動を比較検討するのに役立ちます。


PES/BESearch.py

BESearch.py は、X線光電子分光法(XPS)で得られた結合エネルギーデータに基づき、測定されたエネルギー値に対応する可能性のある元素と電子準位を検索するためのPythonプログラムです。プログラムの冒頭にある3重引用符で囲まれた文字列(docstring)は、このプログラムが「光電子分光法のための可能な元素と準位を検索する」ことを説明しています。

主な機能:

解決する課題:
XPSスペクトルから得られたピークの結合エネルギー値が、どの元素のどの電子準位に由来するかを迅速に同定する作業を支援します。特に、複数の元素や準位が近い結合エネルギーを持つ場合に、候補を絞り込むのに役立ちます。

Launcher実装
default.log: 7-051-PES.ini: [Button1.PES]

PES/ef_fit_usage.md

ef_fit.py は、光電子分光 (PES) スペクトルデータを解析するためのPythonプログラムです。このプログラムは、フェルミ・ディラック (Fermi-Dirac) 関数と線形状態密度 (DOS) を組み合わせた物理モデルを、ガウス型の装置関数で畳み込み、測定されたスペクトルにフィッティングすることで、モデルのパラメータを決定します。

主な機能と解決する課題は以下の通りです。

  1. PESスペクトル解析: 測定されたPESスペクトルに対し、物理モデル(フェルミ関数、DOS、装置関数)に基づいたフィッティングを行います。
  2. パラメータ決定: フィッティングにより、フェルミ準位 (EF)、バックグラウンド (BG)、装置関数幅 (w)、信号強度 (I0)、DOSの線形傾き (DOSa) といった重要な物理パラメータを最適化して決定します。
  3. 柔軟なモード:
  1. パラメータ管理: パラメータはCSVファイル ([入力ファイル名]_parameters.csv) で管理され、プログラム実行時に読み込まれます。コマンドライン引数で上書きすることも可能です。これにより、実験条件に応じたパラメータの再利用や微調整が容易になります。
  2. 多様な入力ファイル形式: .csv, .xlsx, .txt (特定のHAXPESデータ形式またはシンプルなXY形式) のスペクトルデータを読み込むことができます。
  3. リアルタイムプロット: フィッティングプロセス中のモデルスペクトルの変化をリアルタイムで視覚化し、最適化の収束状況を把握できます。

このプログラムは、PESスペクトルの定量的な解析を支援し、材料の電子状態に関する物理的洞察を得ることを目的としています。


PES/fit_vbo_xps.py

fit_vbo_xps.py は、XPS (X-ray Photoelectron Spectroscopy) の価電子帯スペクトルを解析するためのPythonスクリプトです。主な目的は、フィルムと基板が混在するサンプルの価電子帯スペクトルを、純粋なフィルムおよび純粋な基板の参照スペクトルを用いてフィッティングすることです。これにより、各成分の寄与度、およびそれぞれのエネルギーシフトを決定し、最終的に価電子帯オフセット (VBO: Valence Band Offset) を算出します。

このプログラムは以下の課題を解決します。

  1. 混合スペクトルの成分分離: フィルムと基板の混合スペクトルから、それぞれの成分の形状と強度を特定します。
  2. エネルギーシフトの定量化: 測定された混合スペクトルと参照スペクトル間の結合エネルギー軸におけるずれ(エネルギーシフト)を独立して定量化します。
  3. 多項式バックグラウンドの除去: スペクトルに含まれるバックグラウンド成分を多項式でモデル化し、フィッティングから除去します。
  4. 価電子帯オフセットの算出: 参照スペクトルのVBM (Valence Band Maximum) 位置が既知の場合、フィッティングで得られたエネルギーシフトを用いてVBOを算出します。
Launcher実装
default.log: 7-051-PES.ini: [Button7.PES]

PHYSBO/bayes_gp_gui_shimizu_usage.md

bayes_gp_gui_shimizu.py は、ベイズ最適化とガウス過程回帰を組み合わせた実験計画・最適化プロセスをグラフィカルユーザーインターフェース (GUI) で支援するPythonプログラムです。ユーザーはデータファイル(ExcelまたはCSV)を読み込み、ベイズ最適化のさまざまなパラメータ(プローブ数、探索方法、取得関数、乱数シードなど)を設定し、最適化計算を実行できます。

主な機能は以下の通りです。

  1. データ入力: Excel (.xlsx) または CSV (.csv) 形式のデータファイルを読み込みます。
  2. パラメータ設定: ベイズ最適化とガウス過程回帰に必要な各種パラメータをGUI上で直感的に設定できます。
  1. 計算実行: 設定したパラメータに基づいて、内部の計算エンジン (bayes_gp_plain_shimizu.py) を呼び出し、ベイズ最適化とガウス過程回帰を実行します。
  2. 結果出力: 予測結果をExcelファイルに、計算過程やモデルの状態をNumPyの .npz 形式で保存します。
  3. グラフ設定: グラフのサイズやフォントサイズに関する設定が可能です。
  4. 多言語対応: 英語と日本語に対応しており、GUIの表示言語を切り替えることができます。
  5. 設定の保存: ユーザーが設定したパラメータは、次回起動時も利用できるよう自動的に設定ファイルに保存されます。

このプログラムは、実験やシミュレーションにおいて、効率的に最適解を見つけるための次なる試行点を提案する「アクイジション」プロセスを視覚的に管理し、研究開発の効率化に貢献します。


PHYSBO/bayes_gp_gui.py

bayes_gp_gui.py は、ベイジアン最適化やガウス過程 (Gaussian Process) に基づくデータ解析を行うバックエンドプログラム bayes_gp_plain2.py のためのグラフィカルユーザーインターフェース (GUI) アプリケーションです。このプログラムは、Pythonの tkinter ライブラリを使用して構築されており、ユーザーが直感的に入力ファイルの選択、解析パラメータの設定、および解析の実行を行えるように設計されています。

主な機能は以下の通りです。

このプログラムは、コマンドラインインターフェース (CLI) に不慣れなユーザーでも、ベイジアン最適化の手法を容易に利用できるようにすることを目的としています。

Launcher実装
default.log: 5-028-physbo.ini: [Button1.PHYSBO]
default.log: 5-028-physbo.ini: [Button20.PHYSBO]
default.log: 5-028-physbo.ini: [PHYSBO].select
default.log: 8-030-ELNote.ini: [Button4.ELNote]

PHYSBO/bayes_gp_plain_shimizu.py

bayes_gp_plain_shimizu.py は、入力データに基づいてガウス過程モデルを構築し、ベイズ最適化を通じて目的関数の最適値を探索するプログラムです。特に、高価な実験やシミュレーションの回数を減らしつつ、効率的に最適解を見つけ出すことを目的としています。

主な機能は以下の通りです。

  1. データ読み込みと前処理: ExcelまたはCSV形式の入力ファイルから記述子(説明変数)と目的関数(応答変数)を自動で識別し、読み込みます。ヘッダーの制御コードによって、最大化、最小化、特定値への収束などの最適化モードを指定できます。また、必要に応じて記述子の標準化を行います。
  2. ガウス過程モデルの構築: 既存の観測データ(訓練データ)を用いてガウス過程モデルを構築し、未観測の領域における目的関数の予測平均値と不確実性(標準偏差)を推定します。
  3. ベイズ最適化の実行: PHYSBO ライブラリを利用し、構築したガウス過程モデルと指定された獲得関数(Expected Improvement: EI, Probability of Improvement: PI, Thompson Sampling: TS)に基づいて、次に評価すべき最適な候補点(アクション)を提案します。
  4. 逐次最適化: ユーザーが指定した繰り返し回数に応じて、ベイズ最適化によって提案された最良の候補点を新たな訓練データとして自動的に追加し、モデルを再学習・更新する機能があります。これにより、最適化プロセスを継続的に改善し、より良い解を探索することが可能になります。
  5. 結果の出力: 予測された目的関数の平均値、標準偏差、獲得関数値などの詳細な結果を Excel 形式で出力します。また、PHYSBO の探索履歴も .npz 形式で保存されます。
  6. 結果の可視化:
Launcher実装
default.log: 5-028-physbo.ini: [Button2.PHYSBO].help

PHYSBO/bayes_gp_plain.py

bayes_gp_plain.py は、PHYSBOライブラリを使用して、ガウス過程に基づくベイズ最適化を実行し、最適な材料設計パラメータやプロセス条件を効率的に探索することを目的としたプログラムです。

主な機能は以下の通りです。

このプログラムは、多次元の設計空間において、実験やシミュレーションの評価コストが高い場合に、効率的に最適解を見つけ出すための強力なツールを提供します。


Quantum/benzene.py

`benzene.py は、ベンゼン分子(6炭素環)の電子構造をHückel近似法を用いて解析し、その結果を可視化するPythonスクリプトです。このスクリプトは、Hückel行列を定義し、その固有値問題を解くことで分子軌道のエネルギー準位と波動関数を計算します。計算されたエネルギー準位はソートされ、その縮重度が特定されます。その後、ガウス型ブロードニングを適用して状態密度(DOS)を計算します。最終的に、matplotlib` ライブラリを使用して、計算された電子準位と状態密度の両方を一つの図にプロットし、ベンゼン分子の電子状態を視覚的に表現します。

Quantum/bose_condensation.py

このドキュメントは、Pythonプログラム bose_condensation.py のソースコードを解析し、その機能、構造、および使用方法について説明します。

Quantum/draw_band_fs.py

draw_band_fs.py は、固体の電子バンド構造、状態密度 (DOS)、フェルミ準位 (EF)、フェルミ面 (FS)、および有効質量をシミュレートし、可視化するためのPythonプログラムです。このプログラムは、1次元 (1D)、2次元 (2D)、3次元 (3D) の結晶に対応し、以下の3つの単純な物理モデルをサポートしています。
  1. 自由電子モデル (free): 相互作用のない電子ガス。
  2. タイトバインディングモデル (tb): 最近接ホッピングのみを考慮した単純なモデル。
  3. 準自由電子モデル (nfe): 自由電子モデルに弱い周期ポテンシャルを追加したモデル。

主な機能

解決する課題

このプログラムは、物性物理学における電子構造の基本的な概念(バンド構造、フェルミ準位、状態密度、フェルミ面、有効質量など)を、具体的な計算と視覚化を通じて理解するための教育的ツールとして設計されています。複雑な第一原理計算を行うことなく、これらの概念の物理的意味やモデル依存性を直感的に把握することを支援します。


Quantum/free_electron_band_usage.md

このプログラムは、自由電子モデルに基づいてシリコン(Si)などの結晶における電子のエネルギーバンド構造(E-k曲線)を計算し、グラフとして可視化するPythonスクリプトです。特定のk点経路(ブリルアンゾーン内の対称点 W, L, $\Gamma$, X, K)に沿ったエネルギー固有値を計算し、バンド図を描画することで、結晶中の電子のエネルギー状態を視覚的に把握するという課題を解決します。

Quantum/H1s_HF_LDA.py

このモジュールは、H-like 1s軌道のエネルギーレベルを計算するために、1s動径関数とスレーターのX-αポテンシャルを使用します。ハートリー・フォック・スレーター(HFS)法の基本的な概念に基づき、電子間の相互作用を交換ポテンシャルで近似して扱います。動径関数の指数係数 `ka や電子数 Ne` などを変分法で最適化し、全エネルギーを最小化する計算も可能です。

Quantum/interpolate3d_fft.py

- ファイル名: `interpolate3d_fft.py`

3次元周期データのFFTを用いた補間処理を提供します。

このモジュールは、フーリエ変換とゼロパディングを利用して、3次元空間に周期的に配置された離散データを高解像度化するための関数を含みます。主に科学技術計算や画像処理の分野で、データの補間やアップサンプリングに利用されます。

3次元の等間隔周期データをFFT(高速フーリエ変換)を用いて補間し、高解像度化すること。
関連ドキュメントとして `interpolate3d_fft_usage` が参照されています。


Quantum/interpolate_fft.py

このスクリプトは、FFT(高速フーリエ変換)を用いて周期関数の補間を実行します。

入力ファイルから読み込んだデータ、または内部で生成したデータに対して、FFTを適用して周期関数の補間を行い、補間されたデータと元のデータ、必要であれば厳密な関数をプロットして比較します。


Quantum/kpath_pymatgen.py

`pymatgen` を用いて結晶構造の高対称k点経路を計算し、表示するスクリプトです。

入力された結晶構造のBravais格子に基づいて高対称k点経路を計算し、表示します。


Quantum/kpath_seekpath.py

'kpath_seekpath.py' は、与えられた結晶構造ファイル(CIF形式)から、バンド構造計算のための標準的なk点パス(高対称点経路)と高対称点の分率座標を決定し、標準出力に表示するPythonスクリプトです。

このプログラムの主な機能は以下の通りです。

  1. 結晶構造の読み込み: CIFファイルから結晶構造情報を読み込みます。
  2. 原始セルの取得: 読み込んだ構造から原始セル(Primitive Cell)をPymatgenライブラリを使用して取得します。
  3. 高対称k点パスの決定: 'seekpath' ライブラリを用いて、原始セルの対称性に基づいた標準的な高対称k点パスを自動的に決定します。
  4. 高対称点の座標表示: 決定された高対称点の分率座標を標準出力に表示します。
  5. k点パスの表示: 各高対称点を結ぶパスを標準出力に表示します。

これにより、ユーザーはDFT(密度汎関数理論)などの計算手法でバンド構造を計算する際に必要なk点パス情報を簡単に得ることができます。


Quantum/kronig_penney_refactored.py

矩形ポテンシャルを用いたKronig-Penneyモデルに基づき、電子のエネルギーバンド構造、波動関数、およびデルタ関数グラフを計算しプロットするPythonスクリプト。

Quantum/kronig_penney.py

`kronig_penney.py` は、Kronig-Penneyモデルを用いて1次元のバンド計算を実行するPythonスクリプトです。このプログラムは、半導体の電子バンド構造を矩形ポテンシャルでモデル化し、その結果をグラフ表示、バンド図プロット、または波動関数プロットのいずれかのモードで出力します。
Launcher実装
default.log: 7-140-Simulations.ini: [Button4.Simulations]

Quantum/QD3D.py

本スクリプト `QD3D.py` は、量子ドット (Quantum Dot) におけるエネルギー準位計算および関連関数のプロットスクリプトです。

Quantum/refineE_schrodinger1d.py

'refineE_schrodinger1d.py' は、1次元シュレーディンガー方程式のエネルギー固有値 $E$ を、与えられた初期推定値からBrent法を用いて高精度に精密化するPythonプログラムです。

主な機能は以下の通りです。

  1. 残差関数の定義: 外部モジュール 'schrodinger1d' の 'solve_schrodinger' 関数を利用して、特定のエネルギー $E$ に対するシュレーディンガー方程式を解き、計算された波動関数 $\psi(x)$ の終端 $x=L$ における値 $\psi(L)$ を残差として返します。
  2. 符号反転区間の自動探索: Brent法が要求する、残差関数 $\psi(L)$ が符号を反転させるエネルギー区間 $[E_{low}, E_{high}]$ を、与えられた初期推定値 $E_0$ から自動的に探索します。
  3. Brent法による根の探索: 'scipy.optimize.brentq' 関数を使用して、残差関数 $\psi(L; E) = 0$ となるエネルギー $E$ を高精度に計算します。これにより、物理的な境界条件を満たす固有値 $E$ が特定されます。
  4. 結果の出力: 精密化された固有値 $E$ を標準出力に表示するほか、計算の詳細(初期値、探索区間、最終固有値、反復回数など)を 'refineE.csv' ファイルに追記します。

このプログラムは、1次元シュレーディンガー方程式の固有値問題を数値的に解く際の、高精度な固有値探索という課題を解決します。

Launcher実装
default.log: 7-140-Simulations.ini: [Button8.Simulations]

Quantum/schrodinger1d.py

'schrodinger1d.py' は、1次元時間独立シュレーディンガー方程式をシューティング法とVerlet積分を用いて数値的に解くPythonプログラムです。主に量子力学における粒子の波動関数 $\psi(x)$ とその確率密度 $|\psi(x)|^2$ を計算し、結果をグラフ表示およびExcelファイルに出力します。

主な機能:

解決する課題:
このプログラムは、量子系の波動関数を数値的にシミュレートし、束縛状態のエネルギー固有値や波動関数の形を探索するための基本的なツールを提供します。特に、シューティング法を用いることで、適切なエネルギーがどのような振る舞いを導くかを視覚的に理解することができます。

Launcher実装
default.log: 7-140-Simulations.ini: [Button7.Simulations]

Quantum/tb1d.py

本プログラムは、量子力学や固体物理学における1次元タイトバインディング(強結合)モデルの電子状態を数値的にシミュレーションするためのツールです。

主な機能として、指定された格子サイト数やパラメータに基づき、実空間でのハミルトニアン行列を構築します。その後、行列の対角化を行うことで系のエネルギー固有値(バンド構造)を計算し、波数空間におけるエネルギー分散関係や状態密度(DOS)を算出・可視化します。
これにより、周期ポテンシャル中の電子の振る舞いや、バンド幅に対するホッピングパラメータの影響を直感的に理解するという課題を解決します。ソースコード内に説明を記述する際は、3重引用符によるdocstring形式が用いられていることが想定されます。


Quantum/conf.py

以下のセクションでは、tkPlot3d モジュール内の各関数について自動生成されたドキュメントを提供します。

::: py:module:: tkPlot3d
:members:
:undoc-members:
:show-inheritance:
```

---

説明:

この設定とMarkdownファイルを使用することで、Pythonコードの変更なしに、そのDocstringを基にした高品質なSphinxドキュメントをMarkdown形式で生成できます。


Quantum/tkWavefunction_H_usage.md

水素原子の波動関数とエネルギー準位の計算を行うモジュールです。

関連リンク: :doc:tkWavefunction_H_usage


Quantum/wavefunction2D.py

本プログラムは、様々な物理モデルにおける波動関数を計算し、2次元(および1次元・3次元)で可視化するPythonスクリプトです。

主な機能として、以下の3つのモデル(モード)の波動関数を計算できます。

  1. 平面波モデル (pw): 自由電子の平面波。
  2. 量子箱モデル (qbox): 無限ポテンシャル障壁によって区切られた量子ドット(量子箱)。
  3. 水素原子モデル (H): 水素様原子の電子軌道(s軌道、p軌道、d軌道など)。

解決する課題としては、量子力学における波動関数の空間的な広がりや位相(実部と虚部)、確率密度を直感的に理解しやすくするための可視化(グラフ化)を提供することです。周期境界条件を考慮したブロッホの定理に基づく波数の変調もシミュレートできます。


regression/arrhenius_plot_argparse.py

目的:

温度と物理量(例えば伝導度やキャリア密度など)の測定データから、アレニウスプロットを作成し、多項式モデルによるフィッティングと活性化エネルギーの評価を行うプログラムです。

主な機能:

解決する課題:
熱活性化過程における実験データから活性化エネルギーを算出する際の、データ変換、誤差評価、および温度依存モデル(パーコレーションモデルなどの非単純なアレニウスモデル)への適応を自動化し、視覚的な評価と定量的な解析を同時に実現します。


regression/gp_simulation_animation_tkbo.py

### 目的

このPythonスクリプトは、 `tkbo ライブラリを使用して1次元のBayesian Optimizationシミュレーションをアニメーションとして視覚化することを目的としています。真の目的関数 f_true を定義し、様々なモデル(ガウス過程回帰、PhysBO、ランダムなど)とAcquisition関数(UCB、EI、PI、Steinなど)を試すことができます。シミュレーションの進行状況は matplotlib` を用いてアニメーションとして描画され、GIFファイルとして保存したり、リアルタイムで表示したりできます。

主な機能

非標準ライブラリ

このスクリプトは以下の非標準ライブラリに依存しています。

実行例

以下は、このスクリプトの典型的な実行例です。

```bash
python gp_simulation_animation_tkbo.py --mode ucb --model sklearn_gpr --nmaxiter 120 --save 0 --show 1
python gp_simulation_animation_tkbo.py --mode ei --model sklearn_gpr --nmaxiter 120 --save 0 --show 1
python gp_simulation_animation_tkbo.py --mode stein --model physbo_gp --nmaxiter 120 --save 0 --show 1
python gp_simulation_animation_tkbo.py --model physbo --acquisition EI --nmaxiter 120 --save 0 --show 1
python gp_simulation_animation_tkbo.py --model random --nmaxiter 120 --save 0 --show 1
python gp_simulation_animation_tkbo.py --model random --nmaxiter 20 --outfile random.gif
```


regression/lsq-general.py

lsq-general.py は、与えられたデータセット $ (x, y) $ に対して、複数の基底関数を用いた線形最小二乗法により曲線フィッティングを行うPythonプログラムです。

主な機能と解決する課題は以下の通りです。

このプログラムは、実験データや観測データに特定の数学的モデルを当てはめたい場合や、データの傾向を分析したい場合に有用です。


regression/lsq-polynomial.py

lsq-polynomial.py は、与えられた数値データに対して多項式による最小二乗フィッティングを実行するPythonスクリプトです。このプログラムは、Excelファイルから2列のデータを読み込み、指定された次数の多項式でデータを近似します。計算された多項式の係数はコンソールに表示され、元のデータとフィッティング曲線を比較するグラフがリアルタイムで可視化されます。これにより、実験データや観測データから特定の傾向を抽出し、その背後にある関係を多項式モデルとして表現するデータ解析タスクを支援します。

regression/lsq_func_error_argparse.py

lsq_func_error_argparse.py は、一般的な非線形最小二乗フィッティングを実行するためのPythonスクリプトです。このプログラムは、ユーザーが定義したモデル関数を使用して、観測データに最もよく適合するパラメータを特定します。主な機能と解決する課題は以下の通りです。

目的:
観測データに対して、ユーザーがPythonの文字列として定義した任意の非線形モデル関数を最小二乗法でフィッティングし、モデルパラメータの最適値、その標準誤差、およびモデル予測の信頼区間を推定すること。

主な機能:

解決する課題:

Launcher実装
default.log: 5-031-Fitting.ini: [Button16.Fitting]

regression/mlsq_error_argparse.py

本プログラム D:/git/sphinx/tkProg/source/regression/mlsq_error_argparse.py は、指定された次数の多項式を用いた最小二乗法による回帰分析を実行し、その予測の不確実性を可視化するツールです。

入力されたデータセットに対して多項式フィッティングを行い、得られた係数やその分散共分散行列から、モデルの予測における各種不確実性(パラメータの不確実性、残差分散を含めた予測不確実性、測定ノイズを含めた総合的な不確実性)を算出します。
計算結果はExcelファイルとして出力され、同時に matplotlib を用いたグラフとして画面上に可視化されます。これにより、フィッティング曲線の妥当性や、予測値が持つ誤差範囲を視覚的かつ定量的に評価するという課題を解決します。
なお、コード内の関数定義直後には、3重引用符で囲まれたdocstringが記述されており、各関数の入出力仕様が定義されています。

Launcher実装
default.log: 5-031-Fitting.ini: [Button4.Fitting]

regression/ridge_gaussian_basis_usage.md

ridge_gaussian_basis.py は、与えられた2次元データ ($x, y$) に対して、ガウス基底関数を用いたリッジ回帰を実行し、データのフィッティングモデルを構築するプログラムです。このプログラムは、入力としてExcelファイルからデータを読み込み、コマンドライン引数によってガウス基底関数の数、その幅、およびリッジ正則化の強度を調整できます。

主な機能は以下の通りです。

このプログラムは、ノイズを含むデータや単純な多項式では表現しにくい複雑な形状のデータを、柔軟なガウス基底関数と正則化手法を組み合わせることで、高精度かつ安定的に近似するという課題を解決します。


regression/ridge_kernel_gaussian.py

ridge_kernel_gaussian.py は、ガウスカーネルを使用したカーネルリッジ回帰を実行するPythonスクリプトです。与えられた入力データ($x, y$ペア)に対して、ガウスカーネルを用いて非線形な回帰モデルを構築し、データへのフィッティングを行います。主な機能は以下の通りです。
  1. データ読み込み: Excelファイルから$x$と$y$のデータセットを読み込みます。
  2. カーネルリッジ回帰: 読み込んだデータを用いて、ガウスカーネルとリッジ正則化を適用したカーネルリッジ回帰モデルを訓練し、係数$c_i$を計算します。
  3. 予測: 訓練されたモデルに基づき、入力データの範囲内で補間された$x$値に対する$y$の予測値を計算します。
  4. 結果の可視化: 入力データ、フィッティング曲線、および計算された係数$c_i$をmatplotlibを使ってグラフにプロットし、表示します。
  5. パラメータ設定: ガウスカーネルの幅 ($w_G$) とリッジ正則化パラメータ ($\lambda$) をコマンドライン引数で指定できます。

このプログラムは、線形モデルでは表現が難しい非線形な関係を持つデータに対して、柔軟なフィッティングモデルを構築し、視覚的に結果を確認することを目的としています。


regression/scikit_regressions.py

scikit_regressions.py は、Excelファイルから読み込んだ数値データに対して、scikit-learn ライブラリが提供する多様な回帰モデルを適用し、その性能を評価・可視化するためのPythonプログラムです。

主な機能:

解決する課題:
このプログラムは、特定のデータセットに対してどの回帰モデルが最も適しているかを短時間で評価し、モデルの性能を視覚的に分析することを支援します。また、未測定のデータポイントに対する予測値の算出も可能にし、様々な分野での意思決定に役立ちます。


regression/scikit_regressions.py

scikit_regressions.py は、Excelファイルから読み込んだ数値データに対して、scikit-learn ライブラリが提供する多様な回帰モデルを適用し、その性能を評価・可視化するためのPythonプログラムです。

主な機能:

解決する課題:
このプログラムは、特定のデータセットに対してどの回帰モデルが最も適しているかを短時間で評価し、モデルの性能を視覚的に分析することを支援します。また、未測定のデータポイントに対する予測値の算出も可能にし、様々な分野での意思決定に役立ちます。


spectrum_/convolution_usage.md

convolution.csv ファイルは、時系列データやスペクトルデータなどの2Dデータセットに対して、畳み込み(コンボリューション)による平滑化処理を適用した結果を格納するデータファイルです。このファイル自体は実行可能なプログラムではありませんが、畳み込み処理の入力、その処理で得られた出力、およびその関係性を示すデータ構造を定義しています。

主な機能としては、生データ (y(raw)) に含まれるノイズを低減し、より滑らかな傾向 (y(smooth)) を抽出することです。これにより、データの背後にある本質的なパターンやトレンドを視覚的に捉えやすくし、データの解釈を容易にするという課題を解決します。y(smooth) の値が y(raw) が0の領域でも非ゼロになっているのは、畳み込みカーネルが特定の幅を持ち、周囲のデータ点の影響を受けるためです。


spectrum_/deconvolution.py

`deconvolution.py` は、1次元スペクトルデータに対し、ガウス型またはローレンツ型の装置関数(フィルタ関数)を用いて逆畳み込み演算を実行するPythonプログラムです。主に、分光データなどの測定結果から装置による広がり効果を除去し、真のスペクトル形状を回復することを目的としています。

複数の逆畳み込み手法をサポートしており、コマンドライン引数を通じて選択できます。また、結果のグラフ表示とExcelファイルへの出力機能も備えています。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button1.Spectrum Analysis]
default.log: 5-041-SpectrumAnalysis.ini: [Deconvolution_edit_source]
default.log: 7-051-PES.ini: [Button5.PES]
default.log: 7-051-PES.ini: [Deconvolution_edit_source]
default.log: 8-040-Image.ini: [Button1.Image]

spectrum_/FFT_func.py

FFT_func.py は、ユーザーが定義した単一変数関数をサンプリングし、そのデータに対して高速フーリエ変換 (FFT) または逆高速フーリエ変換 (IFFT) を実行するPythonスクリプトです。このプログラムは、指定された関数の形状とその周波数スペクトル(または元の信号)の関係を視覚的に理解し、数値データをファイルとして保存する機能を提供します。

主な機能は以下の通りです。

本プログラムは、信号処理、物理学、工学などの分野におけるフーリエ変換の基本的な挙動を学習・確認するためのツールとして利用できます。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button8.Spectrum Analysis]

spectrum_/FFT_interpolate.py

FFT_interpolate.py は、高速フーリエ変換 (FFT) を用いて周期的なデータ系列を補間し、その結果を視覚化およびExcelファイルとして出力するPythonスクリプトです。このプログラムは、特に物理学や工学分野で周期的な関数(例えば、電子バンド構造 $E(k)$ など)のデータをより密な点で評価したい場合に有用です。

主な機能は以下の通りです。

このプログラムは、限られた測定点や計算点から、より滑らかで密なデータを生成し、視覚的な解析やさらなる数値計算の基盤を提供することを目的としています。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button6.Spectrum Analysis]
default.log: 5-041-SpectrumAnalysis.ini: [FFT_Interpolate_execute]

spectrum_/FFT_smoothing.py

このプログラム FFT_smoothing.py は、入力データに対してフーリエ変換 (FFT)、逆フーリエ変換 (IFFT)、およびFFTベースの平滑化(スムージング)を適用するためのPythonスクリプトです。主に、ノイズの多い実験データ(例:X線回折データ、時系列信号など)を解析し、その特性を明らかにする、またはノイズを除去して信号をクリーンアップすることを目的としています。

主な機能は以下の通りです。

このプログラムは、ノイズの除去、信号の主要なトレンドの抽出、および周波数領域でのデータ解析といった課題を解決するために利用されます。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button5.Spectrum Analysis]

spectrum_/ft_exafs_scan.py

ft_exafs_scan.py は、EXAFS (Extended X-ray Absorption Fine Structure) 測定で得られたk空間データに対して、フーリエ変換 (FFT: Fast Fourier Transform) または最大エントロピ法 (MEM: Maximum Entropy Method) を適用し、動径分布関数 (R空間) を計算・解析するためのPythonスクリプトです。

プログラムの目的:
EXAFSデータをk空間からR空間へ変換し、原子間距離情報(動径分布関数)を抽出すること。特に、EXAFS解析特有のR軸補正、窓関数処理、k重み付けをサポートし、複数のパラメータ設定でのスキャン解析機能を提供することで、解析の効率化と最適化を支援します。

主な機能:

解決する課題:
EXAFS解析において、R空間への変換は窓関数の設定、k重み付け、変換手法(FFT/MEM)の選択、MEMにおけるARモデル次数の決定など、多くのパラメータに依存します。ft_exafs_scan.py はこれらの複雑な設定を一元的に管理し、特にパラメータスキャン機能を通じて、最適な解析条件を見つけるプロセスを効率化し、結果の解釈を支援します。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button16.Spectrum Analysis]

spectrum_/smoothing.py

smoothing.py は、測定データに含まれるノイズを除去し、データのトレンドを抽出、あるいはその微分を計算するためのPythonプログラムです。主にExcelファイルからデータセットを読み込み、指定されたX-Yデータに対して様々な平滑化手法を適用します。

主な機能:

解決する課題:

科学実験や工学的測定で得られる生データには、多くの場合ノイズが含まれています。このノイズは、データの解釈を困難にし、正確な分析を妨げます。smoothing.py は、これらのノイズを効果的に除去し、データの根底にあるトレンドや構造を明らかにすることで、より信頼性の高いデータ分析を可能にします。また、データの微分を計算することで、ピーク位置の検出や変化点の特定など、データの詳細な特性を評価する手助けをします。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button4.Spectrum Analysis]

sphinx_/add_docstring.py

add_docstring.py は、指定されたPythonソースコードファイルに対して、AI(OpenAIまたはGoogle Gemini)を利用してSphinx形式のDocstringを自動的に追加するツールです。主に以下の機能を提供します。

このプログラムは、Pythonプロジェクトにおけるドキュメンテーション作業の効率化、特にDocstringの記述にかかる時間と労力を削減することを目的としています。


sphinx_/burst_sphinx_indexes.py

burst_sphinx_indexes.py は、Sphinxプロジェクトで使用されるreStructuredText (RST) ファイル内の .. toctree:: ディレクティブにおけるglobパターンを自動的に展開するPythonスクリプトです。このプログラムの主な目的は、ドキュメントの構造管理を簡素化し、新しいファイルが追加されたり既存のファイルが削除されたりした際に、手動で toctree を更新する手間を削減することにあります。

主な機能:

解決する課題:

Sphinxの toctree に多数のファイルを手動で追加・削除する作業は、プロジェクトの規模が大きくなるにつれて時間とエラーが発生しやすくなります。このスクリプトは、ファイルシステムの構造に基づいて toctree を自動的に生成・更新することで、この課題を解決し、ドキュメント作成のワークフローを効率化します。


sphinx_/check_module_name.ps1

check_module_name.ps1 は、Sphinxドキュメントプロジェクトの構造と命名規則の健全性をチェックするために設計されたPowerShellスクリプトです。主に以下の3つの側面からドキュメントファイルを検査します。
  1. Indexファイルの命名規則と存在確認:
  1. 古いハイフン命名の参照チェック:
  1. toctreeでの拡張子明記チェック:

このスクリプトを実行することで、ドキュメントの整合性を維持し、ビルドエラーや警告を未然に防ぎ、効率的なドキュメント管理を支援します。


sphinx_/check_sphinx_api_html.py

check_sphinx_api_html.py は、Sphinx で生成されたAPIドキュメントHTMLファイル(通常 *_api.html という命名規則)を走査し、Sphinx の autodoc 機能がAPI要素を適切に抽出しなかったために、本文コンテンツが空っぽに近いページを検出するスクリプトです。

このプログラムの主な機能は以下の通りです。

  1. HTMLファイルの走査: 指定されたルートディレクトリ以下にある、指定されたワイルドカードパターン(デフォルトは *_api.html)に一致するすべてのHTMLファイルを再帰的に検索します。
  2. メインコンテンツの抽出: 各HTMLファイルから、role="main" や class="document" など、Sphinx が生成する典型的なHTML構造に基づいて主要なコンテンツ領域を抽出します。
  3. テキストのクリーンアップ: 抽出したHTMLコンテンツから、<script>, <style>, <nav>, <footer>, <header> などの不要なタグとその内容を除去し、さらにすべてのHTMLタグを除去してプレーンテキストに変換します。HTMLエンティティのデコードと複数の空白の正規化も行います。
  4. API取り込み失敗の判定: クリーンアップされたテキストの長さ、およびHTML内にSphinx の autodoc が生成する典型的なAPIマーカー(例: py function, py class, sig-name など)の存在をチェックします。本文が極端に短い、またはAPIマーカーが見つからない場合、そのページはAPI取り込みに失敗したと判断します。
  5. 結果の出力: 失敗と判断されたファイルのパスとその理由をコンソールに表示し、指定された出力ファイル(デフォルトは failed_api_html.txt)に失敗したファイルのパスを一覧として書き込みます。

このプログラムは、ドキュメント生成プロセスにおける autodoc の設定ミスや、ソースコードの問題によりAPIドキュメントが不完全に生成される課題を早期に発見し、不完全なドキュメントが公開されるのを防ぐのに役立ちます。


sphinx_/check_sphinx_api_rst.py

check_sphinx_api_rst.py は、Sphinxプロジェクト内のAPIドキュメントファイル (*_api.rst) を再帰的に走査し、autodoc 拡張機能が円滑に動作するために問題となりやすい記述を検出・修正するスクリプトです。

主な機能は以下の通りです。

  1. モジュール名の検証: .. automodule:: ディレクティブに指定されたモジュール名に、Pythonのimport文で不適切とされるハイフン (-) やパス区切り文字 (\ や /) が含まれていないかをチェックします。
  2. __main__ ガードのチェック: .. automodule:: で指定されたモジュールに対応するPythonソースファイルが、sys.argv や argv を使用しているにもかかわらず、if __name__ == "__main__": ガードで保護されていない可能性がないかをチェックします。これにより、Sphinxがドキュメント生成時にモジュールをインポートした際に意図しないスクリプト実行を防ぎます。
  3. 自動修正機能: --fix オプションが指定された場合、検出された以下の問題を自動的に修正します(--dry-run と併用することで変更をシミュレーションできます)。

このスクリプトは、Sphinxを用いたPythonプロジェクトで、APIドキュメントの記述ミスや、ドキュメント生成時の予期せぬサイドエフェクト(例: import 時のコマンドライン引数処理)を防ぐことを目的としています。


sphinx_/compare_dir_files_usage.md

compare_dir_files.py は、2つの指定されたディレクトリツリーを比較し、一方にのみ存在するファイルを報告するスクリプトです。特定のパターンに合致するファイルやディレクトリは比較対象から除外されます。主な目的は、開発環境やデプロイ環境におけるソースコードの同期状態を確認したり、予期せぬファイルの有無を検出したりすることです。

具体的には、以下の機能を提供します。

  1. ディレクトリ比較: 比較元ディレクトリ (Source) と比較先ディレクトリ (Target) の内容を再帰的に走査します。
  2. ファイルフィルタリング: 指定された拡張子パターン(例: *.py)に合致するファイルのみを比較対象とします。
  3. 除外ルール: 定義された正規表現パターンリストに基づいて、特定のパスやファイルを除外します。これにより、バージョン管理システムファイル、一時ファイル、ビルド成果物など、比較に不要な要素を無視できます。
  4. 差分報告: Source にのみ存在するファイルと、Target にのみ存在するファイルをリストアップし、標準出力に表示します。

このツールは、特に大規模なプロジェクトで複数の環境間でのファイル構成の整合性を保つ必要がある場合に役立ちます。

---


sphinx_/debug_sphinx_build.py

debug_sphinx_build.py は、Sphinx autodoc がPythonモジュールのインポートに失敗する問題を診断するためのユーティリティスクリプトです。通常、Sphinxがドキュメントをビルドする際にモジュールをインポートすると、特定のライブラリ(例: Qt、Tk、matplotlib のバックエンドなど)がグローバルな状態に副作用を残し、後続のモジュールのインポートに影響を与えることがあります。このスクリプトは、この問題を解決するために以下の機能を提供します。

このプログラムは、Sphinx autodoc ビルドが途中で停止したり、予期しないインポートエラーが発生したりする場合に、どのモジュールがどのような理由でインポートできないのかを特定し、デバッグの効率を大幅に向上させることを目的としています。


sphinx_/explain_program5.py

explain_program5.py は、指定されたプログラムコードを解析し、AI(OpenAIまたはGoogle Gemini)を利用してその技術ドキュメントをMarkdown形式で自動生成するツールです。プログラマーが手動でドキュメントを作成する手間を大幅に削減し、効率的なドキュメント生成を可能にします。

このプログラムの主な機能は以下の通りです。

本プログラムは、特に大規模なプロジェクトにおいて、多数のスクリプトやモジュールのドキュメントを迅速かつ一貫性のある形式で作成する際に役立ちます。

Launcher実装
default.log: 5-021-COE.ini: [make_doc_edit_source]
default.log: 5-021-COE.ini: [make_doc_execute]

sphinx_/files2md_tags.py

files2md_tags.py は、指定されたファイルパターンに基づいてファイルを処理し、Markdown形式のドキュメントセクションを生成するPythonスクリプトです。このスクリプトの主な目的は、画像ファイルからサムネイルを自動生成し、それらを含むMarkdownの画像一覧を作成すること、および画像以外のデータファイルへのリンク一覧を作成することです。生成される出力は、Sphinxや一般的なMarkdownパーサーでそのまま利用できる形式になっています。

主な機能:

解決する課題:


sphinx_/make_sphinx_files.py

make_sphinx_files.py は、PythonスクリプトのSphinxドキュメント生成プロセスを自動化し、効率化するためのユーティリティスクリプトです。特定のPythonスクリプトを対象として、以下の主要な機能を提供します。

このスクリプトは、Sphinxを用いたPythonプロジェクトのドキュメント作成において、手動でのファイル作成、Docstringやプログラム解説の記述にかかる手間を大幅に削減し、ドキュメントの整合性を維持することを目的としています。

Launcher実装
default.log: 9-300-sphinx.ini: [Button4.sphinx]

tft/analyze_TFT_refactored_usage.md

`analyze_TFT_refactored.py` は、TFT(薄膜トランジスタ)の伝達特性(Id-Vg特性)をExcelファイルから読み込み、解析するためのPythonスクリプトです。線形領域と飽和領域の伝達曲線データから、Vth(しきい値電圧)、移動度(mobility)、SS(サブスレッショルドスイング)、Ion(オン電流)などの主要なTFTパラメータを計算します。

スクリプトは、デフォルトで以下のファイル名と互換性を持つように設計されています。


tft/tft_usage.md

tft.py プログラムは、薄膜トランジスタ (TFT: Thin Film Transistor) の電気的特性シミュレーションと構造の視覚化を目的としたPythonアプリケーションです。

主な機能は以下の通りです。

本プログラムは、TFTの設計や解析において、その電気的振る舞いを予測し、構造を視覚的に理解するためのツールとして機能します。


tft/tftanalyze_usage.md

`tftanalyze.py は、TFT (Thin-Film Transistor) のn-チャネルデバイスにおけるI-V特性(伝達特性 (ID-VG) および出力特性 (ID-VD`))データを解析し、結果をExcelレポートとPNGプロットとして出力するためのPythonスクリプトです。

このツールは、CSV形式の測定データを自動的にエンコーディングを検出して読み込み、伝達特性データから閾値電圧 (`Vth)、移動度 (Mobility)、サブスレッショルドスイング (S) などの主要なデバイスパラメータを抽出します。また、出力特性データから線形領域のコンダクタンス (gd) や移動度 (mu_lin, mu_eff`) を評価します。データの平滑化にはサビツキー・ゴレイフィルターをサポートしており、解析結果はインタラクティブなグラフ表示とPNGファイルとして保存されます。全ての解析結果、生データ、平滑化データはExcelファイルに集約されて出力されます。

関連リンク: `tftanalyze_usage`


tklib/tkapplication_cgi.py

tkapplication_cgi.py は、CGI (Common Gateway Interface) 環境下で動作するWebアプリケーションをPythonで開発する際に利用されるユーティリティライブラリです。既存の tkApplication クラスを継承し、CGI特有の機能(HTTPリクエスト処理、HTML出力、フォームデータ解析、基本的なセキュリティチェック)を追加することで、サーバーサイドスクリプトの作成を簡素化することを目的としています。

主な機能は以下の通りです。

このライブラリを使用することで、PythonによるCGIスクリプト開発において、低レベルなHTTPヘッダーの操作やフォームデータのパースといった共通タスクから開発者を解放し、アプリケーションのビジネスロジックに集中できるようになります。


tklib/tkapplication.py

tkapplication.py は、Pythonアプリケーション開発のための強力な基盤クラス tkApplication を提供するライブラリです。このライブラリの主な目的は、アプリケーション開発において共通的に必要となる様々なユーティリティ機能(コマンドライン引数の解析、設定ファイルの管理、時間計測、出力リダイレクト、エラーハンドリング、プラグインモジュールのロードと呼び出しなど)を集約し、開発者がビジネスロジックに集中できるようにすることです。

主な機能:

このライブラリは、特にコマンドラインツールやGUIアプリケーションのバックエンドとして、共通のロジックやインフラストラクチャを再利用可能な形で提供し、開発効率の向上とコードの一貫性を目指しています。


tklib/tkargs.py

tkargs.py は、Python標準ライブラリの argparse.ArgumentParser と、外部ライブラリ tklib の tkObject クラスを継承して作られたカスタムコマンドライン引数パーサーです。

主な目的と機能は以下の通りです。

このライブラリは、特に tklib エコシステム内で、アプリケーションの起動時オプションを柔軟に設定し、同時にプログラム自身の詳細情報を提供する必要がある場面で役立ちます。


tklib/tkcgi/tkBase.py

tkBase.py は、主にCGIスクリプトやシンプルなウェブアプリケーションの構築を補助するために設計されたPythonライブラリです。ウェブ環境での開発において頻繁に必要となる基本的な機能を提供し、開発者がアプリケーションのロジックに集中できるようにします。

主な機能は以下の通りです。

このライブラリは、特に軽量なウェブアプリケーションやツールにおいて、エラー表示の改善、HTML出力の定型化、設定管理、ファイルパス操作といった共通の課題を解決することを目的としています。


tklib/tkcgi/tkCGIApplication.py

tkCGIApplication.py は、PythonでCommon Gateway Interface (CGI) アプリケーションを構築するためのフレームワークを提供するライブラリです。CGIアプリケーションの開発を簡素化し、リクエストのルーティング、HTMLやJSON形式でのレスポンス生成、エラーハンドリング、セキュリティ機能、ロギング、アカウント認証、メール送信などの一般的なWebアプリケーション機能を統合します。

主な目的は以下の通りです。


tklib/tkcgi/tkFormData.py

tkFormData.py は、CGI (Common Gateway Interface) 環境下で動作するPythonスクリプトが、HTTPリクエストによって送信されるフォームデータを効率的に解析するためのライブラリです。特に、GETリクエストのクエリ文字列と、POSTリクエストの application/x-www-form-urlencoded 形式、そしてファイルアップロードを含む multipart/form-data 形式の両方に対応しています。

主な機能は以下の通りです。

このライブラリは、CGIアプリケーション開発者がHTTPリクエストの複雑なデータ解析ロジックを自前で実装する手間を省き、ビジネスロジックに集中できるようにすることを目的としています。


tklib/tkcgi/tkHTMLDocument.py

tkHTMLDocument.py は、PythonプログラムからHTML要素をオブジェクトとして表現し、プログラム的にHTMLドキュメント構造を構築するためのライブラリです。主な目的と機能は以下の通りです。

このライブラリは、動的にHTMLコンテンツを生成する必要があるWebアプリケーションのバックエンド処理や、静的なHTMLレポートの生成など、PythonでHTMLを操作する様々なシナリオで役立ちます。


tklib/tkcrystal/tkatomsite.py

tkatomsite.py ライブラリは、結晶構造における原子サイトの情報を管理するための tkAtomSite クラスを提供します。このクラスは tklib.tkcrystal.tkatomsiteobject.tkAtomSiteObject を継承しており、原子のラベル、名前、電荷、位置座標、占有率、Wyckoff記号などの詳細な属性を保持することを目的としています。

主に、結晶構造解析や材料科学シミュレーションの文脈で、個々の原子の配置や特性をプログラム上で効率的に扱うための基盤を提供します。


tklib/tkcrystal/tkatomsiteobject.py

tkatomsiteobject.py は、結晶学や材料科学における「原子サイト(atom site)」の情報を管理するためのPythonライブラリです。このライブラリは、単一の原子サイトに関連する多岐にわたる属性(原子タイプ、位置、電荷、占有率、力、速度、ラベル、IDなど)を一元的にカプセル化し、オブジェクト指向的な方法で操作する機能を提供します。

主な目的と機能は以下の通りです。

このライブラリは、結晶構造データ(CIFファイルなど)の読み込み、処理、操作を行うアプリケーションの基盤となる原子サイト表現として利用されることを想定しています。


tklib/tkcrystal/tkatomtype.py

tkatomtype.py ライブラリは、主にX線回折や結晶学の分野で利用される原子に関する様々な情報を取り扱うための機能を提供します。原子の物理的特性(質量、電荷、原子半径など)、原子散乱因子(ASF: Atomic Scattering Factor)、異常散乱因子(ASF: Anomalous Scattering Factor)、イオン半径などのデータベースとの連携と計算を目的としています。

主な機能は以下の通りです。

このライブラリは、結晶構造解析ソフトウェアやシミュレーションツールの一部として、原子の物理的・散乱特性を扱う場面で利用されることを想定しています。


tklib/tkcrystal/tkatomtypeobject.py

tkatomtypeobject.py は、原子の型(atom type)とその関連情報(原子番号、質量、電荷など)を管理し、取得するためのユーティリティ関数とクラスを提供するPythonライブラリです。主に、原子のデータベースファイル(INI形式)から情報を読み込み、原子名や原子番号に基づいて標準化された原子情報を抽出・解析することを目的としています。

このライブラリは、以下のような課題を解決します。


tklib/tkcrystal/tkbandstructure.py

tkbandstructure.py は、計算化学や物性物理学の分野で得られる電子バンド構造を視覚的に表現するためのPythonライブラリです。特に、Matplotlibと連携してバンド構造図を簡単にプロットすることを目的としています。

主な機能は以下の通りです。

このライブラリは、計算結果の解析やプレゼンテーション資料の作成において、クリアで情報 rich なバンド構造図を迅速に生成することで、研究者の作業を支援します。


tklib/tkcrystal/tkboltztrap.py

tkboltztrap.py ライブラリは、第一原理計算に基づく熱電輸送特性計算ソフトウェアである BoltzTraP の計算結果を解析・処理するためのツール群を提供します。具体的には、BoltzTraPが出力する様々なファイル(.outputtrans, .transdos, .trace, .condtens, .halltens など)を読み込み、そこから伝導率、ゼーベック係数、熱伝導率、ホール係数などの物理量を抽出・整形する機能を提供します。

さらに、このライブラリは、VASP(Vienna Ab initio Simulation Package)などの第一原理計算コードの出力ファイル(DOSCAR, EIGENVAL など)を読み込み、バンド構造情報(DOS、バンドエッジ、フェルミエネルギーなど)を解析する機能も備えています。これにより、BoltzTraP計算の入力準備や結果の物理的な解釈を支援し、熱電材料の特性評価ワークフローを効率化することを目的としています。

このライブラリは、主にtkBoltzTraPクラスを中心に構成されており、熱電輸送特性のデータ処理をオブジェクト指向的に行うことができます。


tklib/tkcrystal/tkcif2pymatgen.py

tkcif2pymatgen.py ライブラリは、tkCIF.py のような外部ライブラリによってパースされた tkCrystal オブジェクトを、Python の人気のある物質科学ライブラリ pymatgen の Structure オブジェクトに変換することを目的としています。

主な機能は以下の通りです。

このライブラリは、tkCIF.py などが提供する結晶構造データ形式と pymatgen のデータ構造との間の相互運用性を提供し、異なるツール間でのデータ変換と解析を容易にすることを課題としています。


tklib/tkcrystal/tkcif.py

tkcif.py ライブラリは、Crystallographic Information File (CIF) の解析と管理を目的としています。このライブラリは、CIFファイルから結晶構造情報を抽出し、Pythonオブジェクト (tkCIFData や tkCrystal) として表現することで、プログラムによる結晶データのアクセス、操作、および再保存を容易にします。

主な機能は以下の通りです。

このライブラリは、結晶学研究や材料科学分野でのデータ処理、シミュレーション前処理、結果の可視化など、CIFデータをプログラムで扱う必要があるシナリオで役立ちます。


tklib/tkcrystal/tkcifobject.py

tkcifobject.py は、CIF (Crystallographic Information File) 形式のデータをPythonで扱うためのライブラリです。結晶学における標準的なデータ交換フォーマットであるCIFファイルの読み込み、解析、そして別の形式(tklib.tkcrystal.tkcrystal.tkCrystal オブジェクト)への変換、またはCIF形式での書き出し機能を提供します。

このライブラリの主な目的は以下の通りです。

これにより、研究者や開発者はCIFファイルの手動解析の手間を省き、Pythonプログラム内で結晶構造データをシームレスに利用・操作できるようになります。


tklib/tkcrystal/tkcrystal.py

tkcrystal.py は、結晶構造の管理と解析を目的としたPythonライブラリです。tkCrystal クラスを中心に、結晶構造に関する様々な情報(格子定数、空間群、原子サイト、密度、化学組成など)を取得・表示し、データを辞書形式に変換したり、3Dで可視化したりする機能を提供します。

主な機能は以下の通りです。

このライブラリは、結晶学や材料科学の分野において、結晶構造データの処理、解析、および可視化を支援することを目指しています。


tklib/tkcrystal/tkcrystalobject.py

tkcrystalobject.py ライブラリは、Pythonで結晶構造データをオブジェクト指向で管理、操作、計算するためのフレームワークです。

結晶構造に関する多様な情報(格子パラメータ、空間群、原子タイプ、原子サイト、化学組成など)を一元的に保持し、それらの情報を基に様々な結晶学的な計算や解析を実行することを目的としています。

主な機能は以下の通りです。

このライブラリは、結晶構造データの表現、解析、およびシミュレーションを行うアプリケーション開発において、基盤となる機能を提供することで、複雑な結晶学計算の簡素化と効率化に貢献します。


tklib/tkcrystal/tkpymatgen.py

tkpymatgen.py は、物質科学における結晶構造の解析と可視化を目的としたPythonライブラリです。主に pymatgen ライブラリの機能に基づき、結晶構造データの読み込み、対称性解析、組成情報の抽出、そして3Dグラフィカルな構造描画(アニメーション機能を含む)を提供します。VASP (Vienna Ab initio Simulation Package) の出力ファイル (vasprun.xml, POSCAR) の処理にも対応しており、計算結果の解析や表現を支援します。

このライブラリは以下の主要な機能を提供します。

tklib の tkObject を継承しているため、TkinterなどのGUIフレームワークと連携しやすいように設計されている可能性がありますが、提供されたコードからはGUIインターフェースそのものは直接含まれていません。物質研究者が計算結果を素早く視覚化し、構造的な特徴を理解するためのツールとして機能します。


tklib/tkcrystal/tkrietan.py

tkrietan.py ライブラリは、粉末X線回折データ解析ソフトウェアであるRIETANに関連する科学計算機能とデータ処理機能を提供します。主に以下の目的と機能を持っています。

このライブラリは、特に結晶学、材料科学分野の研究者がX線回折データや電子線回折データを扱う際に、基礎となる物理量の計算やRIETANとの連携のためのユーティリティとして利用されることを想定しています。


tklib/tkcrystal/tkspacegroup.py

tkspacegroup.py は、結晶学における空間群(Space Group)に関する情報を管理、解析、および利用するためのPythonライブラリです。主な目的は以下の通りです。

このライブラリは、結晶構造モデルの構築、シミュレーション、データ解析など、空間群の厳密な取り扱いが要求される場面で利用されることを想定しています。


tklib/tkcrystal/tkspacegroupobject.py

tkspacegroupobject.py は、Tklibフレームワークの一部として、空間群(Space Group)に関連するオブジェクトを抽象的に表現するためのPythonライブラリです。このライブラリは tklib.tkobject.tkObject クラスを継承しており、基本的なオブジェクト管理機能を提供します。

現時点での実装では、具体的な空間群のデータ構造や、その操作(例: 対称操作、点群の計算など)は含まれていません。しかし、コンストラクタ (__init__)、デストラクタ (__del__)、および文字列表現 (__str__) のための基本的なオーバーライドが提供されています。ソースコード中のコメントアウトされた tkcrystal.tkcrystalobject.tkCrystalObject の記述から、将来的に結晶構造データとの連携や、より高レベルな結晶学的な機能への拡張が意図されていることが伺えます。

したがって、このライブラリは、空間群オブジェクトを扱うための基盤クラスとして機能し、将来的な機能拡張のためのプレースホルダーとして位置づけられます。


tklib/tkcrystal/tkvasp.py

tkvasp.py は、VASP (Vienna Ab initio Simulation Package) の計算結果ファイルを解析し、その内容をPythonオブジェクトや辞書形式で簡単にアクセスできるように設計されたライブラリです。主な目的は、VASPの多様な出力ファイル(INCAR, POSCAR, POTCAR, KPOINTS, OUTCAR, DOSCAR, EIGENVAL, vasprun.xml など)から、結晶構造、電子構造(バンド構造、状態密度)、計算設定、エネルギー情報、電荷・磁化情報といった重要なデータを抽出することにあります。

このライブラリは、VASP計算の自動解析やデータ処理パイプラインの構築を支援し、計算結果の可視化や分析を容易にします。tklib という独自のライブラリ群に依存しており、特に tkCrystalObject を継承することで、結晶学的な操作や情報管理とVASPのデータ解析を統合しています。

解決する課題としては、VASPの出力ファイル形式が複雑であること、およびそれらのファイルから必要な情報を手動で抽出する手間を省き、プログラマティックなアクセスを可能にすることが挙げられます。


tklib/tkcrystal/tkvesta.py

tkvesta.py は、結晶構造可視化ソフトウェアであるVESTAに関連するデータ、特に原子の特性情報をPythonプログラム内で簡単に利用できるように設計されたライブラリです。

主な機能は以下の通りです。

このライブラリは、VESTAの原子データを利用して物質科学系のシミュレーションやデータ解析を行う際に、原子ごとの詳細なパラメータを手動で管理する手間を省き、データの整合性を保ちながら効率的な開発を支援することを目的としています。


tklib/tkcrystal/tkxrd.py

tkxrd.py ライブラリは、結晶学およびX線回折 (XRD) データ処理に関連する基本的な定数、ユーティリティ、およびオブジェクトモデルを提供するPythonモジュールです。

tklib/tkcsv.py

tkcsv.py は、CSV (Comma Separated Values) ファイルの読み書きを容易にするためのPythonライブラリです。特に、数値データの抽出や特定のフォーマットでのCSVファイル出力に特化しています。

主な機能は以下の通りです。

このライブラリは、生の csv モジュールを直接使用するよりも、特定のデータ構造(ヘッダと数値列)を扱いやすくし、CSVから行列形式のデータを抽出する際の型変換を自動化することで、開発者の手間を軽減することを目的としています。


tklib/tkdatafile.py

tkdatafile.py は、tklib ライブラリの一部として提供されるデータファイル操作のためのPythonライブラリです。これは主に、ラベルとそれに紐づくデータ配列を持つ構造化されたテキストデータを扱うことを目的としています。基底クラスである tkFile の機能を拡張し、データの検索、取得、変換機能を提供します。

主な機能は以下の通りです。

このライブラリは、実験データ、設定ファイル、ログファイルなど、特定のヘッダー(ラベル)の下に数値データが並ぶ形式のファイルをプログラム的に解析し、必要なデータ要素を柔軟に抽出する場面で特に有用です。


tklib/tkdebug.py

tkdebug.py は、Pythonプログラムにおけるデバッグ出力を簡素化し、その方法を柔軟に切り替えるための軽量なライブラリです。主な目的は、開発者がデバッグメッセージを print 関数のような感覚で記述できるAPI (dbg) を提供しつつ、その出力を標準出力(コンソール)へ行うか、ログファイルへ行うかを簡単に設定できるようにすることです。

このライブラリは以下の課題を解決します。


tklib/tkexcel_db.py

tkexcel_db.py ライブラリは、Microsoft Excelファイルをリレーショナルデータベースのように扱うためのクラス tkExcelDB を提供します。特に、Excelシート内のデータをSQLのSELECT文に似た条件で検索し、抽出する機能に重点を置いています。

このライブラリは、openpyxl を利用してExcelファイルの読み書きを行い、pandas を利用してDataFrame形式でのデータ操作を可能にします。また、親クラスである tklib.tkexcel.tkExcel の機能を継承・拡張しており、Excelファイル操作の基本的な機能に加えて、条件に基づいた高度なデータ検索ロジックを提供することで、大量のデータが格納されたExcelファイルを効率的に扱うことを目的としています。

主な機能は以下の通りです。


tklib/tkexcel.py

tkexcel.py ライブラリは、Microsoft Excel (.xlsx, .xlsm) ファイル、CSVファイル、および一般的なテキストファイルを操作するための高レベルなインターフェースを提供します。openpyxl や msoffcrypto といった下位レベルのライブラリをラップすることで、開発者はより直感的かつ簡潔なコードでExcelファイルを扱うことができます。

主な機能:

解決する課題:

tkexcel.py は、openpyxl などの低レベルなExcel操作ライブラリを直接使用する際の複雑さを軽減し、以下のような課題を解決します。


tklib/tkfile.py

tkfile.py は、Pythonの標準的なファイル操作を拡張し、特にファイルエンコーディングの自動検出と、正規表現に基づく高度なファイル内容の検索・操作を容易にするためのユーティリティライブラリです。tklib フレームワークの一部として設計されており、tkObject クラスを継承することで、共通のエラーハンドリングや汎用的なユーティリティ機能を共有しています。

このライブラリの主な目的は以下の課題を解決することです。

主な機能は tkFile クラスによって提供され、ファイルの読み書き、ポインタ操作、そして正規表現を用いたコンテンツベースのファイルナビゲーションを可能にします。


tklib/tkfilter.py

tkfilter.py ライブラリは、tklib パッケージの tkObject クラスを継承したフィルタリングモジュールを提供します。このライブラリの主な目的は、外部のデータファイル(例えば、実験データやスペクトルデータなど)から特定の情報を動的に読み込み、抽出し、管理するための共通フレームワークを提供することです。

具体的には、以下の機能を提供します。

このライブラリは、データ分析や処理のワークフローにおいて、多様なデータソースからのデータ取得を抽象化し、一貫したインターフェースでアクセスできるようにすることで、開発の効率化とコードの再利用性を高めることを目指しています。


tklib/tkgraphic/tkopengl.py

tkopengl.py は、PythonのPyOpenGLとGLUTライブラリを利用して3Dグラフィックスの描画を簡素化するためのユーティリティライブラリです。主に以下の機能を提供します。

tklib/tkgraphic/tkPlot3d.py

tkPlot3d.py は、Pythonの matplotlib ライブラリを拡張し、3Dデータの可視化を容易にするためのユーティリティ関数を提供するライブラリです。特に、科学技術計算やデータ分析の分野で、3次元空間におけるデータ分布、表面、等値面などを効率的にプロットすることを目的としています。

主な機能は以下の通りです。

このライブラリは、複雑な matplotlib の3Dプロット設定をカプセル化し、ユーザーがより簡潔なコードで高品質な3Dグラフィックを生成できるようにすることで、可視化の課題を解決します。


tklib/tkgraphic/tkplot_pyplot.py

tkplot_pyplot.py は、Pythonの強力なグラフ描画ライブラリである matplotlib.pyplot を拡張し、より高度なインタラクティブ機能やTkinterアプリケーションへの組み込みを容易にすることを目的としたライブラリです。

主な機能は以下の通りです。

このライブラリは、Matplotlibの柔軟性とTkinterのGUI構築能力を組み合わせることで、動的でユーザーフレンドリーなデータ可視化ツールを開発する際の課題を解決します。


tklib/tkgraphic/tkplot_tkinter.py

tkplot_tkinter.py は、Pythonの強力なグラフ描画ライブラリである Matplotlib で作成された図を、Tkinter ベースのグラフィカルユーザーインターフェース (GUI) アプリケーションに埋め込むためのユーティリティを提供します。このライブラリの主な目的は、Matplotlib のプロット機能を Tkinter ウィンドウ内で利用しやすくし、インタラクティブなデータ可視化アプリケーションの開発を支援することです。

主な機能は以下の通りです。

これにより、科学技術計算やデータ分析アプリケーションにおいて、柔軟で応答性の高いグラフ表示機能を実現することが可能になります。


tklib/tkgraphic/tkplot.py

tkplot.py ライブラリは、Pythonの著名なグラフ描画ライブラリである matplotlib の機能を抽象化し、より扱いやすくすることを目的としています。特に、複数のサブプロットの管理、プロットデータの動的な更新、および基本的なグラフ描画操作を簡素化します。

このライブラリの主な機能は以下の通りです。

tkplot.py は、matplotlib を直接操作する際に発生する冗長なコード記述を削減し、特にGUIアプリケーションなどでの動的なデータ表示や、複数のグラフを効率的に管理する必要がある場面で、開発者の負担を軽減することを課題解決の目標としています。


tklib/tkgraphic/tkplotevent.py

tkplotevent.py ライブラリは、Matplotlibのプロットイベントを処理し、インタラクティブな機能を提供するPythonユーティリティモジュールです。このライブラリは、TkinterとMatplotlibを連携させ、ユーザーがグラフとより直感的に対話できるようにすることを目的としています。

主な機能は以下の通りです。

このライブラリを利用することで、Matplotlibの静的なグラフに動的な操作性を持たせ、データ探索や分析の効率を高めることが可能になります。


tklib/tkgui/tkapplication_gui.py

tkapplication_gui.py は、tklib.tkapplication.tkApplication を基盤として、Tkinterを用いたグラフィカルユーザーインターフェース(GUI)アプリケーションを構築するための高レベルな機能を提供するライブラリです。

このライブラリの主な目的は以下の通りです。

これにより、開発者はTkinterアプリケーションの定型的なコード記述を減らし、アプリケーションの主要なロジックに集中できるようになります。


tklib/tkgui/tkmenu_popup.py

tkmenu_popup.py は、Python の標準 GUI ライブラリである Tkinter を使用して、指定されたウィジェットにマウスカーソルが重なったときに自動的に表示され、離れたときに非表示になるポップアップメニューを実装するためのライブラリです。

主な機能は以下の通りです。

このライブラリは、特定のウィジェットにカーソルを重ねたときに情報を表示したり、操作オプションを提供したりする、ツールチップのようなインタラクティブなメニューを実装する際に役立ちます。


tklib/tkgui/tksimple_gui.py

tksimple_gui.py は、Pythonの標準GUIライブラリである tkinter を使用したグラフィカルユーザーインターフェース(GUI)の作成を簡素化するためのユーティリティライブラリです。特に、GUIウィジェットの定義と管理、ユーザー入力とプログラム変数の連携、および基本的なGUIレイアウトの構築を容易にすることを目的としています。

主な機能は以下の通りです。

このライブラリは、複雑な tkinter のAPIを直接操作することなく、構造化された方法でGUIを構築したい開発者にとって有用です。特に、設定画面やデータ入力フォームなど、定型的なGUI要素を迅速に作成する場合に、コードの記述量を減らし、可読性を向上させることを目指しています。


tklib/tkgui/tktkinter.py

tktkinter.py は、Tkinterウィジェットのラッパー関数とカスタムウィジェットを提供するPythonモジュールです。このライブラリの主な目的は、Tkinterアプリケーション開発を簡素化し、よりリッチで使いやすいUIコンポーネントを提供することにあります。

提供される主な機能は以下の通りです。

このライブラリは、Tkinterをベースとしたデスクトップアプリケーションにおいて、定型的なUI実装の手間を削減し、開発者がよりアプリケーションのロジックに集中できるようにすることを目的としています。


tklib/tkgui/tktooltip.py

tktooltip.py は、PythonのGUIライブラリであるTkinterにおいて、任意のウィジェットにツールチップ機能を追加するためのシンプルなライブラリです。

このライブラリの主な機能は以下の通りです。

このライブラリは、Tkinterが標準で提供していないツールチップ機能を簡単に実装できるようにすることで、ユーザーインターフェースの使いやすさを向上させることを目的としています。ウィジェットの機能を補足説明したり、ユーザーにヒントを提供したりする際に役立ちます。


tklib/tkimport.py

tkimport.py ライブラリは、Pythonモジュールのインポート処理をより堅牢かつユーザーフレンドリーにするためのユーティリティを提供します。特に、アプリケーションが必要とする外部モジュールが存在しない場合に、分かりにくいエラーで終了するのではなく、ユーザーに不足しているモジュールのインストール方法を案内することを目的としています。また、一度インポートしたモジュールをキャッシュすることで、複数回のインポートによるオーバーヘッドを避けることができます。

主な機能は以下の通りです。

このライブラリは、特にGUIアプリケーション(tklib との関連から推測されます)などのように、複数の外部依存を持つプログラムにおいて、起動時の依存モジュールチェックとそのフィードバックを標準化し、ユーザーエクスペリエンスを向上させる課題を解決します。


tklib/tkinifile.py

tkinifile.py は、PythonアプリケーションでINI形式の設定ファイルを効率的に読み書きするためのライブラリです。基本的なファイル操作機能を提供するtklib.tkfile.tkFileクラスを継承しており、INIファイルに特化したセクションおよびキー/値のペアの管理機能を追加します。

主な目的と機能は以下の通りです。

このライブラリは、アプリケーションの設定、構成、ユーザー設定などをINIファイル形式で管理する際に、煩雑なファイル解析ロジックを開発者が記述する手間を省き、より直感的かつ堅牢な方法を提供することを目指しています。


tklib/tkobject.py

tkobject.py ライブラリは、Python オブジェクトの基本クラス tkObject を提供します。このクラスは、オブジェクトの属性管理、リフレクション、デバッグ機能、および一般的なユーティリティメソッドを強化することを目的としています。

主な機能:

解決する課題:

このライブラリは、主に以下の課題を解決します。


tklib/tkparams.py

tkparams.py ライブラリは、Pythonアプリケーションの設定パラメータを効率的に管理するための tkParams クラスを提供します。このモジュールは、以下の主要な機能と目的を持っています。

このライブラリは、アプリケーションの設定を外部ファイルで管理し、動的に読み書きするニーズに応えることで、柔軟でメンテナンス性の高いアプリケーション開発を支援することを目的としています。


tklib/tkplugin.py

tkplugin.py ライブラリは、tklib ライブラリで定義されている tkObject を継承する tkModule クラスを提供します。このライブラリの主な目的は、Tkinterベースのアプリケーションにおいて、特定の機能やコンポーネントを「モジュール」として構造化し、管理するための基盤クラスを提供することです。

具体的には、以下の課題を解決することを意図しています。

現状のソースコードでは、tkModule クラスはモジュールの識別名 (name) と、関連する実際のモジュールオブジェクト (module) を保持するシンプルな構造に留まっており、具体的なGUI要素の操作は継承元の tkObject に委ねられています。


tklib/tkre.py

tkre.py ライブラリは、Pythonの標準正規表現モジュール re およびシェルライクな文字列分割を行う shlex モジュールの機能を拡張し、より使いやすいインターフェースで文字列処理を行うためのユーティリティ関数とクラスを提供します。

主な目的は、正規表現を用いた文字列の検索、マッチング、置換、分割といった操作を簡素化し、特定の文字列フォーマット(例: 引用符で囲まれた文字列や空白を含む文字列)の処理を補助することにあります。特に、正規表現のフラグ指定を簡略化する機能や、マッチ結果を詳細に取得する機能が提供されています。

このライブラリは、tklib.tkobject を継承したクラスを含んでいますが、直接的なGUI要素とは関連せず、より汎用的な文字列操作ツールとして機能します。


tklib/tkscript_macro.py

tkscript_macro.py は、tkScript クラスとその関連機能を提供するモジュールで、独自のスクリプト言語の実行を管理することを目的としています。

このライブラリの主な機能は以下の通りです。

このライブラリは、特にTkinterベースのランチャーアプリケーションにおいて、複雑な操作をINI形式のスクリプトで記述し、柔軟に実行するための基盤を提供することで、アプリケーションの拡張性やカスタマイズ性を高める課題を解決します。


tklib/tktemplate.py

tktemplate.py は、テンプレート処理とExcel連携を提供する多機能モジュールです。

このライブラリの主な目的は、動的なコンテンツ生成をサポートすることにあります。具体的には、文字列、ファイル、Excelデータに対して {{ key }} 形式のテンプレート変数を置換する機能を提供します。これにより、定型的な文書やデータ構造を基に、個別の情報に応じた出力を容易に生成できるようになります。

解決する課題としては、以下のような点が挙げられます。


tklib/tktransport/tkfermi_integral.py

tkfermi_integral.py は、高速かつ堅牢なフェルミ・ディラック積分 $F_r(\eta)$ を計算するためのPythonライブラリです。半導体物理学、固体物理学、統計力学など、キャリア統計や電子状態の分析が不可欠な分野で広く利用されます。

主な機能:

解決する課題:

フェルミ・ディラック積分は、閉じた形式での解析解が存在しない場合が多く、特に広いパラメータ範囲で高精度かつ効率的に計算することは困難です。本ライブラリは、異なる物理的極限(退化、非退化、中間)に合わせた最適なアルゴリズムを自動的に選択することで、この課題を解決し、信頼性の高い結果を提供します。

フェルミ・ディラック積分 $F_r(\eta)$ の定義は以下の通りです。
$$
F_r(\eta) = \frac{1}{\Gamma(r+1)} \int_0^\infty \frac{x^r}{1 + \exp(x-\eta)} dx
$$
ただし、このライブラリでは FermiIntegral_fast など主要な関数はガンマ関数による正規化を行わない積分
$$
I_r(\eta) = \int_0^\infty \frac{x^r}{1 + \exp(x-\eta)} dx
$$
を計算します。これは、関数 electron_density や hole_density で利用される定数 $kF12 = 2/\sqrt{\pi}$ と組み合わせて、物理的な濃度計算に直接適用できるように設計されています。例えば、$I_{1/2}(\eta)$ は $\Gamma(3/2) F_{1/2}(\eta)$ に相当します。


tklib/tktransport/tkTransport.py

tkTransport.py は、熱電材料や半導体の物理的特性、特に電荷キャリアの輸送現象に関連する複雑な計算を支援することを目的としています。具体的には、以下の主要な機能を提供します。

このライブラリは、材料科学、固体物理学、半導体デバイス物理学などの分野における研究者やエンジニアが、材料の電気的・熱的特性をシミュレーションし、解析するための強力なツールとなります。


tklib/tkutils.py

tkutils.py ライブラリは、Pythonアプリケーション開発において頻繁に利用される様々なユーティリティ機能を提供するモジュールです。ファイル操作、データ変換、システム情報取得、エラーハンドリングといった一般的なタスクを効率化するための関数群を含んでいます。

主な目的と機能は以下の通りです。

このライブラリは、様々な場面で発生する共通の課題に対し、再利用可能なユーティリティ関数を提供することで、開発者がより本質的なロジックに集中できるよう支援することを目的としています。


tklib/tkvariousdata.py

tkvariousdata.py は、様々な形式の構造化データファイル(特にCSVおよびExcel)を効率的に読み込み、処理し、書き出すためのユーティリティ機能を提供するPythonライブラリです。科学技術計算やデータ分析の分野で頻繁に発生する、表形式データの取り扱いを簡素化することを目的としています。

主な機能:

解決する課題:


tklib/tkxml.py

tkxml.py は、XMLデータの解析、変換、操作を支援するPythonユーティリティライブラリです。

このモジュールの主な目的は、Python標準ライブラリである xml.etree.ElementTree や xml.dom.minidom に加え、外部ライブラリの xmltodict、dicttoxml、numpy を利用して、XMLファイルとPythonの辞書構造間の相互変換、XML要素の再帰的な解析、特定のセクション情報の抽出、整形されたXMLの書き出しなど、XML操作に関する幅広い機能を提供することです。

具体的には、ATLAS最適化XMLやVASP計算結果XML (vasprun.xml) などの特定のフォーマットを持つXMLファイルの解析を容易にする機能を含んでいます。これにより、これらの複雑なXML構造から必要な情報を効率的に抽出し、Pythonプログラム内で扱いやすい形式に変換することが可能になります。


VASP/Electron_Helmholtz_energy.py

Electron_Helmholtz_energy.py は、VASP計算の出力ファイルである DOSCAR から電子の状態密度 (DOS: Density of States) データを読み込み、有限温度における電子の内部エネルギー、エントロピー、およびヘルムホルツ自由エネルギーの温度依存性を計算するPythonスクリプトです。また、フェルミ準位の温度変化も計算し、結果を標準出力に表形式で表示するとともに、matplotlib を用いてグラフとして可視化します。

このプログラムの主な機能は以下の通りです。

このプログラムは、金属や半導体などの電子系が有限温度で示す熱力学的特性を理解し、VASP計算の結果をさらに深く解析するために役立ちます。


VASP/make_kpoints.py

make_kpoints.py は、Crystallographic Information File (CIF) 形式の結晶構造データから、第一原理計算ソフトウェアVASPでバンド構造計算を行うためのKPOINTSファイルを自動生成するPythonスクリプトです。

プログラムの目的

このプログラムの主要な目的は、VASPユーザーが手動でKPOINTSファイルを作成する手間を省き、ブリルアンゾーン内の正確な高対称性経路に沿ったK点グリッドを効率的かつ正確に生成することです。

主な機能

  1. CIFファイルの読み込み: 入力としてCIFファイルを解析し、結晶構造情報を抽出します。
  2. 結晶構造の標準化と対称性解析: pymatgen ライブラリを用いて結晶の対称性を検出し、必要に応じて構造を標準的なプリミティブセルに変換します。これにより、高対称性経路の特定が容易になります。
  3. 高対称性K点経路の生成: 結晶のブラベー格子タイプに基づき、第一ブリルアンゾーン内の高対称点とそれらをつなぐ経路を自動的に決定します。Setyawan-Curtarolo、Latimer-Munro、Hinumaなど、複数の高対称性パスの慣例をサポートします。
  4. K点座標の丸め: 生成されたK点座標の浮動小数点値を、指定された最大分母までの分数表現に丸めることで、KPOINTSファイル内の表記をより簡潔かつ正確にします。
  5. VASP KPOINTSファイルの出力: 決定された高対称性経路とK点分割数に基づき、VASPのラインモード形式でKPOINTSファイルを生成し、指定されたファイル名で保存します。

解決する課題


VASP/make_md_history.py

make_md_history.py は、VASP (Vienna Ab initio Simulation Package) の分子動力学 (MD) シミュレーションの出力ファイルを解析し、その結果を標準的なデータ形式(CIFおよびCSV)に変換するPythonスクリプトです。このプログラムの主な目的は、VASPの生出力ファイルから重要な物理量と構造の時系列データを抽出し、他の解析ツールや可視化ツールで利用しやすい形式で提供することです。

主な機能は以下の通りです。

本プログラムは、VASPのMDシミュレーション結果を手動で解析する手間を省き、結果の可視化や詳細な分析を効率化することを課題解決としています。


VASP/msd/make_md_history.py

make_md_history.py は、VASP (Vienna Ab-initio Simulation Package) の分子動力学 (MD) 計算の出力ファイルを解析し、主に以下の機能を提供します。
  1. XCrySDen AXSF (アニメーションXSF) ファイルの生成: VASPの OUTCAR ファイルに含まれる各MDステップの結晶構造情報を抽出し、XCrySDenで可視化可能なアニメーション形式のAXSFファイル (md.xsf) を作成します。このファイルはMDシミュレーション中の原子の動きを視覚的に追跡するのに役立ちます。また、同時にMDステップごとの温度、エネルギーなどの情報が記載されたCSVファイル (inf.csv) も出力します。
  1. 平均二乗変位 (MSD) および関連履歴の計算: AXSFファイル (または必要に応じて OUTCAR から再生成) を使用して、MDシミュレーション中の原子の平均二乗変位 (MSD) を計算します。MSDは原子の拡散挙動を評価するための重要な指標です。MSDの計算に加えて、重心の変位、格子定数、体積、温度、エネルギーなどの時系列データをまとめた履歴CSVファイル (sample_name-history.csv) を生成します。初期構造 (POSCAR) と最終構造 (CONTCAR) はCIF形式でも保存されます。

このプログラムは、VASPのMDシミュレーション結果の解析と可視化を効率化し、材料の動的特性の理解を深めることを目的としています。


VASP/outcar2axsf.py

outcar2axsf.py は、VASP (Vienna Ab initio Simulation Package) の分子動力学 (MD) シミュレーションの出力ファイル (OUTCAR) を解析し、構造の時系列変化を可視化するためのXCrySDen AXSF (Animation XSF) ファイルに変換するプログラムです。

主な機能:

解決する課題:
VASPの分子動力学シミュレーション結果は、OUTCAR ファイルに構造情報が時系列で記述されますが、このファイルを直接可視化ツールでアニメーションとして扱うことは困難です。本プログラムは、OUTCAR の情報をXCrySDenという広く使われている結晶構造可視化ソフトウェアのアニメーションフォーマットに変換することで、VASP MDシミュレーションの動的な挙動を容易に解析・視覚化できるようにします。


VASP/pdos_usage.md

pdos.py は、指定されたテキストファイルからPartial Density of States (PDOS) データを読み込み、エネルギー ($E - E_F$) に対するPDOSのプロット画像を生成するPythonスクリプトです。このプログラムは、量子化学計算や固体物理計算の出力として得られるDOSデータを視覚化することを主な目的としています。

主な機能は以下の通りです。


VASP/plot_VASP_DOS_Ne_usage.md

plot_VASP_DOS_Ne.py は、VASP (Vienna Ab-initio Simulation Package) の計算結果から得られる状態密度 (DOS) データを用いて、様々な電子輸送特性を解析し可視化するためのPythonスクリプトです。

このプログラムの主な目的は以下の通りです。

  1. 状態密度 (DOS) のプロット: VASPの DOSCAR ファイルから全状態密度 (Total DOS) を読み込み、エネルギーに対するDOSと積算電子数をプロットします。価電子帯上端 (EVBM)、伝導帯下端 (ECBM)、バンドギャップ、フェルミ準位、および全電子数 (NELECT) がグラフ上に示されます。
  2. キャリア濃度の計算とプロット: 特定の温度において、フェルミ準位の位置を変化させた場合の電子濃度 ($n$) と正孔濃度 ($p$) を計算し、フェルミエネルギーの関数としてプロットします。これにより、材料がN型またはP型半導体として振る舞う際のキャリア濃度変化を評価できます。
  3. Seebeck係数の計算とプロット: 定緩和時間近似 (Constant Relaxation Time Approximation, CRTA) を用いて、特定の温度におけるSeebeck係数をフェルミ準位の関数として計算し、プロットします。これにより、熱電材料の性能評価に必要なSeebeck係数とドーピングレベルの関係を調べることができます。

このプログラムは、VASP計算の出力から材料の電子構造と熱電特性を迅速に評価したい研究者やエンジニアにとって有用です。


VASP/read_car.py

read_car.py は、VASP (Vienna Ab initio Simulation Package) の計算結果ファイルの一つである CHGCAR ファイルを解析し、構造情報と電荷密度データをPythonのデータ構造として読み込むプログラムです。

主な機能:

解決する課題:

VASPの CHGCAR ファイルは複雑なテキスト形式であり、Pythonで直接解析して電荷密度データにアクセスするのは手間がかかります。本プログラムは、ファイルフォーマットの詳細を抽象化し、Pythonの使いやすいデータ構造(辞書とネストされたリスト)として電荷密度データを提供することで、後続のデータ解析や可視化を容易にします。


VASP/vasp_correction_bandfilling.py

`vasp_correction_bandfilling.py は、VASP計算結果から欠陥モデルのバンドフィリング補正(Band Filling Correction)を推定するスクリプトです。理想結晶と欠陥結晶の計算結果(DOSや固有値エネルギー)を比較し、バンドアラインメントの補正値である dEVBM` を適用した上で、占有状態の違いによる電子および正孔のエネルギー補正量を評価します。

VASP/vasp_correction_charge.py

vasp_correction_charge.py は、VASP計算で得られた結果から、周期境界条件下の帯電欠陥計算に不可欠な有限サイズ補正(帯電欠陥のエネルギー補正および双極子相互作用の補正)を推定するためのPythonスクリプトです。

主な機能:

解決する課題:
VASPのような周期境界条件を用いた第一原理計算では、帯電した欠陥を扱う場合、周期的なセル間に存在する電荷間のクーロン相互作用によって、計算される形成エネルギーがセルサイズに依存してしまいます。本プログラムは、Makov-Payneの補正モデルなどを参考に、この有限サイズ効果によるエネルギー誤差を見積もり、補正することを目的としています。

---


VASP/vasp_correction_VBM.py

vasp_correction_VBM.py は、VASP計算を用いて欠陥を含む結晶のVBM (Valence Band Maximum) 補正量を推定するためのPythonスクリプトです。このプログラムは、欠陥スーパーセル計算において生じる有限サイズ効果によるVBMのエネルギーシフトを補正することを目的としています。

主な機能は以下の通りです。


VASP/vasp_defect.py

`vasp_defect.py` は、VASPによる第一原理計算の結果(状態密度やバンド構造)および欠陥形成エネルギーのデータに基づき、半導体中の電子・正孔キャリア密度、欠陥密度、フェルミ準位を計算・解析するスクリプトです。

本スクリプトは、温度変化に伴うフェルミ準位の自己無撞着計算、欠陥の電荷状態による形成エネルギーの変化、電荷遷移準位の特定、およびこれらの物理量のグラフ表示機能を提供します。


VASP/vasp_ef.py

vasp_ef.py は、VASP (Vienna Ab initio Simulation Package) の計算結果であるDOSCARファイルから、半導体のキャリア密度とフェルミ準位を温度またはフェルミ準位の関数として計算するPythonプログラムです。

主な機能:

解決する課題:
VASPから得られる状態密度情報を用いて、半導体の重要な電気的特性(フェルミ準位、キャリア密度、ホール係数など)を理論的に評価し、その温度依存性やフェルミ準位依存性を解析することを目的としています。これにより、材料のドーピング効果や温度変化による伝導特性の変化を予測・理解するのに役立ちます。


VASP/vasp_input.py

* 目的: 本プログラム vasp_input.py は、VASP (Vienna Ab-initio Simulation Package) の入力ファイル、特にPOSCARファイルを管理することを目的とします。

VASP/vasp_plot_band.py

vasp_plot_band.py は、VASP (Vienna Ab-initio Simulation Package) の計算結果からバンド構造を解析し、プロットするためのPythonスクリプトです。

主な機能:

解決する課題:

VASPの生出力ファイルからバンド構造を直接視覚化するのは困難であり、このプログラムはVASP計算結果の迅速な解析と視覚化を可能にすることで、物質の電子構造に関する理解を深める手助けをします。特に、バンドギャップやHOMO/LUMOレベルといった重要な電子状態の特性を明確に提示します。


VASP/vasp_plot_dos.py

vasp_plot_dos.py は、VASP (Vienna Ab-initio Simulation Package) によって計算された状態密度 (DOS: Density of States) を解析し、グラフとして可視化するためのPythonスクリプトです。このプログラムはVASPの標準出力ファイル(DOSCAR, OUTCAR, EIGENVAL, POSCAR など)を読み込み、エネルギー対DOS、およびエネルギー対電子数 ($N_e$) の積算曲線をプロットします。

主な機能は以下の通りです。

このプログラムは、VASP計算結果のDOSを容易に視覚化し、バンド構造に関連する物理量を直感的に評価できるようにすることで、手動でのデータ処理やグラフ作成の手間を省き、研究者の解析作業を効率化します。


VASP/vasp_plot_epsilon.py

vasp_plot_epsilon.py は、VASP (Vienna Ab-initio Simulation Package) によって計算された光学誘電率を OUTCAR ファイルから抽出し、グラフとしてプロットし、Excelファイルに保存するためのPythonスクリプトです。VASP計算で LEPSILON = .TRUE. が設定されている場合に生成される誘電率データを解析することを目的としています。

主な機能:

解決する課題:
VASPの OUTCAR ファイルはテキスト形式であり、誘電率データが複数のセクションにわたって記述されているため、手動でデータを抽出して可視化するのは手間がかかります。このスクリプトは、その抽出と可視化のプロセスを自動化し、解析を効率化します。


VASP/vasp_watch.py

vasp_watch.py は、VASP (Vienna Ab initio Simulation Package) による計算、特に構造最適化(緩和計算)の進捗をリアルタイムで監視するためのPythonスクリプトです。

プログラムの目的

VASP計算の実行中に、その進捗状況、特に収束状況を効率的に把握することを目的としています。長時間にわたる計算において、計算が正常に進行しているか、あるいは収束に問題が生じていないかを、手動でログファイルを監視する手間なく、視覚的に確認できるようになります。

主な機能

  1. エネルギー差の対数グラフ: 各電子ステップにおける最終エネルギーとの絶対エネルギー差 ($|E - E_{final}|$) を対数スケールでプロットします。電子的な収束基準 EDIFF も合わせて表示されます。
  2. スケーリングされたエネルギー差グラフ: 各電子ステップにおけるエネルギー差を $dE^{1/npower}$ の形でスケーリングしてプロットします($npower=10.0$)。これにより、小さなエネルギー変化を視覚的に強調し、EDIFF に対応するスケーリングされた基準線も表示します。
  3. スケーリングされた力のグラフ: 各イオンステップにおける最終力との絶対力の差を $|F - F_{final}|^{1/npower}$ の形でスケーリングしてプロットします($npower=10.0$)。イオン的な収束基準 EDIFFG に対応するスケーリングされた基準線も表示します。

解決する課題

このプログラムは、VASP計算の安定性と収束状態を直感的に理解するための手段を提供します。特に、構造最適化の途中でエネルギーが振動したり、力が収束しなかったりする問題が発生した場合に、その傾向を早期に発見し、計算パラメータの調整などの対策を講じるのに役立ちます。


Viewer/image_view.py

image_view.py は、PythonのGUIライブラリ tkinter を使用して構築された画像ビューアアプリケーションです。このプログラムは、ユーザーが指定した画像ファイルを指定されたサイズで表示することを目的としています。

主な機能は以下の通りです。

Launcher実装
default.log: 5-026-Utils.ini: [Viewer_image]

Viewer/JSONView.py

JSONView.py は、Pythonで記述されたGUIアプリケーションであり、JSONファイルを視覚的に閲覧するために設計されています。このプログラムは、指定されたJSONファイルの内容をツリー構造で表示し、キーと値を異なる列に整理して表示します。

主な機能:

解決する課題:

JSONファイルは、特にデータ量が多く、ネストが深い場合に、テキストエディタでその構造を把握したり、特定のデータを見つけ出すことが困難になることがあります。JSONView.py は、このような課題を解決し、データの構造を直感的に理解し、効率的に閲覧できるGUIを提供します。

Launcher実装
default.log: 5-026-Search.ini: [MP_search_JSON_Viewer]
default.log: 5-026-Utils.ini: [Viewer_json]

Viewer/mdview.py

mdview.py は、PythonのTkinterライブラリと tkhtmlview ライブラリを利用して、MarkdownファイルをGUIで表示するためのビューアアプリケーションです。このプログラムの主な目的は、Markdownテキストの閲覧体験を向上させることと、画像の表示サイズやテキストのフォントサイズをユーザーが柔軟に調整できるようにすることです。

主な機能は以下の通りです。

このプログラムは、特にMarkdownドキュメントに多くの画像が含まれる場合や、表示環境に応じてフォントサイズを調整したい場合に有用なツールとなります。

Launcher実装
default.log: 5-026-Utils.ini: [Viwer_markdown]

Viewer/plot3d.py

plot3d.py は、VASP (Vienna Ab initio Simulation Package) の出力ファイルである電荷密度(CHGCAR)や静電ポテンシャル(LOCPOT)などの三次元体積データを解析し、Matplotlib を用いて3Dグラフィックとして可視化するPythonスクリプトです。

主な機能は以下の通りです。

  1. VASPファイルの読み込み: CHGCARやLOCPOTといったVASPの体積データファイルを読み込み、格子情報や三次元グリッドデータを抽出します。
  2. 等値面 (Isosurfaces) の描画: 指定された値(レベル)において、電荷密度や電位が一定となる面を3Dで表示します。
  3. グリッド点 (Dots) の描画: 体積データが特定の閾値を超えるグリッド点を散布図として3D空間にプロットします。
  4. スライス面 (Slice Planes) の描画: 分率座標で指定された位置で体積データをスライスし、その断面図を色付きの平面として3D空間に表示します。
  5. ダウンサンプリング: 大規模なデータセットに対する処理速度向上のため、体積データを指定したステップで間引くことができます。

本プログラムは、VASP計算結果から得られる複雑な三次元的な物理量分布を直感的に理解しやすくするための強力な可視化ツールとして機能します。


Viewer/XML_Edit2.py

XML_Edit2.py は、指定されたXMLファイルを読み込み、その内容をグラフィカルユーザーインターフェース (GUI) 上でツリー構造として表示するPythonスクリプトです。ユーザーはXML要素のタグ、その属性、およびテキスト内容を視覚的に確認できます。

主な機能は以下の通りです。


Viewer/XML_Edit3.py

XML_Edit3.py は、Pythonの tkinter GUIライブラリと xml.etree.ElementTree ライブラリを使用して、XMLファイルを視覚的に表示し、その内容を編集して新しいファイルとして保存するためのデスクトップアプリケーションです。

主な機能は以下の通りです。

このプログラムは、XMLファイルを直接テキストエディタで開いて編集する手間を省き、視覚的な操作でXMLデータを簡単に閲覧・変更したいという課題を解決します。特に、構造が複雑なXMLファイルや、特定の要素の値だけを変更したい場合に有用です。


Viewer/XML_Edit.py

XML_Edit.py は、PythonのTkinterライブラリを使用して構築されたグラフィカルユーザーインターフェース (GUI) アプリケーションです。このプログラムの主な目的は、XMLファイルの内容を視覚的に表示し、ユーザーがそのXMLデータを直接編集できるようにすることです。

主な機能は以下の通りです。

このプログラムは、XML構造を簡単に確認したり、手動でXMLデータを修正したりする際に役立ちます。


Viewer/XMLView.py

XMLView.py は、Pythonの標準ライブラリ tkinter および xml.etree.ElementTree を使用して、XMLファイルをグラフィカルユーザーインターフェース (GUI) 上でツリービュー形式で表示するアプリケーションです。

このプログラムの主な目的は、大規模なXMLファイルの構造を視覚的に理解しやすくすることです。特に、テキストエディタで直接開くと内容が膨大で把握しにくいXMLファイル(例: 計算結果を格納した vasprun.xml など)の階層構造、タグ、属性、およびテキスト内容を効率的に閲覧できるようになります。

主な機能は以下の通りです。

Launcher実装
default.log: 5-026-Search.ini: [MP_search_XML_Viewer]
default.log: 5-026-Utils.ini: [Viewer_xml]

web/make_sitemap_from_path.py

make_sitemap_from_path.py は、指定されたディレクトリ以下にあるHTMLファイルを走査し、それらを一覧表示するHTML形式のサイトマップを自動生成するPythonスクリプトです。

プログラムの目的

Webサイトの階層構造を視覚的に把握できるサイトマップを簡単に作成することで、手作業によるサイトマップの作成・更新にかかる手間を削減します。特に、大規模なWebサイトや頻繁に更新されるサイトにおいて、サイト構造の管理を効率化することを目的としています。

主な機能

  1. HTMLファイルの再帰的探索: 指定されたルートディレクトリから、サブディレクトリを含めてすべてのHTMLファイルを探索します。
  2. タイトル抽出: 各HTMLファイルから <title> タグの内容を抽出し、サイトマップ内のリンクテキストとして使用します。<title> タグが見つからない場合は、ファイル名を代替タイトルとして使用します。
  3. 除外フィルタリング: 正規表現パターンを指定することで、特定のディレクトリやファイルをサイトマップから除外できます。これにより、開発中のファイルやプライベートなコンテンツがサイトマップに含まれることを防ぎます。
  4. HTMLサイトマップの生成: 探索・抽出された情報に基づき、HTML5形式のサイトマップファイルを生成します。各エントリは、ページのタイトルとルートディレクトリからの相対パスで構成され、一覧性の高いリスト形式で表示されます。

解決する課題


web/MakeSiteMap.py

MakeSiteMap.py は、指定されたウェブサイトを再帰的にクロールし、その構造を視覚的に理解しやすいHTML形式のサイトマップツリービューとして生成するPythonスクリプトです。

目的と主な機能

このプログラムの主な目的は、ウェブサイトの全体像を把握し、コンテンツの網羅性や階層構造を視覚的に確認できるツールを提供することです。
具体的な機能は以下の通りです。

  1. ウェブサイトの再帰的クロール: 指定されたルートURLから出発し、同一ドメイン内のリンクを辿ってウェブサイト全体を深さ優先でクロールします。
  2. HTMLサイトマップツリービューの生成: クロールによって発見されたすべてのURLとそれに関連するメタデータ(ページのタイトル、最終更新日)を、HTMLの折りたたみ可能なツリー構造として整形して出力します。
  3. メタデータの抽出: 各ページのHTMLコンテンツから<title>タグを抽出してページのタイトルとし、HTTPレスポンスヘッダーのLast-Modifiedから最終更新日を取得します。
  4. URLのフィルタリングと除外:
  1. URLの正規化: URLのフラグメント(#以降のアンカー部分)を削除し、同じページを指す異なるURLが重複して扱われるのを防ぎます。
  2. 文字コードの自動判別: 取得したHTMLコンテンツの文字コードを自動で判別し、適切にデコードします。
  3. モダンなUI: 生成されるHTMLサイトマップはTailwind CSSを使用してスタイリングされており、視認性の高いツリービューを提供します。

解決する課題


web/replace_recursive.py

replace_recursive.py は、指定されたソースディレクトリツリー内のファイルを再帰的に走査し、ターゲットディレクトリへコピーするPythonスクリプトです。この処理中に、特定のファイルに対して定義済みの正規表現に基づいた文字列置換を実行します。

本プログラムの主な機能は以下の通りです。

  1. ファイルの再帰的コピー: source_dir で指定されたディレクトリ内のすべてのファイルとサブディレクトリを、target_dir へ構造を保ったままコピーします。
  2. 条件付き文字列置換: convert_file_extensions リストに含まれる拡張子を持つファイルに対して、replace_list に定義された正規表現パターンによる文字列置換を適用します。
  3. 置換除外リスト: exclude_list に含まれるファイル名を持つファイルは、たとえ置換対象の拡張子であっても文字列置換をスキップし、そのままターゲットディレクトリへコピーされます。
  4. エンコーディング自動検出: テキストファイルを読み込む際に chardet ライブラリを使用してファイルのエンコーディングを自動検出し、文字化けを防ぎます。
  5. ディレクトリの自動作成: コピー先のディレクトリが存在しない場合、必要に応じて自動的に作成されます。

このスクリプトは、ウェブサイトのパス構造を変更する際や、開発環境と本番環境で異なるURLやパスを使用する場合など、ディレクトリ構造を維持しつつ一括でファイルの内容を修正する必要があるシナリオで特に有用です。


web/XMLSiteMap.py

XMLSiteMap.py は、指定されたウェブサイトをクロールし、その構造とメタデータに基づいてXMLサイトマップを自動生成するPythonスクリプトです。このプログラムは、検索エンジン最適化(SEO)の目的で、ウェブサイトの全てのページを検索エンジンに効率的に通知するためのSitemapプロトコルに準拠したファイルを作成します。

主な機能は以下の通りです。

このプログラムは、ウェブサイトのページを手動で登録する手間を省き、サイトの更新状況を検索エンジンに効果的に伝えることで、ウェブサイトのインデックス作成と可視性の向上に貢献します。


XRD/atominf_xrayutilities.py

このPythonスクリプトは、X線反射率測定 (XRR) のシミュレーションを実行するためのツールです。

`xrayutilities および pymatgen` ライブラリを使用して、多層膜サンプルのXRRプロファイルを計算し、プロットします。また、CIFファイルから結晶構造情報を読み込み、シミュレーションに利用する機能もサポートしています。


XRD/Fhkl_usage.md

本スクリプトはコマンドラインインターフェース (CLI) から実行します。

実行モードやパラメータはコマンドライン引数として渡すか、スクリプト内のグローバル変数を直接編集することで設定できます。


XRD/guess_lattice_parameters.py

`guess_lattice_parameters.py` は、粉末X線回折(XRD)データに対して、ピーク検出と格子定数予測を行うPythonスクリプトです。このスクリプトは、XRD生データファイルや既存のピーク情報ファイルから回折ピークを抽出し、そのピーク情報に基づいて様々な結晶系(立方晶、正方晶、六方晶、斜方晶)の格子定数を推定します。また、推定された格子定数と観測ピークのマッチングを比較する機能や、ユーザーが指定した格子定数と観測ピークを比較する機能も提供します。

XRD/lsq_latt2.py

`lsq_latt2.py` は、X線回折データなどの回折データから結晶の格子定数を導出するために設計されたPythonスクリプトです。このプログラムは、観測データの前処理、重み付け、重み付き最小二乗フィッティング、そして最終的な格子定数(逆格子および実格子)の導出を行います。様々な格子系に対応しており、計算の精度を向上させるための外れ値の自動除去機能も備えています。

入力ファイルは特定のフォーマットに従い、複数の計算ジョブを連続して処理できます。各ジョブでは、格子系、補正フラグ、重み付けモード、回折位置の変換モードなどが設定され、それに従って観測データが処理されます。計算結果は整形されたレポートファイルとして出力され、各ジョブのプロットも生成されます。

Launcher実装
default.log: 7-013-XRD.ini: [latt_lsq_execute]

XRD/slxrd.py

'slxrd.py' は、X線回折シミュレーションを行うPythonプログラムです。特に、複数の異なる単位格子から構成される層状構造(多層膜)のX線回折強度を、指定された2θ範囲で計算します。計算された回折パターンはCSVファイルとして出力されるとともに、'matplotlib' を用いてグラフとしてリアルタイムに表示されます。

プログラムは、ソースコード内に直接記述された構造パラメータ(単位格子長 $a$、構造因子 $F$、繰り返し数 $N$、および層の積層順序)に基づいてシミュレーションを実行します。これにより、研究者は様々な層状構造のX線回折パターンを容易に予測し、実験データと比較することが可能になります。


XRD/superlattice/slxrd.py

slxrd.py は、X線回折シミュレーションを行うPythonプログラムです。特に、複数の異なる単位格子から構成される層状構造(多層膜)のX線回折強度を、指定された2θ範囲で計算します。計算された回折パターンはCSVファイルとして出力されるとともに、matplotlib を用いてグラフとしてリアルタイムに表示されます。

プログラムは、ソースコード内に直接記述された構造パラメータ(単位格子長 $a$、構造因子 $F$、繰り返し数 $N$、および層の積層順序)に基づいてシミュレーションを実行します。これにより、研究者は様々な層状構造のX線回折パターンを容易に予測し、実験データと比較することが可能になります。


XRD/test_lsq_latt2.py

test_lsq_latt2.py は、結晶学における格子定数決定のための最小二乗フィットプログラム lsq_latt2.py の機能を検証するためのテストスクリプトです。このプログラムは、以下の手順で lsq_latt2.py の動作を総合的に評価します。
  1. 理論的な回折ピークの生成: 三斜晶系、単斜晶系、斜方晶系、正方晶系、立方晶系、三方晶系、六方晶系といった、様々な結晶系の理想的な格子定数と指定されたX線波長を用いて、理論的な回折ピーク(Miller指数 $(hkl)$ と $2\theta$ 値)を計算します。
  2. ノイズの付加: 計算された $2\theta$ 値にランダムなガウスノイズを付加し、実際の実験データに近い状況をシミュレートします。
  3. 入力ファイルの生成: 生成されたノイズ付き回折ピークデータから、lsq_latt2.py が処理できる形式の入力ファイルを動的に作成します。この入力ファイルは一時ディレクトリ内に保存されます。
  4. lsq_latt2.py の実行: 作成された入力ファイルを引数として、指定された lsq_latt2.py スクリプトを subprocess として実行します。
  5. 出力の解析: lsq_latt2.py が生成した出力ファイルから、フィットによって得られた格子定数を解析・抽出します。
  6. 結果の評価: 抽出された格子定数を、元の理想的な格子定数と比較し、その誤差が許容範囲内であるかを判定します。
  7. レポートの生成: 各テストケースの結果(成功/失敗、誤差の詳細、推測される問題点)を標準出力に表示し、テスト全体のサマリーを出力します。

このプログラムは、lsq_latt2.py が様々な結晶系、ノイズレベル、回折ピーク数に対してロバストかつ正確に動作することを確認することを目的としています。


XRD/XRD_diffraction_angles.py

'XRD_diffraction_angles.py' は、Crystallographic Information File (CIF) 形式で記述された結晶構造データと、指定されたX線源(または波長)、および最大回折角 ($2\theta$) を入力として、X線回折のBragg角を計算するPythonスクリプトです。

主な機能:

解決する課題:

このプログラムは、特定の結晶材料に対して理論的に予測されるX線回折パターン(ピーク位置)を提供します。これは、実験で得られたX線回折データと比較することで、未知の結晶相の同定、既知の結晶材料の格子定数の確認、あるいは回折ピークの帰属(インデキシング)を行う際の強力なツールとなります。

Launcher実装
default.log: 7-013-XRD.ini: [XRD_diffraction_angles]

XRD/xrd_fit.py

このスクリプトは、実験的に測定されたX線回折(XRD)パターンと、結晶構造情報ファイル(CIF)から計算された理論的なXRDパターンを比較・分析するためのツールです。主な機能として、パターンプロット、相関分析、オーバーラップチェック、およびLASSO回帰による混合相の定量フィッティングを提供します。
Launcher実装
default.log: 7-013-XRD.ini: [XRD_fit]

XRD/xrd_fit_xrayutilities.py

`xrd_fit_xrayutilities.py` は、X線回折 (XRD) シミュレーションおよびフィッティングツールです。

このモジュールは、`xrayutilities ライブラリを使用して動的理論に基づいたXRDシミュレーションを実行し、実験データに対して構造パラメータ(組成 x、緩和度 relax、膜厚 thick`)を最適化します。また、フリンジ解析による膜厚の自動推定機能も備えています。

関連情報については、`xrd_fit_usage` ドキュメントを参照してください。


XRD/XRD_GUI/XRD_GUI_lib.py

XRD_GUI_lib.py は、X線回折(XRD)データの解析およびリファレンスパターン生成を支援するためのPythonライブラリです。主にGUIアプリケーションのバックエンドとして機能し、多様なデータ形式に対応するためのプラグイン機構を提供します。

目的

このライブラリの主な目的は、さまざまなソースからX線回折データを読み込み、標準化された形式で処理し、GUIアプリケーションなどの上位層に提供することです。具体的には、測定されたXRDパターンや結晶構造情報ファイル(CIFなど)から回折ピーク情報を抽出し、解析に必要なパラメータ(2θ範囲、X線波長など)を管理します。

主な機能

解決する課題


XRD/XRD_GUI/XRD_GUI.py

XRD_GUI.py は、X線回折 (XRD) データの視覚化、処理、解析を目的としたグラフィカルユーザーインターフェース (GUI) アプリケーションです。研究者や技術者がXRDパターンを直感的に分析し、複数の測定データを比較し、特定のピーク情報を素早く取得し、高品質なグラフを作成して発表資料に利用することを支援します。

主な機能:

解決する課題:

Launcher実装
default.log: 7-013-XRD.ini: [Button1.XRD]

XRD/xrd_pymatgen.py

`xrd_pymatgen.py は、Pymatgenライブラリを使用して結晶のX線回折(XRD`)パターンをシミュレーションし、結果をプロット・保存するPythonスクリプトです。

本スクリプトは、`CIF ファイルから結晶構造を読み込み、指定されたX線源(例: CuKa1)と2θ範囲で XRD パターンを計算します。計算された個々の回折ピークに対してガウス関数を適用し、指定された半値半幅 (FWHM`) でスムージングされたスペクトルを生成します。

結果の回折ピーク情報と生成されたスペクトルデータは、標準出力、指定されたログファイル、およびExcelファイルに保存されます。また、計算されたスペクトルと個々のピークは `matplotlib によってプロットされ、視覚的に表示されます。コマンドライン引数により、入力 CIF ファイル、X線源、2θの最小値・最大値・ステップ、FWHM` などを柔軟に設定できます。

関連リンク:


XRF/peaksearch.py

peaksearch.py は、X線回折(XRD)パターンなどのスペクトルデータから、自動的にピークを検出し、その結果を視覚化することを目的としたPythonプログラムです。データファイルから指定されたX軸とY軸のデータ範囲を読み込み、Savitzky-Golayフィルターを用いてデータを平滑化し、その導関数を計算します。これらの導関数と、強度や形状に関する閾値に基づいて、スペクトル中のピークを識別します。検出されたピークは、元のデータ、平滑化されたデータ、そして推定されたガウス関数フィッティングとともにグラフ上に表示されます。

主な機能は以下の通りです。

Launcher実装
default.log: 5-041-SpectrumAnalysis.ini: [Button13.Spectrum Analysis]

XRF/XRF_fit.py

XRF_fit.py は、X線蛍光 (XRF) スペクトルデータの可視化と基本的な解析を行うためのPythonプログラムです。主に、指定された入力ファイルからXRFスペクトルデータを読み込み、matplotlibとTkinterを組み合わせて構築されたGUI上でグラフとして表示します。

主な機能:

解決する課題:
このプログラムは、XRFデータの初期的な探索的データ解析 (EDA) と可視化を支援します。研究者や技術者がXRFスペクトルデータを手軽に確認し、基本的な特性を把握するためのツールとして機能します。