def METHOD_NAME(self):
    """Create geometry.
    This method is abstract in the base class and must be implemented.
    """
    # Define the coordinates of one corner.
    x0 = -0.5 * self.DOMAIN_X
    y0 = -0.5 * self.DOMAIN_Y
    z0 = -self.DOMAIN_Z
    # Create a box
    self.v1 = gmsh.model.occ.add_box(x0, y0, z0, self.DOMAIN_X, self.DOMAIN_Y, self.DOMAIN_Z)
    gmsh.model.occ.synchronize()
    # Get bounding surfaces using bounding boxes. This makes the script completely independent
    # of how the surfaces are numbered, which can change.
    dx = 100.0
    bbox = gmsh.model.get_bounding_box(-1, -1)
    get_bbox_entities = gmsh.model.get_entities_in_bounding_box
    self.s_xneg = get_bbox_entities(bbox[0]-dx, bbox[1]-dx, bbox[2]-dx, bbox[0]+dx, bbox[4]+dx, bbox[5]+dx, dim=2)
    self.s_xpos = get_bbox_entities(bbox[3]-dx, bbox[1]-dx, bbox[2]-dx, bbox[3]+dx, bbox[4]+dx, bbox[5]+dx, dim=2)
    self.s_yneg = get_bbox_entities(bbox[0]-dx, bbox[1]-dx, bbox[2]-dx, bbox[3]+dx, bbox[1]+dx, bbox[5]+dx, dim=2)
    self.s_ypos = get_bbox_entities(bbox[0]-dx, bbox[4]-dx, bbox[2]-dx, bbox[3]+dx, bbox[4]+dx, bbox[5]+dx, dim=2)
    self.s_zneg = get_bbox_entities(bbox[0]-dx, bbox[1]-dx, bbox[2]-dx, bbox[3]+dx, bbox[4]+dx, bbox[2]+dx, dim=2)
    self.s_zpos = get_bbox_entities(bbox[0]-dx, bbox[1]-dx, bbox[5]-dx, bbox[3]+dx, bbox[4]+dx, bbox[5]+dx, dim=2)