.. _results_api_reference:

.. currentmodule:: flow360

*******
Results
*******

This page contains the API reference for different results models that make it easier to process the tabular data generated by Flow360 
and access the spatial data files.

The objects are accessible through the :attr:`~flow360.component.case.Case.results` property, which contains the results model.

.. autosummary::
   :toctree: _autosummary
   :template: class.rst

   ~component.case.CaseResultsModel


Access properties
=================

The :class:`~flow360.component.case.CaseResultsModel` class contains properties that access the different result types.

.. currentmodule:: flow360.component.case

.. autosummary::

    CaseResultsModel.surfaces
    CaseResultsModel.volumes
    CaseResultsModel.slices
    CaseResultsModel.isosurfaces
    CaseResultsModel.monitors
    CaseResultsModel.nonlinear_residuals
    CaseResultsModel.linear_residuals
    CaseResultsModel.cfl
    CaseResultsModel.minmax_state
    CaseResultsModel.max_residual_location
    CaseResultsModel.surface_forces
    CaseResultsModel.total_forces
    CaseResultsModel.bet_forces
    CaseResultsModel.bet_forces_radial_distribution
    CaseResultsModel.actuator_disks
    CaseResultsModel.legacy_force_distribution
    CaseResultsModel.x_slicing_force_distribution
    CaseResultsModel.y_slicing_force_distribution
    CaseResultsModel.user_defined_dynamics
    CaseResultsModel.custom_forces
    CaseResultsModel.force_distributions
    CaseResultsModel.aeroacoustics
    CaseResultsModel.surface_heat_transfer


Specific Result Types
=====================

Each result type is represented by a different object, which contains the data and methods to access and process it.

.. currentmodule:: flow360

.. autosummary::
   :toctree: _autosummary
   :template: class.rst

    ~component.results.case_results.MonitorsResultModel
    ~component.results.case_results.MonitorCSVModel
    ~component.results.case_results.NonlinearResidualsResultCSVModel
    ~component.results.case_results.LinearResidualsResultCSVModel
    ~component.results.case_results.CFLResultCSVModel
    ~component.results.case_results.MinMaxStateResultCSVModel
    ~component.results.case_results.MaxResidualLocationResultCSVModel
    ~component.results.case_results.TotalForcesResultCSVModel
    ~component.results.case_results.SurfaceForcesResultCSVModel
    ~component.results.case_results.CustomForceResultModel
    ~component.results.case_results.CustomForceCSVModel
    ~component.results.case_results.SurfaceHeatTransferResultCSVModel
    ~component.results.case_results.AeroacousticsResultCSVModel
    ~component.results.case_results.LegacyForceDistributionResultCSVModel
    ~component.results.case_results.XSlicingForceDistributionResultCSVModel
    ~component.results.case_results.YSlicingForceDistributionResultCSVModel
    ~component.results.case_results.ForceDistributionsResultModel
    ~component.results.case_results.ForceDistributionCSVModel
    ~component.results.case_results.UserDefinedDynamicsResultModel
    ~component.results.case_results.UserDefinedDynamicsCSVModel
    ~component.results.case_results.ActuatorDiskResultCSVModel
    ~component.results.case_results.ActuatorDiskCoefficientsCSVModel
    ~component.results.case_results.BETForcesResultCSVModel
    ~component.results.case_results.BETDiskCoefficientsCSVModel
    ~component.results.case_results.BETForcesRadialDistributionResultCSVModel
    ~component.results.case_results.PorousMediumResultCSVModel
    ~component.results.case_results.PorousMediumCoefficientsCSVModel


.. seealso::

   Examples demonstrating results access through ``case.results``:

   - :doc:`2D CRM Airfoil <../example_library/notebooks/2D_CRM_airfoil>`
   - :doc:`MRF Rotor <../example_library/notebooks/MRF_rotor>`
   - :doc:`BET eVTOL <../example_library/notebooks/BET_eVTOL>`
   - :doc:`Conjugate Heat Transfer <../example_library/notebooks/conjugate_heat_transfer>`
   - :doc:`Dynamic Derivatives <../example_library/notebooks/dynamic_derivatives>`
   - :doc:`UDD Alpha Controller <../example_library/notebooks/udd_alpha_controller>`
   - :doc:`Hinge Torques <../example_library/notebooks/hinge_torques>`

