def METHOD_NAME(
    supercell,
    primitive,
    displacements,
    forces,
    fc_calculator=None,
    fc_calculator_options=None,
    atom_list=None,
    log_level=0,
    symprec=None,
):
    """Supercell 2nd order force constants (fc2) are calculated.
    The expected shape of supercell fc2 to be returned is
        (len(atom_list), num_atoms, 3, 3).
    Parameters
    ----------
    supercell : PhonopyAtoms
        Supercell
    primitive : Primitive
        Primitive cell
    displacements : array_like
        Displacements of atoms in supercell.
        shape=(num_snapshots, num_atoms, 3), dtype='double', order='C'
    forces : array_like
        Forces of atoms in supercell.
        shape=(num_snapshots, num_atoms, 3), dtype='double', order='C'
    fc_calculator : str, optional
        Currently only 'alm' is supported. Default is None, meaning invoking
        'alm'.
    fc_calculator_options : str, optional
        This is arbitrary string.
    atom_list : array_like of int or None, optional
        List of supercell atomic indices that represent the first indices of
        force constant matrix. The default is None, which means
        all atoms in supercell represented by np.arange(num_atoms).
        Two shapes of force constant matrix (called 'full' and 'compact') are
        readable in phonopy, see Returns section below.
        full: atom_list == (0, 1, 2, ..., num_atoms -1) or None,
        compact : atom_list == primitive.p2s_map, i.e.,
        [all atoms in primitive cell in the atomic indices of supercell].
    log_level : integer or bool, optional
        Verbosity level. False or 0 means quiet. True or 1 means normal level
        of log to stdout. 2 gives verbose mode.
    Returns
    -------
    fc2 : ndarray
        2nd order force constants.
        shape=(len(atom_list), num_atoms, 3, 3), dtype='double', order='C'.
    """
    if fc_calculator == "alm" or fc_calculator is None:
        from phonopy.interface.alm import METHOD_NAME
        return METHOD_NAME(
            supercell,
            primitive,
            displacements,
            forces,
            atom_list=atom_list,
            options=fc_calculator_options,
            log_level=log_level,
        )
    if fc_calculator == "hiphive":
        from phonopy.interface.hiphive_interface import METHOD_NAME
        return METHOD_NAME(
            supercell,
            primitive,
            displacements,
            forces,
            atom_list=atom_list,
            options=fc_calculator_options,
            log_level=log_level,
            symprec=symprec,
        )