diff --git a/docs/source/conf.py b/docs/source/conf.py index 7efb647..b61041d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -15,13 +15,16 @@ import sys import os import sphinx_rtd_theme - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('../..')) import pina +# -- Project information ----------------------------------------------------- + +project = pina.__project__ +copyright = pina.__copyright__ +author = pina.__author__ +version = release ='1.0.0' + + sys.path.insert(0, os.path.abspath('../sphinx_extensions')) # extension to remove paramref link from lightinig # -- General configuration ------------------------------------------------ @@ -49,13 +52,30 @@ extensions = [ 'sphinx.ext.intersphinx', 'paramref_extension', # this extension is made to remove paramref links from lightining doc 'sphinx_copybutton', + 'sphinx_design' ] +# The root document. +root_doc = 'index' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'docstrings', 'nextgen', 'Thumbs.db', '.DS_Store'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = 'literal' + +# Generate the API documentation when building +autosummary_generate = True +numpydoc_show_class_members = False + intersphinx_mapping = { 'python': ('http://docs.python.org/3', None), # 'numpy': ('http://docs.scipy.org/doc/numpy/', None), # 'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None), 'matplotlib': ('http://matplotlib.sourceforge.net/', None), + # 'matplotlib': ('https://matplotlib.org/stable', None), 'torch': ('https://pytorch.org/docs/stable/', None), 'pytorch_lightning': ("https://lightning.ai/docs/pytorch/stable/", None), } @@ -68,7 +88,6 @@ nitpick_ignore = [ ('py:func', 'torch.inference_mode'), ('py:func', 'torch.no_grad'), ('py:class', 'torch.utils.data.DistributedSampler'), - ('py:class', 'CartesianDomain'), # TO FIX ('py:class', 'pina.model.layers.convolution.BaseContinuousConv'), ('py:class', 'Module'), ('py:class', 'torch.nn.modules.loss._Loss'), # TO FIX @@ -162,7 +181,7 @@ viewcode_import = True # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "sphinx_rtd_theme" +html_theme = 'pydata_sphinx_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -181,12 +200,26 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "index_files/pina_logo.png" +html_logo = "index_files/pina_logo_pina.png" html_theme_options = { - 'logo_only': True, - 'display_version': True, - 'prev_next_buttons_location': 'bottom', - + "icon_links": [ + { + "name": "GitHub", + "url": "https://github.com/mathLab/PINA", + "icon": "fab fa-github", + "type": "fontawesome", + }, + { + "name": "Twitter", + "url": "http://twitter.com/rozzagroup", + "icon": "fab fa-twitter", + "type": "fontawesome", + }, + ], + "show_prev_next": False, + "navbar_start": ["navbar-logo"], + "navbar_end": ["navbar-icon-links"], + "header_links_before_dropdown": 8, } # The name of an image file (within the static path) to use as favicon of the @@ -195,16 +228,17 @@ html_theme_options = { # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". +# relative to this directory. They are copied after the builtin static files,# so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] - +html_css_files = [ + '/css/custom.css', +] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. # html_extra_path = ['_tutorial'] -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# If not ''i, a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' @@ -269,7 +303,7 @@ latex_elements = { 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). - 'pointsize': '10pt', + 'pointsize': '20pt', # Additional stuff for the LaTeX preamble. 'preamble': '', @@ -342,4 +376,4 @@ texinfo_documents = [ # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False -autodoc_member_order = 'bysource' \ No newline at end of file +autodoc_member_order = 'bysource' diff --git a/docs/source/index.rst b/docs/source/index.rst index 684867f..afdb471 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,73 +1,82 @@ -Welcome to PINA's documentation! -=================================================== +:html_theme.sidebar_secondary.remove: -Physics Informed Neural network for Advanced modeling (**PINA**) is -an open-source Python library providing an intuitive interface for -solving differential equations using PINNs, NOs or both together. -Based on `PyTorch `_ and `PyTorchLightning `_, -PINA offers a simple and intuitive way to formalize a specific (differential) problem -and solve it using neural networks . The approximated solution of a differential equation -can be implemented using PINA in a few lines of code thanks to the intuitive and user-friendly interface. +Welcome to PINA’s documentation! +======================================= -`PyTorchLightning `_ as backhand is done to offer -professional AI researchers and machine learning engineers the possibility of using advancement -training strategies provided by the library, such as multiple device training, modern model compression techniques, -gradient accumulation, and so on. In addition, it provides the possibility to add arbitrary -self-contained routines (callbacks) to the training for easy extensions without the need to touch the -underlying code. +.. grid:: 6 + :gutter: 1 -The high-level structure of the package is depicted in our API. The pipeline to solve differential equations -with PINA follows just five steps: problem definition, model selection, data generation, solver selection, and training. + .. grid-item:: -.. figure:: index_files/API_color.png - :alt: PINA application program interface - :align: center - :width: 600 + .. image:: index_files/tutorial_13_3.png + :target: _rst/tutorials/tutorial2/tutorial.html -| + .. grid-item:: -Physics-informed neural network -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. image:: index_files/tutorial_32_0.png + :target: _rst/tutorials/tutorial4/tutorial.html -`PINN `_ is a novel approach that -involves neural networks to solve differential equations in an unsupervised manner, while respecting -any given law of physics described by general differential equations. Proposed in "*Physics-informed neural -networks: A deep learning framework for solving forward and inverse problems -involving nonlinear partial differential equations*", such framework aims to -solve problems in a continuous and nonlinear settings. + .. grid-item:: -Neural operator learning -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. image:: index_files/tutorial_13_01.png + :target: _rst/tutorials/tutorial9/tutorial.html -`Neural Operators `_ is a novel approach involving neural networks -to learn differential operators using supervised learning strategies. By learning the differential operator, the -neural network is able to generalize across different instances of the differential equations (e.g. different forcing -terms), without the need of re-training. + .. grid-item:: + + .. image:: index_files/tutorial_5_0.png + :target: _rst/tutorials/tutorial10/tutorial.html + + .. grid-item:: + + .. image:: index_files/tutorial_36_0.png + :target: _rst/tutorials/tutorial6/tutorial.html + + .. grid-item:: + + .. image:: index_files/tutorial_15_0.png + :target: _rst/tutorials/tutorial13/tutorial.html + +.. grid:: 1 1 3 3 + + .. grid-item:: + :columns: 12 12 6 6 + + Physics Informed Neural network for Advanced modeling (**PINA**) is + an open-source Python library providing an intuitive interface for + solving differential equations using PINNs, NOs or both together. + + Based on `PyTorch `_ and `PyTorchLightning `_, **PINA** offers a simple and intuitive way to formalize a specific (differential) problem + and solve it using neural networks . The approximated solution of a differential equation + can be implemented using PINA in a few lines of code thanks to the intuitive and user-friendly interface. + + + + Contact us by email for further information or questions about **PINA**, or suggest pull requests. + -.. toctree:: - :maxdepth: 1 - :caption: Package Documentation: - - API <_rst/_code> + .. grid-item-card:: Contents + :class-title: sd-fs-5 + :class-body: sd-pl-4 -.. the following is demo content intended to showcase some of the features you can invoke in reStructuredText -.. this can be safely deleted or commented out -.. ........................................................................................ + .. toctree:: + :maxdepth: 1 -.. toctree:: - :maxdepth: 1 - :caption: Getting Started: + Installing <_rst/_installation> + Tutorial <_rst/_tutorial> + API <_rst/_code> - Installation <_rst/_installation> - Tutorials <_rst/_tutorial> +.. .. grid-item-card:: Features +.. :columns: 12 12 4 4 +.. :class-title: sd-fs-5 +.. :class-body: sd-pl-3 -.. toctree:: - :maxdepth: 1 - :caption: Community: - - Team & Fundings <_team.rst> - Contributing <_rst/_contributing> - License <_LICENSE.rst> - Cite PINA <_cite.rst> +.. * :bdg-secondary:`New` Objects: :ref:`API ` | :doc:`Tutorial ` +.. * Relational plots: :ref:`API ` | :doc:`Tutorial ` +.. * Distribution plots: :ref:`API ` | :doc:`Tutorial ` +.. * Categorical plots: :ref:`API ` | :doc:`Tutorial ` +.. * Regression plots: :ref:`API ` | :doc:`Tutorial ` +.. * Multi-plot grids: :ref:`API ` | :doc:`Tutorial ` +.. * Figure theming: :ref:`API ` | :doc:`Tutorial ` +.. * Color palettes: :ref:`API ` | :doc:`Tutorial ` diff --git a/docs/source/index_files/output_21_0.png b/docs/source/index_files/output_21_0.png new file mode 100644 index 0000000..b89b43b Binary files /dev/null and b/docs/source/index_files/output_21_0.png differ diff --git a/docs/source/index_files/output_8_0.png b/docs/source/index_files/output_8_0.png new file mode 100644 index 0000000..4f706c3 Binary files /dev/null and b/docs/source/index_files/output_8_0.png differ diff --git a/docs/source/index_files/pina_logo.png b/docs/source/index_files/pina_logo.png deleted file mode 100644 index 294cdde..0000000 Binary files a/docs/source/index_files/pina_logo.png and /dev/null differ diff --git a/docs/source/index_files/pina_logo_pina.png b/docs/source/index_files/pina_logo_pina.png new file mode 100644 index 0000000..fb5732b Binary files /dev/null and b/docs/source/index_files/pina_logo_pina.png differ diff --git a/docs/source/index_files/tutorial_13_01.png b/docs/source/index_files/tutorial_13_01.png new file mode 100644 index 0000000..3a838ee Binary files /dev/null and b/docs/source/index_files/tutorial_13_01.png differ diff --git a/docs/source/index_files/tutorial_13_3.png b/docs/source/index_files/tutorial_13_3.png new file mode 100644 index 0000000..b0e5d83 Binary files /dev/null and b/docs/source/index_files/tutorial_13_3.png differ diff --git a/docs/source/index_files/tutorial_15_0.png b/docs/source/index_files/tutorial_15_0.png new file mode 100644 index 0000000..eca9363 Binary files /dev/null and b/docs/source/index_files/tutorial_15_0.png differ diff --git a/docs/source/index_files/tutorial_32_0.png b/docs/source/index_files/tutorial_32_0.png new file mode 100644 index 0000000..843d837 Binary files /dev/null and b/docs/source/index_files/tutorial_32_0.png differ diff --git a/docs/source/index_files/tutorial_36_0.png b/docs/source/index_files/tutorial_36_0.png new file mode 100644 index 0000000..fc10554 Binary files /dev/null and b/docs/source/index_files/tutorial_36_0.png differ diff --git a/docs/source/index_files/tutorial_5_0.png b/docs/source/index_files/tutorial_5_0.png new file mode 100644 index 0000000..deda195 Binary files /dev/null and b/docs/source/index_files/tutorial_5_0.png differ