Description:
GDCalc is a MATLABbased 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,
wiregrid polarizers)
 motheye antireflection structures (e.g. for solar cells
or highpower lasers)
 micro optics, nano optics, diffractive optics (e.g.
phaseFresnel structures)
Many illustrative applications of GDCalc can be found in
the peerreviewed literature by searching for “GDCalc”
in Google Scholar.
New Features (3/16/2016):
 Multiorder incident fields (“all_inc_order” option)
 Internal fields (“full_field” option)
Capabilities and Limitations:
GDCalc computes diffraction efficiencies and polarization characteristics
(multiorder transmission and reflection) of line gratings, biperiodic
gratings, and multilayerstack gratings with any number of layers and
materials (dielectric or metallic).
The diffraction grating simulation algorithms are based on Rigorous
CoupledWave Theory (RCWA), aka. the "Fourier Modal Method" (FMM),
using a 3D generalization of Li's Fast Fourier
Factorization method. The code is limited to nonmagnetic, isotropic,
linear optical media, and the algorithms are based on a blockstructured
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.
GDCalc is implemented entirely in MATLAB®, providing a
convenient, usermodifiable 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, GDCalc has
a powerful "vectorization" capability for efficiently performing
multidimensional parameter sweeps, e.g., as part of a global search process.
Explore the online documentation and free demo code to test GDCalc's
diffraction grating simulation capabilities; run the GDCalc data validation
and plotting functions on your grating structure of interest; and then apply
GDCalc's full computational capabilities to your structure.
Platforms: Windows, Macintosh, UNIX, Linux
MathWorks product required: MATLAB
To get started with GDCalc:
Step 1, Download:
Download the free code/utilities package in the following zip file …
The following files are included:
File

Version

Comment

GDCalc_Intro.pdf
(241 KB)

09/22/2006

conceptual introduction

GDCalc_Demo.pdf
(537 KB)

09/22/2006

application examples

GDCalc.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 GDCalc_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

crossedline grating

gdc_demo12.m

03/16/2016

fullfield demo, sinusoidal line grating

gdc_demo13.m

03/16/2016

fullfield demo, biperiodic grating

gdc_demo14.m

03/16/2016

fullfield demo, alignment sensor

gdc_demo15.m

04/17/2016

EUV patternedmultilayer 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

dC.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 MATLABencrypted pcode, 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: 4082444721
Email: 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
Crossedline grating
