# Isolated Contact Hole¶

This tutorial example demonstrates simulation of an isolated contact hole, as depicted below:

The geometrical setup defined in the `layout.jcm` file is:

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56``` ```Layout3D { UnitOfLength = 1e-09 MeshOptions { MaximumSideLength = 50 } BoundaryConditions { Boundary { Direction = Vertical Class = Transparent } } Extrusion { Objects { Parallelogram { Name = "ContactHole" DomainId = 2 Width = 280 Height = 280 } Polygon { Name = "ComputationalDomain" DomainId = 1 Priority = -1 Boundary { Class = Transparent } ConvexHull { Parent = "ContactHole" Offset = 50 } } } MultiLayer { Layer { Bottom { GlobalZ=-50 } Thickness = 50 DomainIdMapping = [1 3 2 3] } Layer { Thickness = 72 DomainIdMapping = [1 2 2 1] } Layer { Thickness = 50 DomainIdMapping = [1 1 2 1] } } } } ```

The given parallelogram defines the hole on the mask with side length 280nm. Since this pattern is modelled as isolated, it is surrounded by the absorbing mask material in lateral direction. In `JCMsuite` this is conveniently set up by defining a `ConvexHull` around a geometrical primitive. This automatically sets up a convex hull with minimum distance `Offset` to the enclosed pattern. For the `ConvexHull` the `DomainId` and `Priority` and `Boundary` can be defined as usual.

Since the mask pattern is isolated, any number of incident plane waves with same frequency and different incident direction can be defined as sources:

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103``` ```SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0 0] SP = [1 0] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0 0] SP = [0 1] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0.5 0] SP = [1 0] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0.5 0] SP = [0 1] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0 0.5] SP = [1 0] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0 0.5] SP = [0 1] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0.5 0.5] SP = [1 0] } } } } SourceBag { Source { ElectricFieldStrength { PlaneWave { Lambda0 = 193e-9 Incidence = FromBelow Sigma = [0.5 0.5] SP = [0 1] } } } } ```

The sigma coordinates in the pupil plane are used to define different incident directions. At the bottom a number of plots of the transmitted fields are shown. The post process `FourierTransform` is defined similarly to a periodic setup. In the isolated case, however a discrete representation of the continuous FourierTransform of the mask’s far field is computed. The continuous Fourier transform is thereby sampled on a Cartesian mesh in k-space.