{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Working with Derivatives\n",
    "\n",
    "## Using Finite Difference or Complex Step\n",
    "\n",
    "- [How to Know When a System is under FD or CS](approx_flags.ipynb)\n",
    "- [Approximating Partial Derivatives](approximating_partial_derivatives.ipynb)\n",
    "- [Approximating Semi-Total Derivatives](approximating_totals.ipynb)\n",
    "- [Speeding up Derivative Approximations with Parallel Finite Difference and Parallel Complex Step](parallel_fd.ipynb)\n",
    "\n",
    "## Providing Analytic Partial Derivatives\n",
    "- [Declaring Partial Derivatives](specifying_partials.ipynb)\n",
    "- [Sparse Partial Derivatives](sparse_partials.ipynb)\n",
    "\n",
    "## Verifying Partial Derivatives are Correct\n",
    "- [Checking Partial Derivatives with Finite Difference](basic_check_partials.ipynb)\n",
    "- [Changing Check Settings for FD or CS](check_partials_settings.ipynb)\n",
    "- [Sparse Partial Derivatives](sparse_partials.ipynb)\n",
    "- [Checking Partial Derivatives on a Subset of a Model](check_partials_subset.ipynb)\n",
    "- [Visually Checking Partial Derivatives with Matrix Diagrams](partial_derivative_viz.ipynb)\n",
    "- [Unit Testing Partial Derivatives](unit_testing_partials.ipynb)\n",
    "\n",
    "## Computing Total Derivatives Across a Model\n",
    "- [Picking Forward or Reverse Total Derivative Solve](picking_mode.ipynb)\n",
    "- [Computing Total Derivatives](compute_totals.ipynb)\n",
    "- [Checking Total Derivatives](check_total_derivatives.ipynb)\n",
    "- [Matrix Free Total Derivatives](total_compute_jacvec_product.ipynb)\n",
    "\n",
    "## Reducing the Cost of Total Derivative Solves Using Advanced Features\n",
    "\n",
    "There are a number of special cases where a model has a particular structure that can be exploited to\n",
    "reduce the cost of linear solves used to compute total derivatives. You can learn details of how to determine if\n",
    "your problem has the necessary structure to use one of these features, or how to restructure your problem to\n",
    "make use of them in the :ref:`Theory Manual entry on how OpenMDAO computes total derivatives<total_derivs_theory>`\n",
    "\n",
    "- [In-Memory Assembly of Jacobians](assembled_jacobian.ipynb)\n",
    "- [Simultaneous Total Derivative Coloring For Separable Problems](simul_derivs.ipynb)\n",
    "- [Parallel Coloring for Multipoint or Fan-Out Problems](parallel_derivs.ipynb)\n",
    "- [Restarting Linear Solutions for Expensive Linear Solves](linear_restart.ipynb)\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3",
   "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.8"
  },
  "orphan": true
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
