===================
Module viiaResults
===================
This module contains the functions to handle the results of the different analyses. Correct result handling can only be
performed if the VIIA conventions and workflow are followed.

---------------
Result handling
---------------

.. automodule:: viiapackage.viiaResults
    :members:

--------------------------------------
Result handling analysis sub-functions
--------------------------------------
The following functions are currently supported analysis for result handling.

.. automodule:: viiapackage.results.results_a1
    :members:

.. automodule:: viiapackage.results.results_a2
    :members:

.. automodule:: viiapackage.results.results_a3
    :members:

.. automodule:: viiapackage.results.results_a4
    :members:

.. automodule:: viiapackage.results.results_a5
    :members:

.. automodule:: viiapackage.results.results_a6
    :members:

.. automodule:: viiapackage.results.results_a6a
    :members:

.. automodule:: viiapackage.results.results_a7
    :members:

.. automodule:: viiapackage.results.results_a10
    :members:

.. automodule:: viiapackage.results.results_a12
    :members:

.. automodule:: viiapackage.results.results_a13
    :members:

.. automodule:: viiapackage.results.results_a15
    :members:

.. automodule:: viiapackage.results.results_eigenvalue
    :members:

.. automodule:: viiapackage.results.viia_pushover_curve
    :members:

-----------------------------
Result handling sub-functions
-----------------------------
The analysis sub-functions determine which results are handled.

Pictures
--------
Following functions are available for picture generation.

.. automodule:: viiapackage.results.make_pictures
    :members:

.. automodule:: viiapackage.results.result_functions.picture_colours
    :members: _viia_picture_colours

Movies
------

.. automodule:: viiapackage.results.make_movie
    :members:

Result handling model (acceleration graph)
------------------------------------------

.. automodule:: viiapackage.results.result_functions.viia_acceleration_graphs
    :members: viia_acceleration_graphs, _viia_create_acceleration_json, viia_get_accel_graph_mesh_nodes,
        _get_base_acceleration, _create_acceleration_plot, _create_displacement_plot,
        _viia_differentiate_acceleration_numerically, _viia_get_disp_result_mesh_node

Result handling model (base shear)
----------------------------------

.. automodule:: viiapackage.results.result_functions.viia_base_shear
    :members:

Result handling model (eigen frequency)
---------------------------------------

.. automodule:: viiapackage.results.result_functions.viia_eigen_frequency_graph
    :members:

Result handling model (convergence graph)
-----------------------------------------

.. automodule:: viiapackage.results.result_functions.viia_convergence_graph
    :members:

Result handling model (pile reactions)
--------------------------------------

.. automodule:: viiapackage.results.result_functions.viia_pile_reactions
    :members:

Result handling model (geo-output)
----------------------------------

.. automodule:: viiapackage.results.geo_output.geo_output
    :members:

.. automodule:: viiapackage.results.geo_output.geo_output_nls
    :members:

.. automodule:: viiapackage.results.geo_output.geo_output_nlth
    :members:

.. automodule:: viiapackage.results.geo_output.helper_functions
    :members: _calculate_forces_per_timestep_fstrip, _calculate_forces_per_timestep_piles, _get_fstrip_width,
        _get_corner_nodes, viia_append_envelope_requests_geo_abaqus

Result handling level 2 (connections)
-------------------------------------
.. automodule:: viiapackage.results.result_functions.viia_connection_results
    :members:

Result handling level 3 (in-plane floors)
-----------------------------------------
No functionality present.

Result handling level 4 (out-of-plane walls)
--------------------------------------------

.. automodule:: viiapackage.results.result_functions.viia_wall_displacements
    :members: viia_wall_displacements, _viia_create_wall_displacements_json

.. automodule:: viiapackage.results.overburden_load.get_diana_load_case
    :members:

.. automodule:: viiapackage.results.overburden_load.overburden_load_to_excel
    :members:

.. automodule:: viiapackage.results.overburden_load.probe_curve
    :members:

.. automodule:: viiapackage.results.overburden_load.viia_find_wall_overburden_load
    :members:

Result handling level 5 (in-plane walls)
----------------------------------------
No functionality present.

Result handling level 6 (foundation and soil)
---------------------------------------------
No functionality present.

Result collecting for MYVIIA
----------------------------
The following helper functions are used to collect the result data that needs to be sent to MYVIIA.

.. automodule:: viiapackage.results.collect_results_for_myviia.viia_collect_results_a1
    :members:

.. automodule:: viiapackage.results.collect_results_for_myviia.viia_collect_results_a12
    :members:

.. automodule:: viiapackage.results.collect_results_for_myviia.viia_collect_results_a15
    :members:

Helper functions
----------------

.. automodule:: viiapackage.results.result_functions.viia_foundation_area
    :members:

.. automodule:: viiapackage.results.result_functions.viia_get_foundation_elements
    :members:

.. automodule:: viiapackage.results.result_functions.viia_get_latest_result_folder
    :members:

.. automodule:: viiapackage.results.result_functions.viia_identify_foundation_type
    :members:

.. automodule:: viiapackage.results.result_functions.viia_limits
    :members: _viia_get_database_limits, _viia_find_limits_material_data, _viia_find_interstorey_height,
      _viia_find_effective_height, _viia_find_strength_limits_nlth, _viia_find_drift_limits_nlth, viia_find_limits_NLTH

.. automodule:: viiapackage.results.result_functions.viia_read_diana_outfile_linear_static
    :members:

.. automodule:: viiapackage.results.result_functions.viia_results_pushover
    :members: viia_results_pushover, viia_set_up_pushover_result_dict, _viia_get_pushover_result_dict_const,
      _viia_pushover_data_into_excel, _viia_mdof_to_sdof_po_curve, _viia_store_demand_curves,
      _viia_plot_draft_po_curves, viia_get_drift_limits, _viia_plot_governing_line_per_load_case,
      _viia_bilinearize_po_curve, _viia_assess_po_curve, _viia_plot_governing_line_per_direction, _get_storey_height,
      _viia_demand_curve, _compute_damping, viia_pushover_nodes_reactionforces_m_eff,
      _viia_get_pushover_result_data_from_tb, _convert_tb_to_array

.. automodule:: viiapackage.results.result_functions.viia_sra
    :members: