{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "48eb1102",
   "metadata": {},
   "source": [
    "# Features\n",
    "\n",
    "OpenMDAO’s fully-supported features are documented here, each in a self-contained context. Any feature \n",
    "documented here, with the exception of those in the Experimental Features section, has been thoroughly \n",
    "tested, and should be considered fully functional.\n",
    "\n",
    "\n",
    "## Core Features\n",
    "\n",
    "- [Working with Components](core_features/working_with_components/index)\n",
    "- [Working with Groups](core_features/working_with_groups/index)\n",
    "- [Working with Derivatives](core_features/working_with_derivatives/index)\n",
    "- [Adding design variables, constraints, and objectives](core_features/adding_desvars_cons_objs/index)\n",
    "- [Running Your Models](core_features/running_your_models/index)\n",
    "- [Controlling Solver Behavior](core_features/controlling_solver_behavior/index)\n",
    "\n",
    "## Building Blocks\n",
    "\n",
    "- [Components](building_blocks/components/components)\n",
    "- [Drivers](building_blocks/drivers/index)\n",
    "- [Solvers](building_blocks/solvers/solvers)\n",
    "- [SurrogateModels](building_blocks/surrogates/index)\n",
    "- [Function Metadata API](building_blocks/func_api.ipynb)\n",
    "- [Composable functions via `jax` ](building_blocks/jax_subpackage/jax_subpackage)\n",
    "\n",
    "## Recording Data\n",
    "\n",
    "- [Solver Recording](recording/solver_recording.ipynb)\n",
    "- [Driver Recording](recording/driver_recording.ipynb)\n",
    "- [Problem Recording](recording/problem_recording.ipynb)\n",
    "- [System Recording](recording/system_recording.ipynb)\n",
    "- [Case Recording Options](recording/case_recording_options.ipynb)\n",
    "- [Case Reader](recording/case_reader.ipynb)\n",
    "- [Getting Data from a Case](recording/case_reader_data.ipynb)\n",
    "- [Getting Metadata from a Recording](recording/case_reader_metadata.ipynb)\n",
    "\n",
    "## Model Visualization\n",
    "\n",
    "- [Basics of Creating N2 Model Visualizations](model_visualization/n2_basics/n2_basics.ipynb)\n",
    "- [Details of the N2 Model Visualizations](model_visualization/n2_details/n2_details.ipynb)\n",
    "- [Metamodel Visualization](model_visualization/meta_model_basics.ipynb)\n",
    "- [View Connections of a Model](model_visualization/view_connections.ipynb)\n",
    "- [View Driver Scaling Information](model_visualization/view_scaling_report.ipynb)\n",
    "- [View Driver Cases with the CaseViewer](model_visualization/case_viewer_driver_cases.ipynb)\n",
    "- [Create Tables of Data with generate_table](model_visualization/generate_table.ipynb)\n",
    "- [Real-time Optimization Progress Plot](model_visualization/real_time_optimization_progress_plot.ipynb)\n",
    "\n",
    "## Reports\n",
    "\n",
    "- [Reports](reports/reports_system.ipynb)\n",
    "- [Optimization Report](reports/optimization_report.ipynb)\n",
    "\n",
    "## Debugging\n",
    "\n",
    "- [Listing Variables](debugging/listing_variables.ipynb)\n",
    "- [The Newton Solver Isn’t Converging](debugging/newton_solver_not_converging.ipynb)\n",
    "- [Driver Debug Printing](debugging/debugging_drivers.ipynb)\n",
    "- [Solver Debug Printing](debugging/debugging_solvers.ipynb)\n",
    "- [Profiling and Tracing](debugging/profiling/index.ipynb)\n",
    "- [MPI Detection, Troubleshooting, and Testing](debugging/controlling_mpi.ipynb)\n",
    "\n",
    "## Warning Control\n",
    "\n",
    "- [OpenMDAO Specific Warning Categories](om_specific_warning_categories)\n",
    "- [Filtering Warnings](filtering_warnings)\n",
    "- [Notes for Developers](notes_for_developers)\n",
    "\n",
    "## [Units Definitions](units.ipynb)\n",
    "\n",
    "## Experimental Features\n",
    "\n",
    "- [Determining Variable Shapes at Runtime](experimental/dyn_shapes.ipynb)\n",
    "- [Simultaneous Coloring of Approximated Derivatives](experimental/approx_coloring.ipynb)\n",
    "- [Working with Plugins](experimental/plugins.ipynb)\n",
    "- [Computing partial derivatives using `jax`](experimental/jax_partial_derivs.ipynb)\n",
    "- [A Functional Interface for an OpenMDAO `Problem`](experimental/functional_interface.ipynb)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79333eeb",
   "metadata": {},
   "source": [
    "```{toctree}\n",
    ":hidden:\n",
    "\n",
    "core_features/index\n",
    "building_blocks/building_blocks\n",
    "recording/index\n",
    "model_visualization/index\n",
    "debugging/debugging\n",
    "warning_control/warnings\n",
    "units\n",
    "experimental/index\n",
    "```"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "orphan": true
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
