{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f32b0019-3ef6-4462-9cf5-e1490f7143e8",
   "metadata": {},
   "source": [
    "# Theory Manual\n",
    "\n",
    "The Theory Manual exists to explain some of the underlying concepts behind OpenMDAO in more detail. It is not intended to show you how to use any specific features of OpenMDAO, but rather to understand why you might choose to use a feature. It provides information in a more theoretical and mathematical manner to help users gain a deeper understanding of how the framework operates.\n",
    "\n",
    "\n",
    "- [OpenMDAO Class Structure](class_structure.ipynb)\n",
    "- [Understanding How Variables Work](implicit_transformation_of_vars.ipynb)\n",
    "- [The System Setup Stack: Understanding When to Use setup and configure](setup_stack.ipynb)\n",
    "- [OpenMDAO Solvers](solver_api.ipynb)\n",
    "- [Scaling Variables in OpenMDAO](scaling.ipynb)\n",
    "- [Determining How Many Times a System was Executed](iter_count.ipynb)\n",
    "- [Using OpenMDAO with MPI](mpi.ipynb)\n",
    "\n",
    "## Total Derivatives Theory\n",
    "\n",
    "- [How Total Derivatives are Computed](total_derivs_theory.ipynb)\n",
    "- [Setting Up a Model for Efficient Linear Solves](setup_linear_solvers.ipynb)\n",
    "- [Advanced Linear Solver Algorithms for Special Cases](advanced_linear_solvers_special_cases/advanced_linear_solvers_special_cases.ipynb)\n"
   ]
  }
 ],
 "metadata": {
  "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.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
