def METHOD_NAME(self, comm, dtype):
    """
    Setup mesh and tacs assembler for problem we will be testing.
    """
    # Overwrite default check values
    if dtype == complex:
        self.rtol = 5e-8
        self.dh = 1e-50
    else:
        self.rtol = 1e-1
        self.dh = 1e-7
    # Only check for relative tolerance
    self.atol = 1e99
    # Create the stiffness object
    props = constitutive.MaterialProperties(rho=2570.0, E=70e9, nu=0.3, ys=350e6)
    stiff = constitutive.IsoShellConstitutive(props, t=0.1, tNum=0)
    # Set up the element transform
    ref_axis = np.array([0.0, 1.0, 1.0], dtype=dtype)
    transform = elements.ShellRefAxisTransform(ref_axis)
    elem = elements.Tri3Shell(transform, stiff)
    # Allocate the TACSCreator object
    vars_per_node = elem.getVarsPerNode()
    creator = TACS.Creator(comm, vars_per_node)
    if comm.rank == 0:
        num_elems = 2 * nx * ny
        num_nodes = (nx + 1) * (ny + 1)
        # discretize plate
        x = np.linspace(0, Lx, nx + 1, dtype)
        y = np.linspace(0, Ly, ny + 1, dtype)
        xyz = np.zeros([nx + 1, ny + 1, 3], dtype)
        xyz[:, :, 0], xyz[:, :, 1] = np.meshgrid(x, y, indexing="ij")
        node_ids = np.arange(num_nodes).reshape(nx + 1, ny + 1)
        # Set connectivity for each element
        conn = []
        for i in range(nx):
            for j in range(ny):
                conn.append(
                    [node_ids[i, j], node_ids[i + 1, j], node_ids[i + 1, j + 1]]
                )
                conn.append(
                    [node_ids[i + 1, j + 1], node_ids[i, j + 1], node_ids[i, j]]
                )
        conn = np.array(conn, dtype=np.intc).flatten()
        ptr = np.arange(0, 3 * num_elems + 1, 3, dtype=np.intc)
        comp_ids = np.zeros(num_elems, dtype=np.intc)
        creator.setGlobalConnectivity(num_nodes, ptr, conn, comp_ids)
        # Set up the boundary conditions (fixed at left hand edge)
        bcnodes = np.array(node_ids[0, :], dtype=np.intc)
        creator.setBoundaryConditions(bcnodes)
        # Set the node locations
        creator.setNodes(xyz.flatten())
    # Set the elements for each (only one) component
    element_list = [elem]
    creator.setElements(element_list)
    # Create the tacs assembler object
    assembler = creator.createTACS()
    # Get number of elements on this processor
    local_num_elems = assembler.getNumElements()
    # Create object to hold pressures
    aux_elems = TACS.AuxElements()
    # Add gravity load to all elements
    grav = elem.createElementInertialForce(g)
    for elem_id in range(local_num_elems):
        aux_elems.addElement(elem_id, grav)
    # Set tractions in assembler
    assembler.setAuxElements(aux_elems)
    return assembler