def METHOD_NAME(self, comm):
    """
    Setup pytacs object for problems we will be testing.
    """
    # Overwrite default check values
    if self.dtype == complex:
        self.rtol = 1e-8
        self.atol = 1e-8
        self.dh = 1e-50
    else:
        self.rtol = 2e-1
        self.atol = 1e-4
        self.dh = 1e-6
    # Instantiate FEA Assembler
    struct_options = {}
    fea_assembler = pytacs.pyTACS(bdf_file, comm, options=struct_options)
    def elem_call_back(
        dv_num, comp_id, comp_descript, elem_descripts, global_dvs, **kwargs
    ):
        # Material properties
        rho = 2500.0  # density kg/m^3
        E = 70e9  # Young's modulus (Pa)
        nu = 0.3  # Poisson's ratio
        ys = 464.0e6  # yield stress
        # Plate geometry
        tplate = 0.005  # 5 mm
        # Set up property model
        prop = constitutive.MaterialProperties(rho=rho, E=E, nu=nu, ys=ys)
        # Set up constitutive model
        con = constitutive.IsoShellConstitutive(prop, t=tplate, tNum=dv_num)
        transform = None
        # Set up element
        elem = elements.Quad4Shell(transform, con)
        scale = [100.0]
        return elem, scale
    # Set up constitutive objects and elements
    fea_assembler.initialize(elem_call_back)
    tacs_probs = []
    # Add point force to node 81 (center of plate)
    sp = fea_assembler.createStaticProblem(name="point_load")
    F = np.array([0.0, 0.0, 1e4, 0.0, 0.0, 0.0])
    sp.addLoadToNodes(81, F, nastranOrdering=True)
    tacs_probs.append(sp)
    # Add pressure to entire plate
    sp = fea_assembler.createStaticProblem(name="pressure")
    P = 100e3  # Pa
    compIDs = fea_assembler.selectCompIDs(include="PLATE")
    sp.addPressureToComponents(compIDs, P)
    tacs_probs.append(sp)
    # Add pressure to entire plate
    sp = fea_assembler.createStaticProblem(name="gravity")
    g = np.array([0.0, 0.0, -981.0], dtype=self.dtype)
    sp.addInertialLoad(g)
    tacs_probs.append(sp)
    # Add Functions
    for problem in tacs_probs:
        problem.addFunction("mass", functions.StructuralMass)
        problem.addFunction("ks_vmfailure", functions.KSFailure, ksWeight=ksweight)
        problem.addFunction("compliance", functions.Compliance)
        problem.addFunction(
            "cgx", functions.CenterOfMass, direction=[1.0, 0.0, 0.0]
        )
        problem.addFunction(
            "cgy", functions.CenterOfMass, direction=[0.0, 1.0, 0.0]
        )
        problem.addFunction(
            "cgz", functions.CenterOfMass, direction=[0.0, 0.0, 1.0]
        )
        problem.addFunction(
            "Ixx",
            functions.MomentOfInertia,
            direction1=[1.0, 0.0, 0.0],
            direction2=[1.0, 0.0, 0.0],
            aboutCM=True,
        )
        problem.addFunction(
            "Ixy",
            functions.MomentOfInertia,
            direction1=[1.0, 0.0, 0.0],
            direction2=[0.0, 1.0, 0.0],
            aboutCM=True,
        )
        problem.addFunction(
            "Ixz",
            functions.MomentOfInertia,
            direction1=[1.0, 0.0, 0.0],
            direction2=[0.0, 0.0, 1.0],
            aboutCM=True,
        )
        problem.addFunction(
            "Iyy",
            functions.MomentOfInertia,
            direction1=[0.0, 1.0, 0.0],
            direction2=[0.0, 1.0, 0.0],
            aboutCM=True,
        )
        problem.addFunction(
            "Iyz",
            functions.MomentOfInertia,
            direction1=[0.0, 0.0, 1.0],
            direction2=[0.0, 1.0, 0.0],
            aboutCM=True,
        )
        problem.addFunction(
            "Izz",
            functions.MomentOfInertia,
            direction1=[0.0, 0.0, 1.0],
            direction2=[0.0, 0.0, 1.0],
            aboutCM=True,
        )
    # Add modal problem
    mp = fea_assembler.createModalProblem("modal", 2e5, 10)
    mp.setOption("printLevel", 2)
    tacs_probs.append(mp)
    return tacs_probs, fea_assembler