@staticmethod
def print_console_help():
    """
        Print the console help in the console
        @return:
        """
    print('GridCal internal commands.\n')
    print(
        'If a command is unavailable is because the study has not been executed yet.'
        )
    print('\n\nclc():\tclear the console.')
    print('\n\nApp functions:')
    print('\tapp.new_project(): Clear all.')
    print('\tapp.open_file(): Prompt to load GridCal compatible file')
    print('\tapp.save_file(): Prompt to save GridCal file')
    print('\tapp.export_diagram(): Prompt to export the diagram in png.')
    print(
        '\tapp.create_schematic_from_api(): Create the schematic from the circuit information.'
        )
    print(
        '\tapp.adjust_all_node_width(): Adjust the width of all the nodes according to their name.'
        )
    print('\n\nCircuit functions:')
    print('\tapp.circuit.compile_snapshot(): Compile the grid(s) snapshot mode'
        )
    print(
        '\tapp.circuit.compile_time_series(): Compile the grid(s) time series mode'
        )
    print(
        '\tapp.circuit.plot_graph(): Plot a graph in a Matplotlib window. Call plt.show() after.'
        )
    print(
        '\tapp.circuit.load_file("file_name.xlsx/.m/.raw/.dgs"): Load GridCal compatible file'
        )
    print('\tapp.circuit.save_file("file_name.xlsx"): Save GridCal file')
    print(
        '\tapp.circuit.export_pf("file_name.xlsx"): Export power flow results to Excel'
        )
    print('\n\nPower flow results:')
    print('\tapp.power_flow.voltage:\t the nodal voltages in per unit')
    print('\tapp.power_flow.current:\t the branch currents in per unit')
    print('\tapp.power_flow.loading:\t the branch loading in %')
    print('\tapp.power_flow.losses:\t the branch losses in per unit')
    print('\tapp.power_flow.power:\t the nodal power injections in per unit')
    print(
        '\tapp.power_flow.power_from:\t the branch power injections in per unit at the "from" side'
        )
    print(
        '\tapp.power_flow.power_to:\t the branch power injections in per unit at the "to" side'
        )
    print('\n\nShort circuit results:')
    print('\tapp.short_circuit.voltage:\t the nodal voltages in per unit')
    print('\tapp.short_circuit.current:\t the branch currents in per unit')
    print('\tapp.short_circuit.loading:\t the branch loading in %')
    print('\tapp.short_circuit.losses:\t the branch losses in per unit')
    print('\tapp.short_circuit.power:\t the nodal power injections in per unit'
        )
    print(
        '\tapp.short_circuit.power_from:\t the branch power injections in per unit at the "from" side'
        )
    print(
        '\tapp.short_circuit.power_to:\t the branch power injections in per unit at the "to" side'
        )
    print(
        '\tapp.short_circuit.short_circuit_power:\t Short circuit power in MVA of the grid nodes'
        )
    print('\n\nOptimal power flow results:')
    print(
        '\tapp.optimal_power_flow.voltage:\t the nodal voltages angles in rad')
    print('\tapp.optimal_power_flow.load_shedding:\t the branch loading in %')
    print('\tapp.optimal_power_flow.losses:\t the branch losses in per unit')
    print('\tapp.optimal_power_flow.Sbus:\t the nodal power injections in MW')
    print('\tapp.optimal_power_flow.Sbranch:\t the branch power flows')
    print('\tapp.optimal_power_flow.losses:\t the branch losses in MVA')
    print(
        '\tapp.optimal_power_flow.short_circuit_power:\t Short circuit power in MVA of the grid nodes'
        )
    print('\n\nTime series power flow results:')
    print(
        '\tapp.time_series.time:\t Profiles time index (pandas DateTimeIndex object)'
        )
    print(
        '\tapp.time_series.load_profiles:\t Load profiles matrix (row: time, col: node)'
        )
    print(
        '\tapp.time_series.gen_profiles:\t Generation profiles matrix (row: time, col: node)'
        )
    print(
        '\tapp.time_series.voltages:\t nodal voltages results matrix (row: time, col: node)'
        )
    print(
        '\tapp.time_series.currents:\t branches currents results matrix (row: time, col: branch)'
        )
    print(
        '\tapp.time_series.loadings:\t branches loadings results matrix (row: time, col: branch)'
        )
    print(
        '\tapp.time_series.losses:\t branches losses results matrix (row: time, col: branch)'
        )
    print('\n\nVoltage stability power flow results:')
    print(
        '\tapp.voltage_stability.continuation_voltage:\t Voltage values for every power multiplication factor.'
        )
    print(
        '\tapp.voltage_stability.continuation_lambda:\t Value of power multiplication factor applied'
        )
    print(
        '\tapp.voltage_stability.continuation_power:\t Power values for every power multiplication factor.'
        )
    print('\n\nMonte Carlo power flow results:')
    print('\tapp.monte_carlo.V_avg:\t nodal voltage average result.')
    print('\tapp.monte_carlo.I_avg:\t branch current average result.')
    print('\tapp.monte_carlo.Loading_avg:\t branch loading average result.')
    print('\tapp.monte_carlo.Losses_avg:\t branch losses average result.')
    print('\tapp.monte_carlo.V_std:\t nodal voltage standard deviation result.'
        )
    print(
        '\tapp.monte_carlo.I_std:\t branch current standard deviation result.')
    print(
        '\tapp.monte_carlo.Loading_std:\t branch loading standard deviation result.'
        )
    print(
        '\tapp.monte_carlo.Losses_std:\t branch losses standard deviation result.'
        )
    print('\tapp.monte_carlo.V_avg_series:\t nodal voltage average series.')
    print(
        '\tapp.monte_carlo.V_std_series:\t branch current standard deviation series.'
        )
    print(
        '\tapp.monte_carlo.error_series:\t Monte Carlo error series (the convergence value).'
        )
    print('The same for app.latin_hypercube_sampling')
