Hole Geometry
#include <psMakeHole.hpp>
The MakeHole
class generates a hole geometry in the z direction, which, in 2D mode, corresponds to a trench geometry. Positioned at the origin, the hole is centered, with the total extent defined in the x and y directions. The normal direction for the hole creation is in the positive z direction in 3D and the positive y direction in 2D. Users can specify the hole’s radius, depth, and opt for tapering with a designated angle. The hole configuration may include periodic boundaries in both the x and y directions. Additionally, the hole can serve as a mask, with the specified material only applied to the bottom of the hole, while the remainder adopts the mask material.
// namespace viennaps
MakeHole(DomainType domain,
const NumericType gridDelta,
const NumericType xExtent,
const NumericType yExtent,
const NumericType holeRadius,
const NumericType holeDepth,
const NumericType taperAngle = 0., // in degrees
const NumericType baseHeight = 0.,
const bool periodicBoundary = false,
const bool makeMask = false,
const Material material = Material::None)
Parameter | Description | Type |
---|---|---|
domain | Specifies the type of domain for the hole geometry. | SmartPointer<Domain<NumericType, D>> |
gridDelta | Represents the grid spacing or resolution used in the simulation. | NumericType |
xExtent | Defines the extent of the hole geometry in the x-direction. | NumericType |
yExtent | Specifies the extent of the hole geometry in the y-direction. | NumericType |
holeRadius | Sets the radius of the hole. | NumericType |
holeDepth | Determines the depth of the hole. | NumericType |
taperAngle | (Optional) Specifies the angle of tapering for the hole geometry in degrees. Default is set to 0. | NumericType |
baseHeight | (Optional) Sets the base height of the hole. Default is set to 0. | NumericType |
periodicBoundary | (Optional) If set to true, enables periodic boundaries in both x and y directions. Default is set to false. | bool |
makeMask | (Optional) If set to true, allows the hole to function as a mask, with specified material applied only to the bottom. Default is set to false. | bool |
material | (Optional) Specifies the material used for the hole. Default is set to Material::None . | Material |
Example usage:
C++
// namespace viennaps
auto domain = SmartPointer<Domain<NumericType, D>>::New();
MakeHole<NumericType, D>(domain, 0.5, 10.0, 10.0, 2.5, 5.0, 10., 0., false,
false, Material::Si)
.apply();
Python
domain = vps.Domain()
vps.MakeHole(domain=domain,
gridDelta=0.5,
xExtent=10.0,
yExtent=10.0,
holeRadius=2.5,
holeDepth=5.0,
taperingAngle=10.0,
baseHeight=0.0,
periodicBoundary=False,
makeMask=False,
material=vps.Material.Si,
).apply()