def get_analysis_code(sol):
    """
    Maps the solution number to the OP2 analysis code.

     * 8 - post-buckling (maybe 7 depending on NLPARM???)

    # not important
     * 3/4 - differential stiffness (obsolete)
     * 11  - old geometric nonlinear statics
     * 12  - contran (???)

    .. todo:: verify
    """
    codes = {(101): 1, (103): 2, (105): 7, (106): 10, (107): 9, (108): 5, (
        111): 5, (112): 6, (114): 1, (115): 2, (116): 7, (118): 5, (129): 6,
        (144): 1, (145): 1, (146): 1, (153): 10, (159): 6}
    approach_code = codes[sol]
    return approach_code
