"use client"; import { useMemo, useState } from "react"; import ToolShell from "@/components/toolkit/ToolShell"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; function num(v: string) { const n = parseFloat(v); return Number.isFinite(n) ? n : 0; } // Focused Gaussian 1/e² diameter: d = 4 M² λ f / (π D). export default function Page() { const [lambdaNm, setLambdaNm] = useState("1064"); // nm (default fiber) const [focalMm, setFocalMm] = useState("160"); // mm const [beamDm, setBeamDm] = useState("6"); // mm (input beam diameter at lens) const [m2, setM2] = useState("1.3"); const dUm = useMemo(() => { const lamUm = num(lambdaNm) / 1000; // convert nm -> µm const f = num(focalMm); const D = num(beamDm); const M2 = num(m2); if (lamUm <= 0 || f <= 0 || D <= 0 || M2 < 1) return 0; return (4 / Math.PI) * M2 * lamUm * (f / D); }, [lambdaNm, focalMm, beamDm, m2]); const dMm = dUm / 1000; return ( Inputs Result
1/e² spot diameter
{dMm.toFixed(4)} mm
{dUm.toFixed(2)} µm
Spot radius
{(dMm / 2).toFixed(4)} mm
{(dUm / 2).toFixed(2)} µm

Gaussian-beam estimate: d = 4 M²λf/(πD), where D is the 1/e² beam diameter at the lens. Real spots may be larger because of lens aberration, clipping, beam expansion, and focus error.

); }