From 22276046dadbb484eaa153e27bd2de65a2339da3 Mon Sep 17 00:00:00 2001 From: Alec Lau Date: Mon, 8 Sep 2025 16:00:33 -0400 Subject: [PATCH 1/2] added analytic formulas --- .../faq_categories-checkpoint.json | 341 ++++++++++++++++++ ...e-formula-for-ContinuousWave-checkpoint.md | 33 ++ ...the-formula-for-GaussianBeam-checkpoint.md | 42 +++ _faqs/what-does-the-FluxMonitor-record.md | 32 ++ .../what-is-the-formula-for-ContinuousWave.md | 33 ++ _faqs/what-is-the-formula-for-GaussianBeam.md | 42 +++ .../what-is-the-formula-for-GaussianPulse.md | 38 ++ _faqs/what-is-the-formula-for-PlaneWave.md | 34 ++ .../monitors-checkpoint.rst | 28 ++ .../.ipynb_checkpoints/sources-checkpoint.rst | 31 ++ ...e-formula-for-ContinuousWave-checkpoint.md | 14 + ...the-formula-for-GaussianBeam-checkpoint.md | 23 ++ docs/faq/what-does-the-FluxMonitor-record.md | 13 + .../what-is-the-formula-for-ContinuousWave.md | 14 + .../what-is-the-formula-for-GaussianBeam.md | 23 ++ .../what-is-the-formula-for-GaussianPulse.md | 19 + docs/faq/what-is-the-formula-for-PlaneWave.md | 15 + docs/monitors.rst | 1 + docs/sources.rst | 4 + faq_categories.json | 9 +- 20 files changed, 787 insertions(+), 2 deletions(-) create mode 100644 .ipynb_checkpoints/faq_categories-checkpoint.json create mode 100644 _faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md create mode 100644 _faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md create mode 100644 _faqs/what-does-the-FluxMonitor-record.md create mode 100644 _faqs/what-is-the-formula-for-ContinuousWave.md create mode 100644 _faqs/what-is-the-formula-for-GaussianBeam.md create mode 100644 _faqs/what-is-the-formula-for-GaussianPulse.md create mode 100644 _faqs/what-is-the-formula-for-PlaneWave.md create mode 100644 docs/.ipynb_checkpoints/monitors-checkpoint.rst create mode 100644 docs/.ipynb_checkpoints/sources-checkpoint.rst create mode 100644 docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md create mode 100644 docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md create mode 100644 docs/faq/what-does-the-FluxMonitor-record.md create mode 100644 docs/faq/what-is-the-formula-for-ContinuousWave.md create mode 100644 docs/faq/what-is-the-formula-for-GaussianBeam.md create mode 100644 docs/faq/what-is-the-formula-for-GaussianPulse.md create mode 100644 docs/faq/what-is-the-formula-for-PlaneWave.md diff --git a/.ipynb_checkpoints/faq_categories-checkpoint.json b/.ipynb_checkpoints/faq_categories-checkpoint.json new file mode 100644 index 0000000..9243ab8 --- /dev/null +++ b/.ipynb_checkpoints/faq_categories-checkpoint.json @@ -0,0 +1,341 @@ +[ + { + "category": "About Tidy3D", + "id": "about-tidy3d", + "faqs": [ + "_faqs/how-is-using-tidy3d-billed.md", + "_faqs/what-is-tidy3d.md", + "_faqs/can-i-get-a-discount-as-a-student-or-teacher.md", + "_faqs/what-are-the-advantages-of-tidy3d-compared-to-traditional-em-simulators.md", + "_faqs/do-i-have-to-know-python-programming-to-use-tidy3d.md", + "_faqs/what-is-a-flexcredit.md", + "_faqs/how-many-cpu-hours-is-one-flexcredit-comparable-to.md", + "_faqs/does-tidy3d-have-a-graphical-user-interface.md", + "_faqs/can-i-do-a-free-trial-to-evaluate-the-capabilities-of-tidy3d-before-purchasing-it.md" + ] + }, + { + "category": "Installation and Help", + "id": "installation-and-help", + "faqs": [ + "_faqs/how-can-i-install-the-python-client-of-tidy3d.md", + "_faqs/how-do-i-see-the-version-of-tidy3d-i-am-using.md", + "_faqs/how-do-i-get-help-related-to-a-tidy3d-object.md", + "_faqs/can-i-try-tidy3d-before-installing-the-python-client-on-my-computer.md" + ] + }, + { + "category": "Simulations", + "id": "simulations", + "faqs": [ + "_faqs/how-do-i-run-a-simulation-and-access-the-results.md", + "_faqs/how-to-submit-a-simulation-in-python-to-the-server.md", + "_faqs/how-do-i-upload-a-job-to-the-web-without-running-it-so-i-can-inspect-it-first.md", + "_faqs/how-do-i-monitor-the-progress-of-a-simulation.md", + "_faqs/how-do-i-load-the-results-of-a-simulation.md", + "_faqs/how-do-i-load-the-results-of-a-job-that-has-already-been-finished-without-knowing-the-task-id.md", + "_faqs/how-do-i-access-the-original-simulation-object-that-created-the-data.md", + "_faqs/how-do-i-save-and-load-the-simulationdata-object.md", + "_faqs/how-do-i-save-and-load-any-tidy3d-object.md", + "_faqs/how-do-i-get-all-data-in-a-tidy3d-object-as-a-dictionary.md", + "_faqs/how-do-i-estimate-how-many-credits-my-simulation-will-take.md", + "_faqs/how-do-i-see-the-cost-of-my-simulation.md", + "_faqs/how-can-i-optimize-the-simulation-cost.md", + "_faqs/how-do-i-print-the-task-log-file.md", + "_faqs/what-are-the-units-used-in-the-simulation.md", + "_faqs/how-to-run-a-2d-simulation-in-tidy3d.md", + "_faqs/why-the-simulation-time-for-the-exact-same-simulation-can-vary.md", + "_faqs/how-long-should-i-run-the-simulation.md", + "_faqs/can-you-convert-a-lumerical-script-file-to-tidy3d.md" + ] + }, + { + "category": "Parameter Sweep", + "id": "parameter-sweep", + "faqs": [ + "_faqs/how-do-i-run-a-parameter-sweep.md", + "_faqs/how-do-i-submit-multiple-simulations.md", + "_faqs/how-to-load-a-batch-result.md", + "_faqs/how-do-i-loop-through-tidy3d-web-batchdata-without-loading-all-of-the-data-into-memory.md", + "_faqs/how-do-i-save-or-load-a-tidy3d-web-batch-so-i-can-work-with-it-later.md" + ] + }, + { + "category": "Simulation Troubleshoot", + "id": "simulation-troubleshoot", + "faqs": [ + "_faqs/why-is-a-simulation-diverging.md", + "_faqs/how-can-i-troubleshoot-a-diverged-fdtd-simulation.md", + "_faqs/why-did-my-simulation-finish-early.md", + "_faqs/should-i-make-sure-that-fields-have-fully-decayed-by-the-end-of-the-simulation.md", + "_faqs/can-i-have-structures-larger-than-the-simulation-domain.md", + "_faqs/why-can-i-not-change-tidy3d-instances-after-they-are-created.md", + "_faqs/why-are-some-materials-not-showing-up.md" + ] + }, + { + "category": "Mediums", + "id": "mediums", + "faqs": [ + "_faqs/how-do-i-include-material-dispersion.md", + "_faqs/can-i-import-my-own-tabulated-material-data.md", + "_faqs/how-do-i-create-a-lossy-material-with-a-conductivity.md", + "_faqs/how-do-i-create-a-material-from-n-k-values-at-a-given-frequency.md", + "_faqs/how-do-i-create-a-material-from-optical-n-k-data.md", + "_faqs/how-do-i-create-a-dispersive-material-from-model-parameters.md", + "_faqs/how-do-i-create-an-anisotropic-material.md", + "_faqs/how-do-i-create-an-active-material.md", + "_faqs/how-do-i-create-a-spatially-varying-material.md", + "_faqs/how-do-i-export-a-spatially-varying-medium-dataset-to-hdf5.md", + "_faqs/how-do-i-load-a-commonly-used-dispersive-material.md", + "_faqs/how-can-i-define-a-2d-material.md", + "_faqs/how-can-i-define-graphene.md", + "_faqs/how-can-i-define-a-nonlinear-material.md" + ] + }, + { + "category": "Structures", + "id": "structures", + "faqs": [ + "_faqs/how-do-i-import-a-structure-from-a-gdsii-file.md", + "_faqs/how-can-i-import-a-structure-from-stl-files.md", + "_faqs/how-do-i-export-a-structure-to-gdsii-format.md", + "_faqs/how-do-i-create-a-box.md", + "_faqs/how-do-i-create-a-sphere.md", + "_faqs/how-do-i-create-a-cylinder.md", + "_faqs/how-do-i-create-a-polygon.md", + "_faqs/how-do-i-create-a-geometry-group.md", + "_faqs/how-do-i-combine-multiple-geometries.md", + "_faqs/when-two-structures-overlap-what-is-the-priority-determined.md", + "_faqs/how-to-rotate-a-geometry.md", + "_faqs/how-to-translate-a-geometry.md", + "_faqs/how-to-scale-a-geometry.md", + "_faqs/how-can-i-apply-transformations-to-a-geometry.md", + "_faqs/how-do-i-use-clip-operations.md", + "_faqs/which-features-can-i-use-to-create-geometries-in-tidy3d.md", + "_faqs/how-do-i-define-complex-geometries-using-trimesh.md", + "_faqs/how-do-i-build-curves-rings-and-other-photonic-integrated-components.md", + "_faqs/how-do-i-build-photonic-crystal-structures.md" + ] + }, + { + "category": "Sources", + "id": "sources", + "faqs": [ + "_faqs/what-source-bandwidth-should-i-use-for-my-simulation.md", + "_faqs/how-do-i-set-the-source-frequency-and-bandwidth.md", + "_faqs/how-can-i-plot-the-source-spectrum-and-time-dependence.md", + "_faqs/how-can-i-plot-the-source-spectrum.md", + "_faqs/how-are-results-normalized.md", + "_faqs/how-do-i-set-a-pointdipole-source.md", + "_faqs/how-do-i-calculate-the-power-radiated-by-a-pointdipole-source.md", + "_faqs/how-do-i-set-a-uniformcurrentsource-source.md", + "_faqs/how-do-i-set-a-planewave-source.md", + "_faqs/how-do-i-set-a-modesource.md", + "_faqs/how-do-i-inject-a-specific-optical-mode-in-a-waveguide.md", + "_faqs/how-do-i-inject-an-optical-mode-in-a-waveguide-bend.md", + "_faqs/how-do-i-set-a-gaussianbeam.md", + "_faqs/how-do-i-model-an-optical-fiber-mode-source.md", + "_faqs/how-do-i-model-a-converging-gaussian-beam.md", + "_faqs/how-do-i-model-a-diverging-gaussian-beam.md", + "_faqs/how-do-i-set-an-astigmaticgaussianbeam-source.md", + "_faqs/how-do-i-set-a-total-field-scattered-field-tfsf-source.md", + "_faqs/how-do-i-set-a-custom-field-source.md", + "_faqs/how-do-i-set-a-custom-current-source.md", + "_faqs/how-do-i-inject-an-optical-mode-in-a-tilted-waveguide.md", + "_faqs/what-is-the-formula-for-ContinuousWave.md", + "_faqs/what-is-the-formula-for-GaussianBeam.md", + "_faqs/what-is-the-formula-for-GaussianPulse.md", + "_faqs/what-is-the-formula-for-PlaneWave.md" + ] + }, + { + "category": "Grid Specification", + "id": "grid-specification", + "faqs": [ + "_faqs/what-do-i-need-to-know-about-the-numerical-grid.md", + "_faqs/how-fine-of-a-grid-or-mesh-does-my-simulation-need-how-to-choose-grid-spec.md", + "_faqs/how-to-use-the-automatic-nonuniform-meshing-what-steps-per-wavelength-will-be-sufficient.md", + "_faqs/how-can-i-create-a-uniform-grid.md", + "_faqs/how-can-i-locally-refine-the-mesh.md" + ] + }, + { + "category": "Boundary Conditions", + "id": "boundary-conditions", + "faqs": [ + "_faqs/which-types-of-boundary-conditions-are-available-in-tidy3d.md", + "_faqs/how-do-i-set-the-perfect-matched-layer-pml-boundary-condition.md", + "_faqs/how-do-i-set-the-perfect-electric-conductor-pec-boundary-condition.md", + "_faqs/how-do-i-set-the-perfect-magnetic-conductor-pmc-boundary-condition.md", + "_faqs/how-do-i-set-the-periodic-boundary-condition.md", + "_faqs/how-do-i-set-the-bloch-boundary-condition.md", + "_faqs/how-do-i-set-the-absorber-boundary-condition.md", + "_faqs/how-do-i-specify-different-boundary-conditions-on-each-simulation-domain-edge.md", + "_faqs/can-my-geometry-lie-within-the-boundary-layers.md", + "_faqs/what-is-the-ideal-distance-between-the-geometry-and-absorbing-layers.md", + "_faqs/how-do-i-avoid-reflections-from-the-simulation-edges.md", + "_faqs/how-do-i-simulate-periodic-structures-in-tidy3d.md", + "_faqs/what-is-the-difference-between-periodic-and-bloch-boundaries.md" + ] + }, + { + "category": "Symmetry", + "id": "symmetry", + "faqs": [ + "_faqs/why-is-it-preferable-to-use-symmetry-whenever-possible.md", + "_faqs/how-do-i-set-symmetry-in-tidy3d.md", + "_faqs/how-do-i-identify-the-symmetry-planes-of-my-simulation.md", + "_faqs/what-does-odd-i-e-pec-symmetry-mean.md", + "_faqs/what-does-even-i-e-pmc-symmetry-mean.md", + "_faqs/how-do-i-filter-out-waveguide-modes-using-symmetry.md", + "_faqs/does-tidy3d-support-continuous-and-discrete-rotational-symmetries.md" + ] + }, + { + "category": "Mode Solver", + "id": "mode-solver", + "faqs": [ + "_faqs/how-do-i-set-the-mode-solver.md", + "_faqs/how-are-the-output-modes-sorted.md", + "_faqs/how-do-i-set-the-mode-polarization.md", + "_faqs/how-do-i-run-the-mode-solver-locally.md", + "_faqs/how-do-i-run-the-server-side-mode-solver.md", + "_faqs/what-are-the-differences-between-running-the-server-side-and-the-local-mode-solver.md", + "_faqs/which-information-can-i-obtain-from-the-mode-solver.md", + "_faqs/how-can-i-get-the-mode-solver-information.md", + "_faqs/how-can-i-get-the-mode-field-distribution.md", + "_faqs/how-can-i-plot-the-mode-field-distribution.md", + "_faqs/how-do-i-plot-the-mode-effective-index-versus-wavelength.md", + "_faqs/how-do-i-plot-the-mode-group-index-versus-wavelength.md", + "_faqs/how-do-i-calculate-the-mode-effective-area.md", + "_faqs/how-do-i-calculate-the-mode-polarization-fraction.md", + "_faqs/how-do-i-calculate-the-waveguide-mode-polarization-fraction.md" + ] + }, + { + "category": "Monitors", + "id": "monitors", + "faqs": [ + "_faqs/how-do-i-set-a-fieldmonitor.md", + "_faqs/how-do-i-specify-apodization.md", + "_faqs/how-do-i-create-field-animations.md", + "_faqs/to-how-do-i-change-the-phase-of-fields-obtained-from-frequency-domain-monitors.md", + "_faqs/how-do-i-set-a-fieldtimemonitor.md", + "_faqs/how-do-i-create-a-field-animation.md", + "_faqs/how-do-i-plot-the-time-domain-field-at-a-specific-time.md", + "_faqs/how-do-i-set-a-fluxmonitor.md", + "_faqs/how-do-i-calculate-the-poynting-vector-at-a-specific-surface.md", + "_faqs/how-do-i-integrate-the-poyting-vector-at-a-specific-surface.md", + "_faqs/how-do-i-create-a-flux-box.md", + "_faqs/how-do-i-set-a-fluxtimemonitor.md", + "_faqs/how-do-i-set-a-modemonitor.md", + "_faqs/how-do-i-get-the-coupling-efficiency-of-a-specific-waveguide-mode.md", + "_faqs/how-do-i-calculate-mode-overlap.md", + "_faqs/how-do-i-set-a-modesolvermonitor.md", + "_faqs/how-do-i-set-a-permittivitymonitor.md", + "_faqs/how-do-i-set-a-fieldprojectioncartesianmonitor.md", + "_faqs/how-do-i-set-a-fieldprojectionanglemonitor.md", + "_faqs/how-do-i-set-a-fieldprojectionkspacemonitor.md", + "_faqs/how-do-i-set-a-diffractionmonitor.md", + "_faqs/what-does-the-FluxMonitor-record.md" + ] + }, + { + "category": "Data Visualization and Postprocessing", + "id": "data-visualization-and-postprocessing", + "faqs": [ + "_faqs/how-do-i-plot-an-object-with-a-spatial-definition.md", + "_faqs/how-do-i-change-the-object-plotting-characteristics-facecolor-edgecolor-etc.md", + "_faqs/how-do-i-change-the-global-plot-characteristics-title-size-etc.md", + "_faqs/how-do-i-access-the-data-of-a-specific-monitor.md", + "_faqs/how-do-i-interpolate-the-electromagnetic-field-data-at-the-yee-cell-centers.md", + "_faqs/how-do-i-get-the-monitor-s-data-from-a-simulationdata-object.md", + "_faqs/how-do-i-select-the-data-at-a-certain-coordinate-value-i-e-x-0-0-f-200e12.md", + "_faqs/how-do-i-get-the-monitor-data-at-a-certain-index.md", + "_faqs/how-do-i-interpolate-the-monitor-data-at-various-coordinate-values.md", + "_faqs/how-do-i-get-the-real-part-imaginary-part-or-absolute-value-of-complex-valued-simulation-data.md", + "_faqs/how-do-i-get-the-raw-monitor-data-values-as-a-numpy-array.md", + "_faqs/how-do-i-get-a-specific-field-component-from-a-fieldmonitor-or-fieldtimemonitor.md", + "_faqs/how-do-i-plot-the-monitor-data-as-a-function-of-one-of-its-coordinates.md", + "_faqs/how-do-i-plot-the-simulation-structure-on-top-of-my-field-plot.md", + "_faqs/how-do-i-project-electromagnetic-near-field-data-to-the-far-field.md", + "_faqs/how-do-i-export-field-data-to-zbf.md" + ] + }, + { + "category": "Scattering Matrix", + "id": "scattering-matrix", + "faqs": [ + "_faqs/how-do-i-compute-scattering-matrix-parameters-for-modeling-my-device.md", + "_faqs/how-do-i-specify-a-port-in-the-scattering-matrix-calculation.md", + "_faqs/how-do-i-specify-mappings-between-scattering-matrix-elements.md" + ] + }, + { + "category": "Resonance Finder", + "id": "resonance-finder", + "faqs": [ + "_faqs/how-do-i-set-the-resonancefinder.md", + "_faqs/how-do-i-get-resonance-quality-factors.md", + "_faqs/how-do-i-calculate-photonic-band-diagrams-using-the-resonancefinder.md", + "_faqs/how-do-i-calculate-the-effective-mode-volume.md", + "_faqs/how-to-ensure-the-calculated-quality-factor-is-accurate.md", + "_faqs/how-do-i-calculate-the-purcell-factor.md" + ] + }, + { + "category": "Inverse Design", + "id": "inverse-design", + "faqs": [ + "_faqs/what-is-adjoint-simulation.md", + "_faqs/how-many-simulations-are-performed-in-adjoint-calculations.md", + "_faqs/how-is-the-adjoint-simulation-billed.md", + "_faqs/how-do-i-set-an-inverse-design-problem.md", + "_faqs/what-are-the-differences-between-adjoint-shape-topology-and-level-set-optimizations.md", + "_faqs/how-do-i-set-an-adjoint-shape-optimization.md", + "_faqs/how-do-i-set-an-adjoint-topology-optimization.md", + "_faqs/how-do-i-create-an-adjoint-parameterized-level-set-optimization.md", + "_faqs/how-do-i-include-fabrication-constraints-in-adjoint-shape-optimization.md", + "_faqs/how-do-i-include-fabrication-constraints-in-adjoint-topology-optimization.md", + "_faqs/how-do-i-include-fabrication-constraints-in-adjoint-level-set-optimization.md", + "_faqs/how-do-i-export-the-final-inverse-design-structure-to-gds.md" + ] + }, + { + "category": "EME", + "id": "eme", + "faqs": [ + "_faqs/how-do-i-run-a-sweep-with-eme.md", + "_faqs/how-to-define-the-number-of-modes-for-an-eme-simulation.md", + "_faqs/how-can-i-simulate-bent-waveguides-with-eme.md", + "_faqs/how-do-i-set-an-eme-simulation.md", + "_faqs/what-is-eme.md" + ] + }, + { + "category": "Heat", + "id": "heat", + "faqs": [ + "_faqs/how-do-i-use-heat-data-in-a-fdtd-simulation.md", + "_faqs/how-do-i-set-a-heat-simulation.md", + "_faqs/how-do-i-set-a-heat-source.md", + "_faqs/what-are-the-units-for-heat-simulation.md", + "_faqs/which-types-of-boundary-conditions-are-available.md", + "_faqs/how-can-i-set-boundary-conditions.md" + ] + }, + { + "category": "Charge", + "id": "charge", + "faqs": [ + "_faqs/how-can-i-define-doping-profile.md", + "_faqs/which-types-of-charge-boundary-conditions-are-available.md", + "_faqs/how-can-i-define-the-simulation-grid.md", + "_faqs/what-charge-monitors-are-available.md", + "_faqs/how-can-i-define-a-semiconductor-material.md", + "_faqs/how-do-i-set-a-charge-simulation.md", + "_faqs/how-can-i-set-charge-boundary-conditions.md" + ] + } +] \ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md new file mode 100644 index 0000000..fad666f --- /dev/null +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md @@ -0,0 +1,33 @@ +--- +_schema: default +title: What is the formula for ContinuousWave? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The ContinuousWave sourcetime, if the DC component is zeroed out, has the following formula: +
+
+ $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$ +

+
where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
+
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
\ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md new file mode 100644 index 0000000..f5d9e84 --- /dev/null +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md @@ -0,0 +1,42 @@ +--- +_schema: default +title: What is the formula for GaussianBeam? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The GaussianBeam source has the following scalar field amplitude, in cylindrical coordinates: +
+
+ $u(r,z)=\frac{w_0}{w(z)}e^{-\frac{r^2}{w(z)^2}}e^{i(zk_0 + \frac{r^2k_0}{2R(z)} - \psi_g)}$ +

+where: + + +
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
\ No newline at end of file diff --git a/_faqs/what-does-the-FluxMonitor-record.md b/_faqs/what-does-the-FluxMonitor-record.md new file mode 100644 index 0000000..a98881f --- /dev/null +++ b/_faqs/what-does-the-FluxMonitor-record.md @@ -0,0 +1,32 @@ +--- +_schema: default +title: What does the FluxMonitor record? +date: 2025-09-08 17:29:25 +enabled: true +category: Monitors +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux. +
+
+ Re$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ +

+where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-ContinuousWave.md b/_faqs/what-is-the-formula-for-ContinuousWave.md new file mode 100644 index 0000000..fad666f --- /dev/null +++ b/_faqs/what-is-the-formula-for-ContinuousWave.md @@ -0,0 +1,33 @@ +--- +_schema: default +title: What is the formula for ContinuousWave? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The ContinuousWave sourcetime, if the DC component is zeroed out, has the following formula: +
+
+ $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$ +

+
where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
+
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
\ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-GaussianBeam.md b/_faqs/what-is-the-formula-for-GaussianBeam.md new file mode 100644 index 0000000..f5d9e84 --- /dev/null +++ b/_faqs/what-is-the-formula-for-GaussianBeam.md @@ -0,0 +1,42 @@ +--- +_schema: default +title: What is the formula for GaussianBeam? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The GaussianBeam source has the following scalar field amplitude, in cylindrical coordinates: +
+
+ $u(r,z)=\frac{w_0}{w(z)}e^{-\frac{r^2}{w(z)^2}}e^{i(zk_0 + \frac{r^2k_0}{2R(z)} - \psi_g)}$ +

+where: + + +
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
\ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-GaussianPulse.md b/_faqs/what-is-the-formula-for-GaussianPulse.md new file mode 100644 index 0000000..7d46ec7 --- /dev/null +++ b/_faqs/what-is-the-formula-for-GaussianPulse.md @@ -0,0 +1,38 @@ +--- +_schema: default +title: What is the formula for GaussianPulse? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The GaussianPulse sourcetime, if the DC component is zeroed out, has the following formula: +
+
+ $(i+\frac{t}{t_w^2\omega_0})Ae^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

+
+
If the DC component is not zeroed out, the formula is

+
+ $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

+
where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
+
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse).
\ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-PlaneWave.md b/_faqs/what-is-the-formula-for-PlaneWave.md new file mode 100644 index 0000000..a502d13 --- /dev/null +++ b/_faqs/what-is-the-formula-for-PlaneWave.md @@ -0,0 +1,34 @@ +--- +_schema: default +title: What is the formula for PlaneWave? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The PlaneWave source has the following scalar field amplitude: +
+
+ $u(z)=e^{ik_z z}$ +

+where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. + +
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile).
\ No newline at end of file diff --git a/docs/.ipynb_checkpoints/monitors-checkpoint.rst b/docs/.ipynb_checkpoints/monitors-checkpoint.rst new file mode 100644 index 0000000..6b7dd4c --- /dev/null +++ b/docs/.ipynb_checkpoints/monitors-checkpoint.rst @@ -0,0 +1,28 @@ +Monitors +======== + +.. toctree:: + :maxdepth: 2 + + faq/how-do-i-set-a-fieldmonitor.md + faq/how-do-i-specify-apodization.md + faq/how-do-i-create-field-animations.md + faq/to-how-do-i-change-the-phase-of-fields-obtained-from-frequency-domain-monitors.md + faq/how-do-i-set-a-fieldtimemonitor.md + faq/how-do-i-create-a-field-animation.md + faq/how-do-i-plot-the-time-domain-field-at-a-specific-time.md + faq/how-do-i-set-a-fluxmonitor.md + faq/how-do-i-calculate-the-poynting-vector-at-a-specific-surface.md + faq/how-do-i-integrate-the-poyting-vector-at-a-specific-surface.md + faq/how-do-i-create-a-flux-box.md + faq/how-do-i-set-a-fluxtimemonitor.md + faq/how-do-i-set-a-modemonitor.md + faq/how-do-i-get-the-coupling-efficiency-of-a-specific-waveguide-mode.md + faq/how-do-i-calculate-mode-overlap.md + faq/how-do-i-set-a-modesolvermonitor.md + faq/how-do-i-set-a-permittivitymonitor.md + faq/how-do-i-set-a-fieldprojectioncartesianmonitor.md + faq/how-do-i-set-a-fieldprojectionanglemonitor.md + faq/how-do-i-set-a-fieldprojectionkspacemonitor.md + faq/how-do-i-set-a-diffractionmonitor.md + faq/what-does-the-FluxMonitor-record.md diff --git a/docs/.ipynb_checkpoints/sources-checkpoint.rst b/docs/.ipynb_checkpoints/sources-checkpoint.rst new file mode 100644 index 0000000..e2019ad --- /dev/null +++ b/docs/.ipynb_checkpoints/sources-checkpoint.rst @@ -0,0 +1,31 @@ +Sources +======= + +.. toctree:: + :maxdepth: 2 + + faq/what-source-bandwidth-should-i-use-for-my-simulation.md + faq/how-do-i-set-the-source-frequency-and-bandwidth.md + faq/how-can-i-plot-the-source-spectrum-and-time-dependence.md + faq/how-can-i-plot-the-source-spectrum.md + faq/how-are-results-normalized.md + faq/how-do-i-set-a-pointdipole-source.md + faq/how-do-i-calculate-the-power-radiated-by-a-pointdipole-source.md + faq/how-do-i-set-a-uniformcurrentsource-source.md + faq/how-do-i-set-a-planewave-source.md + faq/how-do-i-set-a-modesource.md + faq/how-do-i-inject-a-specific-optical-mode-in-a-waveguide.md + faq/how-do-i-inject-an-optical-mode-in-a-waveguide-bend.md + faq/how-do-i-set-a-gaussianbeam.md + faq/how-do-i-model-an-optical-fiber-mode-source.md + faq/how-do-i-model-a-converging-gaussian-beam.md + faq/how-do-i-model-a-diverging-gaussian-beam.md + faq/how-do-i-set-an-astigmaticgaussianbeam-source.md + faq/how-do-i-set-a-total-field-scattered-field-tfsf-source.md + faq/how-do-i-set-a-custom-field-source.md + faq/how-do-i-set-a-custom-current-source.md + faq/how-do-i-inject-an-optical-mode-in-a-tilted-waveguide.md + faq/what-is-the-formula-for-ContinuousWave.md + faq/what-is-the-formula-for-GaussianBeam.md + faq/what-is-the-formula-for-GaussianPulse.md + faq/what-is-the-formula-for-PlaneWave.md diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md new file mode 100644 index 0000000..ffe0af4 --- /dev/null +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md @@ -0,0 +1,14 @@ +# What is the formula for ContinuousWave? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The ContinuousWave sourcetime, if the DC component is zeroed out, has the following formula: + +
+ $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$ +

+where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md new file mode 100644 index 0000000..8bc97a7 --- /dev/null +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md @@ -0,0 +1,23 @@ +# What is the formula for GaussianBeam? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The GaussianBeam source has the following scalar field amplitude, in cylindrical coordinates: + +
+ $u(r,z)=\frac{w_0}{w(z)}e^{-\frac{r^2}{w(z)^2}}e^{i(zk_0 + \frac{r^2k_0}{2R(z)} - \psi_g)}$ +

+where: + + +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file diff --git a/docs/faq/what-does-the-FluxMonitor-record.md b/docs/faq/what-does-the-FluxMonitor-record.md new file mode 100644 index 0000000..6884315 --- /dev/null +++ b/docs/faq/what-does-the-FluxMonitor-record.md @@ -0,0 +1,13 @@ +# What does the FluxMonitor record? + +| Date | Category | +|------------|-------------| +| 2025-09-08 17:29:25 | Monitors | + + +The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux. + +
+ Re$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ +

+where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-ContinuousWave.md b/docs/faq/what-is-the-formula-for-ContinuousWave.md new file mode 100644 index 0000000..ffe0af4 --- /dev/null +++ b/docs/faq/what-is-the-formula-for-ContinuousWave.md @@ -0,0 +1,14 @@ +# What is the formula for ContinuousWave? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The ContinuousWave sourcetime, if the DC component is zeroed out, has the following formula: + +
+ $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$ +

+where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-GaussianBeam.md b/docs/faq/what-is-the-formula-for-GaussianBeam.md new file mode 100644 index 0000000..8bc97a7 --- /dev/null +++ b/docs/faq/what-is-the-formula-for-GaussianBeam.md @@ -0,0 +1,23 @@ +# What is the formula for GaussianBeam? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The GaussianBeam source has the following scalar field amplitude, in cylindrical coordinates: + +
+ $u(r,z)=\frac{w_0}{w(z)}e^{-\frac{r^2}{w(z)^2}}e^{i(zk_0 + \frac{r^2k_0}{2R(z)} - \psi_g)}$ +

+where: + + +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-GaussianPulse.md b/docs/faq/what-is-the-formula-for-GaussianPulse.md new file mode 100644 index 0000000..7681508 --- /dev/null +++ b/docs/faq/what-is-the-formula-for-GaussianPulse.md @@ -0,0 +1,19 @@ +# What is the formula for GaussianPulse? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The GaussianPulse sourcetime, if the DC component is zeroed out, has the following formula: + +
+ $(i+\frac{t}{t_w^2\omega_0})Ae^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

+ +If the DC component is not zeroed out, the formula is
+
+ $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

+where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-PlaneWave.md b/docs/faq/what-is-the-formula-for-PlaneWave.md new file mode 100644 index 0000000..d0812c9 --- /dev/null +++ b/docs/faq/what-is-the-formula-for-PlaneWave.md @@ -0,0 +1,15 @@ +# What is the formula for PlaneWave? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The PlaneWave source has the following scalar field amplitude: + +
+ $u(z)=e^{ik_z z}$ +

+where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. + +See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile). \ No newline at end of file diff --git a/docs/monitors.rst b/docs/monitors.rst index f156f5c..6b7dd4c 100644 --- a/docs/monitors.rst +++ b/docs/monitors.rst @@ -25,3 +25,4 @@ Monitors faq/how-do-i-set-a-fieldprojectionanglemonitor.md faq/how-do-i-set-a-fieldprojectionkspacemonitor.md faq/how-do-i-set-a-diffractionmonitor.md + faq/what-does-the-FluxMonitor-record.md diff --git a/docs/sources.rst b/docs/sources.rst index 48d99ec..e2019ad 100644 --- a/docs/sources.rst +++ b/docs/sources.rst @@ -25,3 +25,7 @@ Sources faq/how-do-i-set-a-custom-field-source.md faq/how-do-i-set-a-custom-current-source.md faq/how-do-i-inject-an-optical-mode-in-a-tilted-waveguide.md + faq/what-is-the-formula-for-ContinuousWave.md + faq/what-is-the-formula-for-GaussianBeam.md + faq/what-is-the-formula-for-GaussianPulse.md + faq/what-is-the-formula-for-PlaneWave.md diff --git a/faq_categories.json b/faq_categories.json index bbd3f34..9243ab8 100644 --- a/faq_categories.json +++ b/faq_categories.json @@ -142,7 +142,11 @@ "_faqs/how-do-i-set-a-total-field-scattered-field-tfsf-source.md", "_faqs/how-do-i-set-a-custom-field-source.md", "_faqs/how-do-i-set-a-custom-current-source.md", - "_faqs/how-do-i-inject-an-optical-mode-in-a-tilted-waveguide.md" + "_faqs/how-do-i-inject-an-optical-mode-in-a-tilted-waveguide.md", + "_faqs/what-is-the-formula-for-ContinuousWave.md", + "_faqs/what-is-the-formula-for-GaussianBeam.md", + "_faqs/what-is-the-formula-for-GaussianPulse.md", + "_faqs/what-is-the-formula-for-PlaneWave.md" ] }, { @@ -233,7 +237,8 @@ "_faqs/how-do-i-set-a-fieldprojectioncartesianmonitor.md", "_faqs/how-do-i-set-a-fieldprojectionanglemonitor.md", "_faqs/how-do-i-set-a-fieldprojectionkspacemonitor.md", - "_faqs/how-do-i-set-a-diffractionmonitor.md" + "_faqs/how-do-i-set-a-diffractionmonitor.md", + "_faqs/what-does-the-FluxMonitor-record.md" ] }, { From 94174093251ddba1ffad0a813ba93dd366325721 Mon Sep 17 00:00:00 2001 From: Alec Lau Date: Wed, 10 Sep 2025 10:05:24 -0400 Subject: [PATCH 2/2] fixed links --- ...-does-the-FluxMonitor-record-checkpoint.md | 32 ++++++++++++++++ ...e-formula-for-ContinuousWave-checkpoint.md | 2 +- ...the-formula-for-GaussianBeam-checkpoint.md | 2 +- ...he-formula-for-GaussianPulse-checkpoint.md | 38 +++++++++++++++++++ ...is-the-formula-for-PlaneWave-checkpoint.md | 34 +++++++++++++++++ _faqs/what-does-the-FluxMonitor-record.md | 4 +- .../what-is-the-formula-for-ContinuousWave.md | 2 +- _faqs/what-is-the-formula-for-GaussianBeam.md | 2 +- .../what-is-the-formula-for-GaussianPulse.md | 2 +- _faqs/what-is-the-formula-for-PlaneWave.md | 2 +- ...-does-the-FluxMonitor-record-checkpoint.md | 13 +++++++ ...e-formula-for-ContinuousWave-checkpoint.md | 2 +- ...the-formula-for-GaussianBeam-checkpoint.md | 2 +- ...he-formula-for-GaussianPulse-checkpoint.md | 19 ++++++++++ ...is-the-formula-for-PlaneWave-checkpoint.md | 15 ++++++++ docs/faq/what-does-the-FluxMonitor-record.md | 4 +- .../what-is-the-formula-for-ContinuousWave.md | 2 +- .../what-is-the-formula-for-GaussianBeam.md | 2 +- .../what-is-the-formula-for-GaussianPulse.md | 2 +- docs/faq/what-is-the-formula-for-PlaneWave.md | 2 +- 20 files changed, 167 insertions(+), 16 deletions(-) create mode 100644 _faqs/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md create mode 100644 _faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md create mode 100644 _faqs/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md create mode 100644 docs/faq/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md create mode 100644 docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md create mode 100644 docs/faq/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md diff --git a/_faqs/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md b/_faqs/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md new file mode 100644 index 0000000..ec267e1 --- /dev/null +++ b/_faqs/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md @@ -0,0 +1,32 @@ +--- +_schema: default +title: What does the FluxMonitor record? +date: 2025-09-08 17:29:25 +enabled: true +category: Monitors +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux. +
+
+ Real$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ +

+where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md index fad666f..4230796 100644 --- a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md @@ -30,4 +30,4 @@ The ContinuousWave sourcetime, if the DC component is zeroed out, has the follow $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$
where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
-
See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
\ No newline at end of file +
See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
\ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md index f5d9e84..b734646 100644 --- a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md @@ -39,4 +39,4 @@ where:
  • $\psi_g=\arctan(\frac{z+z_0}{z_r})-\arctan(\frac{z_0}{z_r})$ is the Gouy phase
  • -
    See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
    \ No newline at end of file +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
    \ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md new file mode 100644 index 0000000..064edb6 --- /dev/null +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md @@ -0,0 +1,38 @@ +--- +_schema: default +title: What is the formula for GaussianPulse? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The GaussianPulse sourcetime, if the DC component is zeroed out, has the following formula: +
    +
    + $(i+\frac{t}{t_w^2\omega_0})Ae^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

    +
    +
    If the DC component is not zeroed out, the formula is

    +
    + $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

    +
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
    +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse).
    \ No newline at end of file diff --git a/_faqs/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md new file mode 100644 index 0000000..b3eab9f --- /dev/null +++ b/_faqs/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md @@ -0,0 +1,34 @@ +--- +_schema: default +title: What is the formula for PlaneWave? +date: 2025-09-05 17:29:25 +enabled: true +category: Sources +_inputs: + title: + type: text + label: QUESTION TITLE + enabled: + type: switch + hidden: true + date: + type: datetime + label: DATE + instance_value: NOW + category: + type: select + options: + values: data.faq_categories + value_key: key + preview: + text: + - key: category_name +--- +The PlaneWave source has the following scalar field amplitude: +
    +
    + $u(z)=e^{ik_z z}$ +

    +where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. + +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile).
    \ No newline at end of file diff --git a/_faqs/what-does-the-FluxMonitor-record.md b/_faqs/what-does-the-FluxMonitor-record.md index a98881f..ec267e1 100644 --- a/_faqs/what-does-the-FluxMonitor-record.md +++ b/_faqs/what-does-the-FluxMonitor-record.md @@ -27,6 +27,6 @@ _inputs: The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux.
    - Re$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ + Real$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$

    -where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file +where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-ContinuousWave.md b/_faqs/what-is-the-formula-for-ContinuousWave.md index fad666f..4230796 100644 --- a/_faqs/what-is-the-formula-for-ContinuousWave.md +++ b/_faqs/what-is-the-formula-for-ContinuousWave.md @@ -30,4 +30,4 @@ The ContinuousWave sourcetime, if the DC component is zeroed out, has the follow $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
    -
    See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
    \ No newline at end of file +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave).
    \ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-GaussianBeam.md b/_faqs/what-is-the-formula-for-GaussianBeam.md index f5d9e84..b734646 100644 --- a/_faqs/what-is-the-formula-for-GaussianBeam.md +++ b/_faqs/what-is-the-formula-for-GaussianBeam.md @@ -39,4 +39,4 @@ where:
  • $\psi_g=\arctan(\frac{z+z_0}{z_r})-\arctan(\frac{z_0}{z_r})$ is the Gouy phase
  • -
    See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
    \ No newline at end of file +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile).
    \ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-GaussianPulse.md b/_faqs/what-is-the-formula-for-GaussianPulse.md index 7d46ec7..064edb6 100644 --- a/_faqs/what-is-the-formula-for-GaussianPulse.md +++ b/_faqs/what-is-the-formula-for-GaussianPulse.md @@ -35,4 +35,4 @@ The GaussianPulse sourcetime, if the DC component is zeroed out, has the followi $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$.
    -
    See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse).
    \ No newline at end of file +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse).
    \ No newline at end of file diff --git a/_faqs/what-is-the-formula-for-PlaneWave.md b/_faqs/what-is-the-formula-for-PlaneWave.md index a502d13..b3eab9f 100644 --- a/_faqs/what-is-the-formula-for-PlaneWave.md +++ b/_faqs/what-is-the-formula-for-PlaneWave.md @@ -31,4 +31,4 @@ The PlaneWave source has the following scalar field amplitude:
    where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. -
    See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile).
    \ No newline at end of file +
    See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile).
    \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md new file mode 100644 index 0000000..4856fd4 --- /dev/null +++ b/docs/faq/.ipynb_checkpoints/what-does-the-FluxMonitor-record-checkpoint.md @@ -0,0 +1,13 @@ +# What does the FluxMonitor record? + +| Date | Category | +|------------|-------------| +| 2025-09-08 17:29:25 | Monitors | + + +The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux. + +
    + Real$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ +

    +where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md index ffe0af4..b6f02c9 100644 --- a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-ContinuousWave-checkpoint.md @@ -11,4 +11,4 @@ The ContinuousWave sourcetime, if the DC component is zeroed out, has the follow $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md index 8bc97a7..3eb94d9 100644 --- a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianBeam-checkpoint.md @@ -20,4 +20,4 @@ where:
  • $\psi_g=\arctan(\frac{z+z_0}{z_r})-\arctan(\frac{z_0}{z_r})$ is the Gouy phase
  • -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md new file mode 100644 index 0000000..b4a9b0e --- /dev/null +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-GaussianPulse-checkpoint.md @@ -0,0 +1,19 @@ +# What is the formula for GaussianPulse? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The GaussianPulse sourcetime, if the DC component is zeroed out, has the following formula: + +
    + $(i+\frac{t}{t_w^2\omega_0})Ae^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

    + +If the DC component is not zeroed out, the formula is
    +
    + $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$ +

    +where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse). \ No newline at end of file diff --git a/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md new file mode 100644 index 0000000..9b68a73 --- /dev/null +++ b/docs/faq/.ipynb_checkpoints/what-is-the-formula-for-PlaneWave-checkpoint.md @@ -0,0 +1,15 @@ +# What is the formula for PlaneWave? + +| Date | Category | +|------------|-------------| +| 2025-09-05 17:29:25 | Sources | + + +The PlaneWave source has the following scalar field amplitude: + +
    + $u(z)=e^{ik_z z}$ +

    +where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. + +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile). \ No newline at end of file diff --git a/docs/faq/what-does-the-FluxMonitor-record.md b/docs/faq/what-does-the-FluxMonitor-record.md index 6884315..4856fd4 100644 --- a/docs/faq/what-does-the-FluxMonitor-record.md +++ b/docs/faq/what-does-the-FluxMonitor-record.md @@ -8,6 +8,6 @@ The FluxMonitor records field data tangential $E$ and $H$ fields colocated to the cell boundaries in the monitor's 2D plane grid. It then computes and integrates the Poynting vector, returning the real part of this integral as the flux.
    - Re$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$ + Real$(\sum\limits_{\text{cells in monitor}}\frac{1}{2}(E_1\cdot H_2^*-E_2\cdot H_1^*)dA_{\text{cell}})$

    -where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file +where $dA$ is the area of each cell in the monitor, and the field components 1 and 2 are given depending on the monitor geometry: for $x$-normal monitors, 1 is $y$ and 2 is $z$; for $y$-normal monitors, 1 is $x$ and 2 is $z$; for $z$-normal monitors, 1 is $x$ and 2 is $y$. See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/data/monitor_data.html#ElectromagneticFieldData). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-ContinuousWave.md b/docs/faq/what-is-the-formula-for-ContinuousWave.md index ffe0af4..b6f02c9 100644 --- a/docs/faq/what-is-the-formula-for-ContinuousWave.md +++ b/docs/faq/what-is-the-formula-for-ContinuousWave.md @@ -11,4 +11,4 @@ The ContinuousWave sourcetime, if the DC component is zeroed out, has the follow $A(1+e^{-\frac{(t-t_o*t_w)}{t_w}})^{-1}e^{i\phi}e^{-i\omega_0 t}$
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#ContinuousWave). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-GaussianBeam.md b/docs/faq/what-is-the-formula-for-GaussianBeam.md index 8bc97a7..3eb94d9 100644 --- a/docs/faq/what-is-the-formula-for-GaussianBeam.md +++ b/docs/faq/what-is-the-formula-for-GaussianBeam.md @@ -20,4 +20,4 @@ where:
  • $\psi_g=\arctan(\frac{z+z_0}{z_r})-\arctan(\frac{z_0}{z_r})$ is the Gouy phase
  • -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#GaussianBeamProfile). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-GaussianPulse.md b/docs/faq/what-is-the-formula-for-GaussianPulse.md index 7681508..b4a9b0e 100644 --- a/docs/faq/what-is-the-formula-for-GaussianPulse.md +++ b/docs/faq/what-is-the-formula-for-GaussianPulse.md @@ -16,4 +16,4 @@ If the DC component is not zeroed out, the formula is
    $iAe^{i\phi}e^{-i\omega_0 t}e^{-\frac{(t - t_o*t_w)^2}{2t_w^2}}$
    where $A$ is the amplitude, $t_o$ is the time offset, $t_w=\frac{1}{2\pi f_{width}}$ is the width of the pulse in seconds, $\phi$ is the phase shift, and $\omega_0=2\pi f_0$. -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/source/time.html#GaussianPulse). \ No newline at end of file diff --git a/docs/faq/what-is-the-formula-for-PlaneWave.md b/docs/faq/what-is-the-formula-for-PlaneWave.md index d0812c9..9b68a73 100644 --- a/docs/faq/what-is-the-formula-for-PlaneWave.md +++ b/docs/faq/what-is-the-formula-for-PlaneWave.md @@ -12,4 +12,4 @@ The PlaneWave source has the following scalar field amplitude:
    where $z$ is the propagation direction and $k_0=\frac{2\pi nf}{c}$ are the wavenumbers of the frequencies $f$ where the beam is sampled. If the source is specified as a fixed angle source, $k_0$ is multiplied by $\cos\theta$. -See the code [here](/https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile). \ No newline at end of file +See the code [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/_modules/tidy3d/components/beam.html#PlaneWaveBeamProfile). \ No newline at end of file