Skip to content

Commit

Permalink
convert md docs/links to ipynb
Browse files Browse the repository at this point in the history
  • Loading branch information
swryan committed Feb 8, 2024
1 parent e093a00 commit 28a0024
Show file tree
Hide file tree
Showing 20 changed files with 292 additions and 248 deletions.
4 changes: 2 additions & 2 deletions openmdao/docs/build_source_docs.py
Expand Up @@ -124,7 +124,7 @@ def build_src_docs(top, src_dir, project_name='openmdao'):
# specifically don't use os.path.join here. Even windows wants the
# stuff in the file to have fwd slashes.
title = f"[{package}]"
link = f"(packages/{package}.md)\n"
link = f"(packages/{package}.ipynb)\n"
index_data += f"- {title}{link}"

# make subpkg directory (e.g. _srcdocs/packages/core) for ref sheets
Expand All @@ -143,7 +143,7 @@ def build_src_docs(top, src_dir, project_name='openmdao'):
# specifically don't use os.path.join here. Even windows wants the
# stuff in the file to have fwd slashes.
title = f"[{sub_package}]"
link = f"({package}/{sub_package}.md)\n"
link = f"({package}/{sub_package}.ipynb)\n"
package_data += f"- {title}{link}"

# creates and writes out one reference sheet (e.g. core/component.ipynb)
Expand Down
2 changes: 0 additions & 2 deletions openmdao/docs/openmdao_book/_toc.yml
Expand Up @@ -72,9 +72,7 @@ parts:
- file: other_useful_docs/building_a_tool/building_a_tool.md
sections:
- file: other_useful_docs/building_a_tool/repository_structure
- file: other_useful_docs/building_a_tool/github_pages
- file: other_useful_docs/building_a_tool/release_process
- file: other_useful_docs/building_a_tool/travis
- file: other_useful_docs/auto_ivc_api_translation
- file: other_useful_docs/api_translation
- file: other_useful_docs/environment_vars
Expand Down
@@ -0,0 +1,63 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "c6e0d73b-d3f4-4787-9f15-f8084f6695c8",
"metadata": {},
"source": [
"# Advanced User Guide\n",
"\n",
"These tutorials cover more advanced topics. This guide assumes that you have read the [Basic User Guide](../basic_user_guide/basic_user_guide.ipynb), and it builds from those basics to cover more complex topics that will let you get the most out of the framework. Within each section, the tutorials are designed to be read in order, but each section is self-contained enough that you can choose to read only the sections that are useful to you.\n",
"\n",
"\n",
"## Models with Implicit Components\n",
"\n",
"- [Building Models with Solvers and Implicit Components](models_implicit_components/models_with_solvers_implicit.ipynb)\n",
"- [Using BalanceComp to Create Implicit Relationships in Groups](models_implicit_components/implicit_with_balancecomp.ipynb)\n",
"\n",
"## Working with Analytic Derivatives\n",
"\n",
"- [Defining Partial Derivatives on Explicit Components](analytic_derivatives/partial_derivs_explicit.ipynb)\n",
"- [Defining Partial Derivatives on Implicit Components](analytic_derivatives/partial_derivs_implicit.ipynb)\n",
"- [Computing Total Derivatives of Coupled Models](analytic_derivatives/derivs_of_coupled_systems.ipynb)\n",
"\n",
"## Recoding and Reading Data\n",
"\n",
"- [Advanced Recording Example](recording/advanced_case_recording.ipynb)\n",
"\n",
"## Using OpenMDAO as a Part of a Larger Process\n",
"- [Cannonball Example with Euler Integration and an External Optimizer](example/euler_integration_example.ipynb)\n",
"\n",
"## Details about Complex Step\n",
"- [Using Complex Step to Compute Derivatives](complex_step.ipynb)\n",
"\n",
"## Using AnalysisError\n",
"- [Using AnalysisError to avoid a region in the solution space](analysis_errors/analysis_error.ipynb)\n",
"\n",
"## Computing Partial Derivatives using JAX\n",
"- [Computing Partial Derivatives of Explicit Components Using JAX](jax_derivatives/partial_derivs_explicit.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
}

This file was deleted.

Expand Up @@ -115,7 +115,7 @@
"metadata": {},
"source": [
"```{important}\n",
"Since we've provided default values for the options, they won't be required arguments when instantiating `Resistor` or `Diode`. Check out the [Features](../../features/features.md) section for more details on how to use [component options] (../../features/core_features/working_with_components/options.ipynb).\n",
"Since we've provided default values for the options, they won't be required arguments when instantiating `Resistor` or `Diode`. Check out the [Features](../../features/features.ipynb) section for more details on how to use [component options] (../../features/core_features/working_with_components/options.ipynb).\n",
"```"
]
},
Expand Down Expand Up @@ -193,7 +193,7 @@
"metadata": {},
"source": [
"## Building the Circuit Group and Solving It with NewtonSolver\n",
"We can combine the `Resistor`, `Diode`, and `Node` into the circuit pictured above using a [Group](../../features/core_features/working_with_groups/main.md). Adding components and connecting their variables is the same as what you've seen before in the [Sellar - Two Discipline](../../basic_user_guide/multidisciplinary_optimization/sellar.ipynb) tutorial. What is new here is the additional use of the nonlinear [NewtonSolver](../../features/building_blocks/solvers/newton.ipynb) and linear [DirectSolver](../../features/building_blocks/solvers/direct_solver.ipynb) to converge the system.\n",
"We can combine the `Resistor`, `Diode`, and `Node` into the circuit pictured above using a [Group](../../features/core_features/working_with_groups/main.ipynb). Adding components and connecting their variables is the same as what you've seen before in the [Sellar - Two Discipline](../../basic_user_guide/multidisciplinary_optimization/sellar.ipynb) tutorial. What is new here is the additional use of the nonlinear [NewtonSolver](../../features/building_blocks/solvers/newton.ipynb) and linear [DirectSolver](../../features/building_blocks/solvers/direct_solver.ipynb) to converge the system.\n",
"\n",
"In previous tutorials, we used a gradient-free [NonlinearBlockGaussSeidel](../../features/building_blocks/solvers/nonlinear_block_gs.ipynb) solver, but that won't work here. Just above, we discussed that the `Node` class does not, and in fact can not, define its own `solve_nonlinear` method. Hence, there would be no calculations for the GaussSeidel solver to iterate on.\n",
"Instead we use the Newton solver at the `Circuit` level, which uses Jacobian information to compute group level updates for all the variables simultaneously. The Newton solver's use of that Jacobian information is why we need to declare a linear solver in this case.\n",
Expand Down
Expand Up @@ -5,8 +5,6 @@
"cell_type": "markdown",
"metadata": {},
"source": [
":orphan:\n",
"\n",
"# Working with Plugins\n",
"\n",
"The OpenMDAO plugin infrastructure provides a way for you to discover and use code that can extend the functionality of OpenMDAO.\n",
Expand Down
2 changes: 1 addition & 1 deletion openmdao/docs/openmdao_book/features/features.ipynb
Expand Up @@ -77,7 +77,7 @@
"\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.md)\n"
"- [Working with Plugins](experimental/plugins.ipynb)\n"
]
}
],
Expand Down
84 changes: 84 additions & 0 deletions openmdao/docs/openmdao_book/main.ipynb
@@ -0,0 +1,84 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "bd581f79-0054-4ae7-910f-90bb924b80e5",
"metadata": {},
"source": [
"# Welcome to OpenMDAO\n",
"\n",
"OpenMDAO is an open-source high-performance computing platform for\n",
"systems analysis and multidisciplinary optimization, written in Python.\n",
"It enables you to decompose your models, making them easier to build and\n",
"maintain, while still solving them in a tightly coupled manner with\n",
"efficient parallel numerical methods.\n",
"\n",
"The OpenMDAO project is primarily focused on supporting gradient-based\n",
"optimization with analytic derivatives to allow you to explore large\n",
"design spaces with hundreds or thousands of design variables, but the\n",
"framework also has a number of parallel computing features that can\n",
"work with gradient-free optimization, mixed-integer nonlinear\n",
"programming, and traditional design space exploration.\n",
"\n",
"If you are using OpenMDAO, please [cite](other/citing.ipynb) us!\n",
"\n",
"## User Guide\n",
"\n",
"These are a collection of tutorial problems that teach you important concepts and techniques for using OpenMDAO.\n",
"For new users, you should work through all material in **Getting Started** and **Basic User Guide**.\n",
"That represents the minimum set of information you need to understand to be able to work with OpenMDAO models.\n",
"\n",
"You will also find tutorials in the **Advanced User Guide** to be very helpful as you grow more familiar with OpenMDAO,\n",
"but you don't need to read these right away.\n",
"They explain important secondary concepts that you will run into when working with more complex OpenMDAO models.\n",
"\n",
"- [Getting Started](getting_started/getting_started.ipynb)\n",
"- [Basic User Guide](basic_user_guide/basic_user_guide.ipynb)\n",
"- [Advanced User Guide](advanced_user_guide/advanced_user_guide.ipynb)\n",
"\n",
"\n",
"## Reference Guide\n",
"\n",
"These docs are intended to be used by as a reference by users looking for explanation of a particular feature in detail or\n",
"documentation of the arguments/options/settings for a specific method, Component, Driver, or Solver.\n",
"\n",
"- [Features](features/features.ipynb)\n",
"- [Examples](examples/examples.ipynb)\n",
"- [Theory Manual](theory_manual/theory_manual.ipynb)\n",
"\n",
"\n",
"## Other Useful Docs\n",
"\n",
"- [Command Line Tools](other_useful_docs/om_command.ipynb)\n",
"- [How to Cite OpenMDAO](other/citing.ipynb)\n",
"- [Building a Tool on Top of OpenMDAO](other_useful_docs/building_a_tool/building_a_tool.ipynb)\n",
"- [Conversion Guide for the Auto-IVC (IndepVarComp) Feature](other_useful_docs/auto_ivc_api_translation.ipynb)\n",
"- [Upgrading from OpenMDAO 2.10 to OpenMDAO 3](other_useful_docs/api_translation.ipynb)\n",
"- [File Wrapping](other_useful_docs/file_wrap.ipynb)\n",
"- [Source Docs](_srcdocs/index.ipynb)\n",
"- [Developer Docs (if you’re going to contribute code)](other_useful_docs/developer_docs/developer_docs.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
}
52 changes: 0 additions & 52 deletions openmdao/docs/openmdao_book/main.md

This file was deleted.

@@ -0,0 +1,41 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "6900e30d-8361-430b-b20a-b7f0e78bc4ba",
"metadata": {},
"source": [
"# Building a Tool on Top of OpenMDAO\n",
"\n",
"There are several things to take into account when setting up a repository that depends on\n",
"OpenMDAO. Repository structure, writing project documentation with Sphinx, getting project\n",
"documentation transferred to github-pages, setting up continuous integration on Travis CI, and\n",
"releasing software are the topics covered.\n",
"\n",
"- [Repository Structure](repository_structure.ipynb)\n",
"- [Release Your Project on pypi](release_process.ipynb)"
]
}
],
"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
}

This file was deleted.

0 comments on commit 28a0024

Please sign in to comment.