@classmethod
def set_E_G_nu(cls, E, G, nu):
    """\\f[ G = \\frac{E}{2 (1+\\nu)} \\f]"""
    if G is None and E is None:
        raise ValueError('G=%s E=%s cannot both be None' % (G, E))
    elif E is not None and G is not None and nu is not None:
        pass
    elif E is not None and nu is not None:
        G = E / 2.0 / (1 + nu)
    elif G is not None and nu is not None:
        E = 2 * (1 + nu) * G
    elif G is not None and E is not None:
        nu = E / (2 * G) - 1.0
    elif G is None and nu is None:
        G = 0.0
        nu = 0.0
    elif E is None and nu is None:
        E = 0.0
        nu = 0.0
    else:
        msg = 'G=%s E=%s nu=%s' % (G, E, nu)
        raise ValueError(msg)
    return E, G, nu
