def METHOD_NAME(self, assembler, force_history, dv_pert_vec, xpts_pert_vec):
    """
    Setup user-defined vectors for analysis and fd/cs sensitivity verification
    """
    local_num_nodes = assembler.getNumOwnedNodes()
    vars_per_node = assembler.getVarsPerNode()
    # The nodes have been distributed across processors now
    # Let's find which nodes this processor owns
    xpts0 = assembler.createNodeVec()
    assembler.getNodes(xpts0)
    xpts0_array = xpts0.getArray()
    # Split node vector into numpy arrays for easier parsing of vectors
    local_xyz = xpts0_array.reshape(local_num_nodes, 3)
    local_x, local_y, local_z = local_xyz[:, 0], local_xyz[:, 1], local_xyz[:, 2]
    # Loop through the force vector for every time step and set the time-dependent load
    time_history = np.linspace(tinit, tfinal, num_steps + 1)
    for t, force_vec in zip(time_history, force_history):
        # Create force vector
        f_array = force_vec.getArray().reshape(local_num_nodes, vars_per_node)
        # Apply distributed forces on edges of plate
        # Apply Nxx
        f_array[local_x == Lx, 0] += (Nx * Ly) / ny
        f_array[local_x == 0.0, 0] += -(Nx * Ly) / ny
        # Apply Nyy
        f_array[local_y == Ly, 1] += (Ny * Lx) / nx
        f_array[local_y == 0.0, 1] += -(Ny * Lx) / nx
        # Apply Nxy
        f_array[local_y == Ly, 0] += (Nxy * Lx) / nx
        f_array[local_x == Lx, 1] += (Nxy * Ly) / ny
        f_array[local_y == 0.0, 0] += -(Nxy * Lx) / nx
        f_array[local_x == 0.0, 1] += -(Nxy * Ly) / ny
        # drop force at corners by half to avoid stress concentration
        f_array[np.logical_and(local_x == 0.0, local_y == 0.0), :] *= 0.5
        f_array[np.logical_and(local_x == 0.0, local_y == Ly), :] *= 0.5
        f_array[np.logical_and(local_x == Lx, local_y == Ly), :] *= 0.5
        f_array[np.logical_and(local_x == Lx, local_y == 0.0), :] *= 0.5
        # Scale entire force magnitude by time-dependent scaling factor
        alpha = np.cos(2 * np.pi * fhz * t)
        force_vec.scale(alpha)
    # Create temporary dv vec for doing fd/cs
    dv_pert_array = dv_pert_vec.getArray()
    dv_pert_array[:] = 1.0
    # Define perturbation array that uniformly moves all nodes on right edge of plate to the right
    xpts_pert_array = xpts_pert_vec.getArray()
    xpts_pert_array = xpts_pert_array.reshape(local_num_nodes, 3)
    # Define perturbation array that uniformly moves all nodes on right edge of plate to the right
    xpts_pert_array[local_x == Lx, 0] = 1.0
    return