def METHOD_NAME(self, comm, dtype):
    """
    Setup mesh and tacs assembler for problem we will be testing.
    """
    # Overwrite default tolerances from base class
    if dtype == complex:
        self.rtol = 1e-11
        self.atol = 1e-8
        self.dh = 1e-50
    else:
        self.rtol = 1e-2
        self.atol = 1e-4
        self.dh = 1e-6
    # Create the stiffness object
    props = constitutive.MaterialProperties(rho=2570.0, E=70e9, nu=0.3, ys=350e6)
    stiff = constitutive.SolidConstitutive(props, t=1.0, tNum=0)
    # Set up the basis function
    model = elements.LinearElasticity3D(stiff)
    basis = elements.LinearHexaBasis()
    elem = elements.Element3D(model, basis)
    # Allocate the TACSCreator object
    vars_per_node = model.getVarsPerNode()
    creator = TACS.Creator(comm, vars_per_node)
    if comm.rank == 0:
        num_elems = nx * ny * nz
        num_nodes = (nx + 1) * (ny + 1) * (nz + 1)
        x = np.linspace(0, Lx, nx + 1, dtype)
        y = np.linspace(0, Ly, ny + 1, dtype)
        z = np.linspace(0, Lz, nz + 1, dtype)
        xyz = np.zeros([nx + 1, ny + 1, nz + 1, 3], dtype)
        xyz[:, :, :, 0], xyz[:, :, :, 1], xyz[:, :, :, 2] = np.meshgrid(
            x, y, z, indexing="ij"
        )
        x, y, z = xyz[:, :, :, 0], xyz[:, :, :, 1], xyz[:, :, :, 2]
        node_ids = np.arange(num_nodes).reshape(nx + 1, ny + 1, nz + 1)
        conn = []
        for i in range(nx):
            for j in range(ny):
                for k in range(nz):
                    conn.append(
                        [
                            node_ids[i, j, k],
                            node_ids[i + 1, j, k],
                            node_ids[i, j + 1, k],
                            node_ids[i + 1, j + 1, k],
                            node_ids[i, j, k + 1],
                            node_ids[i + 1, j, k + 1],
                            node_ids[i, j + 1, k + 1],
                            node_ids[i + 1, j + 1, k + 1],
                        ]
                    )
        conn = np.array(conn, dtype=np.intc).flatten()
        ptr = np.arange(0, 8 * num_elems + 1, 8, 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 ( clamp at z == 0  face)
        bcnodes = np.array(node_ids[z == 0.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()
    # Create object to hold pressures
    aux_elems = TACS.AuxElements()
    # Add gravity load to all elements
    local_elements = assembler.getElements()
    for elem_id, elem in enumerate(local_elements):
        grav = elem.createElementInertialForce(g)
        aux_elems.addElement(elem_id, grav)
    # Set forces in assembler
    assembler.setAuxElements(aux_elems)
    return assembler