薄膜の構成的干渉計算
この薄膜構成的干渉計算機は、選択した真空波長の反射光が強め合う膜厚を求めます。波長、薄膜の屈折率、干渉次数に加え、反射する二つの光線のうち一方だけが位相反転するか、両方が同じ反射位相条件を持つかを指定してください。結果は垂直入射を仮定し、膜厚を波長と同じ長さ単位で示します。計算式と光路差も表示するため、値を直接確認できます。
無料で実行
計算式を使う前に反射位相条件を選択します
反射光の構成的干渉は、薄膜内を進む余分な距離だけでなく、境界で生じる位相変化にも左右されます。光がより高い屈折率の媒質へ向かう境界で反射すると半周期の位相変化が加わり、より低い屈折率側へ向かう反射では加わりません。観測者へ戻る二つの反射光を比較してください。一方だけに半周期の変化がある場合は one_phase_reversal を選びます。どちらにもない場合、または両方にある場合は、反射による相対位相差がゼロなので zero_or_two_phase_reversals を選びます。この選択によって許容される光学的厚さが四分の一波長分ずれます。本計算機は、周囲媒質、薄膜、基板の並びから利用者が条件を判断済みであることを前提とし、各屈折率から自動判定しません。垂直入射で一回の位相反転がある場合、2nt = (m + 1/2)λ のとき反射は強め合います。反転がゼロ回または二回の場合は 2nt = mλ です。
単位をそろえて入力し、干渉次数を解釈します
真空中の波長と薄膜の屈折率には、正の有限値を入力してください。長さ単位は固定されていません。波長をナノメートルで入力すれば膜厚もナノメートルになり、メートルで入力すればメートルになります。異なる単位を混在させたり、自動換算を期待したりしないでください。次数 m は、周期的に存在する構成的干渉の膜厚群から一つを選びます。一回だけ位相反転する場合、m = 0 は最小の正の解 λ / 4n を与え、m を一つ増やすたびに λ / 2n が加わります。反転がゼロ回または二回の場合、最小の正の膜厚は m = 1 の λ / 2n です。この条件で m = 0 とすると数学上は膜厚ゼロになりますが、物理的な薄膜ではないため入力を拒否します。返される optical_path_difference は 2nt です。一回反転では (m + 1/2)λ、同じ反射位相では mλ と一致することをご確認いただけます。
垂直入射モデルの適用範囲内で結果を利用します
この計算は、特定波長の反射を強める単層コーティングの概算、光学演習、センサー膜、干渉実験の初期検討に役立ちます。ただし、理想化した二光線モデルであり、完全なコーティングシミュレーターではありません。均一で損失がなく、実数の屈折率を持つ薄膜、単色光、コヒーレントな反射光、垂直入射を仮定しています。斜め入射では薄膜内角度が伝搬項に影響し、偏光によって反射位相や振幅も変わるため、この膜厚を最終設計値として扱わないでください。実材料には波長分散、吸収、表面粗さ、製造公差もあります。多層膜では各境界から反射光が加わるため、伝達行列法などによる解析が必要です。本結果を指定したモデルの公称膜厚として用い、実際の材料分散、入射角範囲、帯域幅、全積層構成で設計を検証してください。ブラウザーでは無料で計算でき、API の正常なリクエスト料金は $0.002 です。不正な入力には誤解を招く値を返しません。
活用例
単層コーティングの概算
境界での位相反転条件を確認したうえで、選択波長を構成的に反射する公称膜厚を求めます。
光学演習の検算
垂直入射における干渉次数を確認し、四分の一波長と半波長の膜厚群を比較します。
決定論的なテストデータ
教育ソフト、計算機、自動テスト向けに再現可能な膜厚と光路差を生成します。
よくある質問
膜厚にはどの単位が使われますか?
波長と同じ長さ単位です。550 nm と入力すれば nm で、メートルで入力すればメートルで膜厚が返されます。
一回の位相反転とは何ですか?
干渉する二つの反射光のうち一方だけが、境界で半周期の位相変化を受け、相対位相差が π になることです。
反転がゼロ回または二回のとき、次数ゼロが拒否されるのはなぜですか?
その組み合わせでは t = 0 になります。物理的な薄膜の厚さを求めるため、この条件では m を 1 以上にする必要があります。
斜め入射にも対応していますか?
いいえ。垂直入射を仮定しています。斜め入射では薄膜内の角度が必要で、偏光別の扱いも必要になる場合があります。
構成的干渉の膜厚なら反射率は必ず最大になりますか?
いいえ。理想的な二光線の位相はそろいますが、実際の反射率は振幅、吸収、分散、積層、角度、偏光にも依存します。
API のリクエスト料金はいくらですか?
API の正常なリクエストは $0.002 です。同じ決定論的計算をブラウザーでは無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/thin-film-constructive \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wavelength":550,"film_index":1.38,"order":0,"reflection_phase_condition":"one_phase_reversal"}'const res = await fetch("https://api.kit.forhosting.com/optics/thin-film-constructive", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wavelength": 550,
"film_index": 1.38,
"order": 0,
"reflection_phase_condition": "one_phase_reversal"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/thin-film-constructive",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wavelength": 550,
"film_index": 1.38,
"order": 0,
"reflection_phase_condition": "one_phase_reversal"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/thin-film-constructive", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wavelength":550,"film_index":1.38,"order":0,"reflection_phase_condition":"one_phase_reversal"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wavelength":550,"film_index":1.38,"order":0,"reflection_phase_condition":"one_phase_reversal"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/thin-film-constructive", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"wavelength": 550,
"film_index": 1.38,
"order": 0,
"reflection_phase_condition": "one_phase_reversal"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.thin_film_constructive",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |