Grating Diffraction Calculator (GD-Calc®)
Electromagnetic Simulation Software for Diffraction Grating Simulation (Free product download)

Description:

GD-Calc is a MATLAB-based tool for diffraction grating simulation, which has utility for a variety of grating types and applications, e.g.:

  • surface relief gratings
  • multilayer gratings
  • biperiodic gratings
  • binary/lamellar or blazed kinoform gratings
  • subwavelength gratings (e.g., photonic crystals, metamaterials)
  • polarization gratings (e.g., form birefringence, wire-grid polarizers)
  • moth-eye antireflection structures (e.g. for solar cells or high-power lasers)
  • micro optics, nano optics, diffractive optics (e.g. phase-Fresnel structures)

Many illustrative applications of GD-Calc can be found in the peer-reviewed literature by searching for “GD-Calc” in Google Scholar.

 

New Features (3/16/2016):

  • Multi-order incident fields (“all_inc_order” option)
  • Internal fields (“full_field” option)


Capabilities and Limitations:

GD-Calc computes diffraction efficiencies and polarization characteristics (multi-order transmission and reflection) of line gratings, biperiodic gratings, and multilayer-stack gratings with any number of layers and materials (dielectric or metallic).

The diffraction grating simulation algorithms are based on Rigorous Coupled-Wave Theory (RCWA), aka. the "Fourier Modal Method" (FMM), using a 3-D generalization of Li's Fast Fourier Factorization method. The code is limited to non-magnetic, isotropic, linear optical media, and the algorithms are based on a block-structured geometry model (i.e. grating structures are decomposed into homogeneous, rectangular blocks). Curved and tapered surfaces can be approximated using the "staircase approximation", which is routinely used for dielectric gratings, although the approximation can create convergence difficulties with highly conducting metal gratings.

GD-Calc is implemented entirely in MATLAB®, providing a convenient, user-modifiable functional interface, and making it easy to incorporate grating components in custom optical design and simulation models. Standard MATLAB utilities such as fminsearch and the Global Optimization Toolbox can be adapted for grating design. Also, GD-Calc has a powerful "vectorization" capability for efficiently performing multi-dimensional parameter sweeps, e.g., as part of a global search process.

Explore the online documentation and free demo code to test GD-Calc's diffraction grating simulation capabilities; run the GD-Calc data validation and plotting functions on your grating structure of interest; and then apply GD-Calc's full computational capabilities to your structure.

Platforms: Windows, Macintosh, UNIX, Linux

MathWorks product required: MATLAB


To get started with GD-Calc:

Step 1, Download:  Download the free code/utilities package in the following zip file …

GD-Calc.zip (1325 KB, version 04/17/2016)


The following files are included:

File

Version

Comment

GD-Calc_Intro.pdf (241 KB)

09/22/2006

conceptual introduction

GD-Calc_Demo.pdf (537 KB)

09/22/2006

application examples

GD-Calc.pdf  (1158 KB)

09/17/2008

User’s Reference; Theory and Methods

gdc.m

03/16/2016

data validation; entry point to calculation engine

gdc_plot.m

04/17/2016

grating visualization utility

gdc_intro.m

02/10/2016

code examples from GD-Calc_intro.pdf

gdc_eff.m

03/16/2016

converts gdc output into diffraction efficiencies

gdc_engine.p

03/16/2016

required for the following demo scripts
(built with MATLAB R2015b)

gdc_demo1a.m

03/16/2016


uniperiodic, sinusoidal grating

gdc_demo1b.m

03/16/2016

gdc_demo1c.m

03/16/2016

gdc_demo2.m

03/16/2016

biperiodic grating – rectangular pyramids

gdc_demo3.m

03/16/2016

biperiodic checkerboard grating

gdc_demo4.m

03/16/2016

gdc_demo5.m

03/16/2016

biperiodic grating – circular pillars

gdc_demo6.m

03/16/2016

biperiodic grating – skewed metal grid

gdc_demo7.m

03/16/2016

gdc_demo8.m

03/16/2016

biperiodic grating – square metal grid

gdc_demo9.m

03/16/2016

alignment sensor

gdc_demo10.m

03/16/2016

slanted lamellar grating

gdc_demo11.m

03/16/2016

crossed-line grating

gdc_demo12.m

03/16/2016

full-field demo, sinusoidal line grating

gdc_demo13.m

03/16/2016

full-field demo, biperiodic grating

gdc_demo14.m

03/16/2016

full-field demo, alignment sensor

gdc_demo15.m

04/17/2016

EUV patterned-multilayer grating

circle_partition.m

02/10/2016

required for demo 5

read_nk.m

02/10/2016

required for demo 10 and demo 11

EH_map.m

03/16/2016

required for demo’s 12, 13, and 14

Ru.nk

05/12/2005

required for demo 10

d-C.nk

05/12/2005

required for demo 10

W.nk

05/12/2005

required for demo 11


Install all files (except the pdf's) on your MATLAB path. (Note: *.m files are MATLAB source code, the *.p file is MATLAB-encrypted p-code, and *.nk files are text.)

Step 2, Test:  First skim through GD‑Calc_Intro.pdf to learn the basics of how grating geometry is specified in GD‑Calc. (The code examples are in gdc_intro.m, which requires gdc.m and gdc_plot.m. Each code listing builds on previous listings, so run them in order.) Then review GD‑Calc_Demo.pdf for a more extensive introduction with examples of diffraction calculations, and test the performance of the demo scripts on your computer. Set up your grating model of interest and run it through gdc.m (with no output arguments) and gdc_plot.m to check data validity and visually confirm model correctness.

Step 3, Run Your Application:  Run diffraction simulations for your application with the free download. No purchase is required. (Product and applications support is offered on a fee basis.)


Information contact:

Ken Johnson
KJ Innovation
2502 Robertson Rd
Santa Clara, CA 95051
USA
Tel: 408-244-4721
E-mail: kjinnovation@earthlink.net
Web: kjinnovation.com

Demo scripts:

Uniperiodic, sinusoidal grating

Biperiodic grating - rectangular pyramids

Biperiodic checkerboard grating

Biperiodic grating - circular posts

Biperiodic grating - skewed metal grid

Biperiodic grating - square metal grid

Alignment sensor

Slanted lamellar grating

Crossed-line grating

 


MATLAB is a registered trademark of The MathWorks, Inc. (www.mathworks.com).

This page last modified on April 17, 2016 (change notes).